Skip to main content

Python SDK (async + sync) for hippo-memory (biologically-inspired memory for AI agents). Wraps the HTTP API of the hippo-memory npm package.

Project description

hippo-memory-sdk (Python SDK)

Async Python SDK for hippo-memory, a biologically-inspired memory system for AI agents. Decay by default, strength through use, sleep consolidation.

This package is a thin async HTTP wrapper. Run hippo serve from the npm package alongside, then use this SDK to talk to it from Python.

Install

pip install hippo-memory-sdk

The Python import name is hippo_memory (the distribution name hippo-memory-sdk only matters at install time; pip install hippo-memory-sdk was chosen because PyPI's similarity check blocked the bare hippo-memory name due to an existing hippomem project).

Requires Python 3.10+. Runtime deps: httpx>=0.27, pydantic>=2.0.

Server setup

You also need the hippo-memory npm package running locally:

npm install -g hippo-memory
hippo init       # creates a .hippo directory
hippo serve      # binds 127.0.0.1:3737 by default

The Python SDK talks to this loopback server. Requires hippo-memory@>=1.11.4 server (the /v1/outcome, /v1/context, /v1/sleep routes land in v1.11.4).

Quickstart

import asyncio
from hippo_memory import Hippo

async def main():
    async with Hippo(base_url="http://127.0.0.1:3737") as client:
        # Persist a memory
        mem = await client.remember(content="bug fix lesson", tags=["error"])
        print(mem.id)

        # Search the store
        results = await client.recall(q="bug fix", limit=5)
        for r in results.results:
            print(r.id, r.score, r.content)

        # Assemble a context bundle (for prompt injection)
        ctx = await client.get_context(budget=1500)
        for item in ctx.entries:
            print(item.entry.content)

        # After your agent uses recalled memories, mark them good/bad
        await client.outcome(good=True)  # uses last-recall path

asyncio.run(main())

See examples/ for 3 runnable scripts: basic remember+recall, context injection, outcome feedback.

Authentication

Default is unauthenticated localhost (tenant default). For multi-tenant deployments, mint an API key via the CLI:

hippo auth create-key --label my-key
# Outputs a plaintext sk_... key (saved ONCE — store it)

Then pass it to the client:

async with Hippo(api_key="sk_...") as client:
    # All operations now scoped to the key's tenant
    ...

API surface

Method HTTP Notes
health() GET /health server version + pid
remember(content, ...) POST /v1/memories returns slim envelope (id + kind + tenant_id)
recall(q, ...) GET /v1/memories search; scored results + token usage
drill(id, ...) GET /v1/recall/drill/:id drill into a memory's children (DAG)
forget(id) DELETE /v1/memories/:id hard-delete
archive(id, reason?) POST /v1/memories/:id/archive soft-archive (append-only raw memories)
supersede(id, by) POST /v1/memories/:id/supersede mark superseded
promote(id) POST /v1/memories/:id/promote local -> global
outcome(good, ids?) POST /v1/outcome apply outcome; last-recall path if no ids
get_context(...) GET /v1/context assemble context bundle for prompt injection
sleep(dry_run?, no_share?) POST /v1/sleep consolidation (loopback-only)
assemble(session_id) GET /v1/sessions/:id/assemble Phase 2 context-engine assembly
auth_create(label?) POST /v1/auth/keys mint a key (plaintext returned ONCE)
auth_list(active?) GET /v1/auth/keys list keys for caller's tenant
auth_revoke(key_id) DELETE /v1/auth/keys/:keyId revoke a key
audit(op?, since?, limit?) GET /v1/audit read audit events

Every method returns a Pydantic v2 model. Failed HTTP responses raise HippoError with status_code and parsed body.

What's new in v0.2.0

  • Sync client (HippoSync). A line-for-line mirror of Hippo using httpx.Client. Use when your code already runs synchronously (CLI scripts, notebooks, threading.Thread callbacks) and you don't want to manage an event loop. Wire-compatible: same routes, same models, same errors.
  • ContextEntry.projected() helper. Projects the full MemoryEntry surface to the CLI's narrower json shape (id, score, strength, tags, confidence, content, global). Use when piping SDK results into LLM context or CLI-shaped downstream consumers.
  • auth_create(role=) parameter. Matches hippo-memory v1.12.3 server: pass role="admin" or role="member". Member keys are 403-blocked from admin-gated routes (e.g. /v1/sleep). Both AuthCreated.role and AuthKey.role populated by v1.12.3+ servers.

Limitations (v0.2)

  • /v1/sleep is loopback-only + admin-gated on the server side. The route refuses non-loopback connections (v1.11.4) and member-role Bearer tokens (v1.12.0 sub-1). This SDK is intended for use against a co-located hippo serve with an admin key.
  • /v1/sleep operates host-wide (cross-tenant). Matches the CLI's hippo sleep semantic. Per-tenant scoping deferred until non-loopback serving lands.
  • recall does NOT populate last_retrieval_ids — by design (locked in hippo-memory v1.11.5). To prime the last-recall outcome path, call get_context first. The CLI's hippo recall populates it because the CLI is interactive (user is about to run hippo outcome --good); the SDK is programmatic and SDK callers batch recall calls, where overwriting last_retrieval_ids each call would break the outcome workflow. Source: api.ts:412-421 JSDoc + tests/api-recall-no-side-effects.test.ts.
  • Server connector webhook routes (/v1/connectors/{slack,github}/events) are not wrapped in the SDK — they are server-side facing, not client-shaped.

Versioning

PyPI: hippo-memory-sdk v0.2.0. npm: hippo-memory@>=1.12.4 (the server). The two version lines move independently; the SDK reads the server's /health version to confirm compatibility.

Source

Lives in python/ of the kitfunso/hippo-memory monorepo. CHANGELOG entry: Python SDK v0.1.0 (2026-05-23) at the top of the root CHANGELOG.md.

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hippo_memory_sdk-0.3.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hippo_memory_sdk-0.3.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file hippo_memory_sdk-0.3.0.tar.gz.

File metadata

  • Download URL: hippo_memory_sdk-0.3.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for hippo_memory_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c8033f4de85970a0f51d16d05726ab96e65c50e59f03850ffe35eac9df19182d
MD5 62872857ca183ff95c46d6b186254bd5
BLAKE2b-256 b53a7766f188efebf31611f39d0e14c67e7fb57a0f8d1985112766c5085d9c8f

See more details on using hashes here.

File details

Details for the file hippo_memory_sdk-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hippo_memory_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1465a04195cf3528c605ef3920f6ec8a0ca4637b9acce2b83de3cc1a0fb6b30f
MD5 0c0b075603ada497583d8c72649a1107
BLAKE2b-256 e78c3eaea42dd1d99b6323127b9bd18e5b26e74e930b5e6215468b7f37925e19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page