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.13.tar.gz (157.0 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.13-py3-none-any.whl (162.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentcache_core-0.9.13.tar.gz
  • Upload date:
  • Size: 157.0 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.13.tar.gz
Algorithm Hash digest
SHA256 577db7e110ecbd2596106a287b5bcfedde444767ff7b6006d40ab6030a951fe7
MD5 7444f616480b5c820ffacbe14efb481a
BLAKE2b-256 e9e5dab2f775cf16af23815cc0af81c3318429d8e364171fc3e5cce036f9f973

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcache_core-0.9.13.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.13-py3-none-any.whl.

File metadata

File hashes

Hashes for agentcache_core-0.9.13-py3-none-any.whl
Algorithm Hash digest
SHA256 1dd597ace0f18ccb6bbab61f2d0488ea491e0d3e22b2eb42b4848e97c0c407be
MD5 d0f95ed13500ceb7b556166153b27f83
BLAKE2b-256 7c3d77b897025dc179380c52befe0f28d1b507f01a5a8bb402d5ecc808117f7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcache_core-0.9.13-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