Skip to main content

A Python REST + WebSocket + MCP cache server for AI agents, backed by SQLite

Project description

agentcache

A Python REST + WebSocket + MCP cache server for AI agents, backed by SQLite.

agentcache gives coding agents (Claude Code, Cursor, Cline, Kiro, Antigravity, …) a persistent, searchable memory of what happened in a project — observations, sessions, long-term memories, and a folder-scoped knowledge graph — with hybrid BM25 + vector search, WebSocket live updates, and a Model Context Protocol (MCP) stdio bridge.

  • Server: Flask + flask-sock (REST + WebSocket) on a single port
  • Storage: SQLite in WAL mode (zero external services)
  • Search: BM25 + optional local embeddings (sentence-transformers) or Hugging Face inference
  • MCP: stdio bridge so any MCP-compatible client can observe / remember / search natively
  • CLI: agentcache serve|worker|migrate|export|context|connect

Status: Beta (Development Status :: 4 - Beta). API is stable enough for daily use; internals may still shift before 1.0.


Install

pip install agentcache-core

The package installs as agentcache-core on PyPI but imports and runs as agentcache (import agentcache, agentcache serve). The plain agentcache name on PyPI belongs to an unrelated project.

With optional local embeddings (adds sentence-transformers, ~1 GB of model weights on first use):

pip install "agentcache-core[local-embeddings]"

Requires Python 3.10+.


Quickstart

Start the server:

agentcache serve --port 3111

Record an observation (any HTTP client works):

curl -X POST http://localhost:3111/agentcache/observe \
  -H "Content-Type: application/json" \
  -d '{
        "folderPath": "/abs/path/to/project",
        "agentId": "coder-1",
        "text": "Refactored auth into a decorator; see routes/auth.py",
        "type": "refactor"
      }'

Search across a folder:

curl "http://localhost:3111/agentcache/folder/observations?folderPath=/abs/path/to/project&q=auth"

Health check:

curl http://localhost:3111/agentcache/health

Generate a live context file for your IDE:

cd /abs/path/to/project
agentcache context --watch     # writes .agentcache_context.md and re-writes on change

Programmatic use

from agentcache import create_app, StateKV, remember

app = create_app()                 # Flask app, ready for WSGI or app.run()
kv  = StateKV()                    # direct KV access to the SQLite store
remember(kv, {"title": "auth decorator", "content": "…", "agentId": "coder-1"})

Top-level exports: create_app, StateKV, KV, ObservationStore, ObservationEvents, SearchService, remember, folder_graph_build, health_check, run_connect.


Wire it into your agent

agentcache connect claude-code    # or: cursor, cline, kiro, antigravity, codex, hermes, vscode
agentcache connect --all          # detect and wire every supported client

This registers the MCP stdio bridge (agentcache.mcp_stdio) and, with --with-hooks, installs workspace hook blocks that call /agentcache/observe on file events. Re-running is safe — the CLI detects stale entries (wrong interpreter path, missing env keys, etc.) and repairs them, or prints a --force hint when the entry is already up to date.

See docs/mcp-setup.md for per-client config paths, manual wiring, and troubleshooting.


Auth

Set AGENTCACHE_SECRET to require a shared secret on write routes:

export AGENTCACHE_SECRET=your-long-random-string
agentcache serve

Clients send it via Authorization: Bearer <secret> or ?secret=<secret>. Unset = open (fine for localhost; do not expose an unauthenticated instance).


Deployment

Dockerfile and docker-compose.yml are included. For multi-worker WSGI (Gunicorn + workers), run the server without background threads and use a dedicated worker process:

agentcache serve --no-workers                    # web tier
agentcache worker --tasks=index,forget           # sidecar

Details and the ongoing hardening plan live in docs/publishing_roadmap.md.


Compatibility notes

  • Routes are dual-mounted at both /agentcache/* and /agentmemory/* for backward compatibility with the previous package name.
  • agentcache.legacy is a thin re-export shim retained for callers that imported from the pre-split module layout. It will be removed in 1.0 — migrate imports to agentcache.core.* when convenient. See docs/adr/ for the split rationale.

Development

git clone https://github.com/Yashwant00CR7/agentcache
cd agentcache
pip install -e ".[dev,local-embeddings]"

pytest                     # test suite
ruff check .               # lint
ruff format .              # format
python -m build            # build sdist + wheel into dist/
twine check dist/*         # validate metadata before upload

Links

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

agentcache_core-0.9.11.tar.gz (150.6 kB view details)

Uploaded Source

Built Distribution

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

agentcache_core-0.9.11-py3-none-any.whl (156.3 kB view details)

Uploaded Python 3

File details

Details for the file agentcache_core-0.9.11.tar.gz.

File metadata

  • Download URL: agentcache_core-0.9.11.tar.gz
  • Upload date:
  • Size: 150.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for agentcache_core-0.9.11.tar.gz
Algorithm Hash digest
SHA256 8b219524dbe7838e3aed7ee2985326a173c8fdf8cf46c995b3f548c2c2e09e47
MD5 0ebc921b42ca37b2e95d80de58110d35
BLAKE2b-256 313aaf19a0cdcd5dd180b7e44ed91a8acc0b51567bcbf2f216d4c75ca443abf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcache_core-0.9.11.tar.gz:

Publisher: automation.yml on Yashwant00CR7/agentcache

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentcache_core-0.9.11-py3-none-any.whl.

File metadata

File hashes

Hashes for agentcache_core-0.9.11-py3-none-any.whl
Algorithm Hash digest
SHA256 c6df39a921adb8973778a697742c89f8f97c8f17487cf9b64b227735afe92a90
MD5 8e2a60c51dfabdd2ce451d570f584efb
BLAKE2b-256 178100ab3e0a950a20f4e8ca85b22152ca11aa20b9a721d2f13e1b858b1cf605

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcache_core-0.9.11-py3-none-any.whl:

Publisher: automation.yml on Yashwant00CR7/agentcache

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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