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 ofHippousinghttpx.Client. Use when your code already runs synchronously (CLI scripts, notebooks,threading.Threadcallbacks) and you don't want to manage an event loop. Wire-compatible: same routes, same models, same errors. ContextEntry.projected()helper. Projects the fullMemoryEntrysurface 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: passrole="admin"orrole="member". Member keys are 403-blocked from admin-gated routes (e.g./v1/sleep). BothAuthCreated.roleandAuthKey.rolepopulated by v1.12.3+ servers.
Limitations (v0.2)
/v1/sleepis 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-locatedhippo servewith an admin key./v1/sleepoperates host-wide (cross-tenant). Matches the CLI'shippo sleepsemantic. Per-tenant scoping deferred until non-loopback serving lands.recalldoes NOT populatelast_retrieval_ids— by design (locked in hippo-memory v1.11.5). To prime the last-recall outcome path, callget_contextfirst. The CLI'shippo recallpopulates it because the CLI is interactive (user is about to runhippo outcome --good); the SDK is programmatic and SDK callers batch recall calls, where overwritinglast_retrieval_idseach call would break the outcome workflow. Source:api.ts:412-421JSDoc +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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hippo_memory_sdk-0.2.2.tar.gz.
File metadata
- Download URL: hippo_memory_sdk-0.2.2.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b8278636ca11bf22b8f2414906c8365387b75b571dfa66407bd33fe84d7e793
|
|
| MD5 |
cb674444fb21910a199f70ce72d7df00
|
|
| BLAKE2b-256 |
d03ee7913eed04197fb82dbc8d651153000d887ad963e2838a2681d4a7e06563
|
File details
Details for the file hippo_memory_sdk-0.2.2-py3-none-any.whl.
File metadata
- Download URL: hippo_memory_sdk-0.2.2-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acca8fdc91e1ac3cf25dbd989e4d949bf5522bcda2dcae61571a32d4f9a8a46d
|
|
| MD5 |
060c5597f62c8aa75464eeb98d3501ce
|
|
| BLAKE2b-256 |
3dea2053a4b2bf7ed2eae7428a8e7f99fe2b53efb192cf45027a1b41a556dc04
|