Open source · MIT · Self-hosted
Your engineering team's memory. Portable across every AI agent. Running on your servers.
CEMS remembers your decisions, conventions and fixes, and brings them back in every session. It works with Claude Code, Cursor, Codex, Goose and any MCP client.
Switch agents. Keep the memory.
-
Claude Code today
recalled at session start
- We deploy with Coolify on Hetzner
- Use Postgres advisory locks for the job queue
-
Codex tomorrow
recalled at session start
- We deploy with Coolify on Hetzner
- Use Postgres advisory locks for the job queue
-
A local model next year
recalled at session start
- We deploy with Coolify on Hetzner
- Use Postgres advisory locks for the job queue
Your memory lives in your database, not in a vendor's chat history. Change tools whenever you want.
What leaves your network
Your coding agent
Claude Code, Cursor, Codex, Goose
CEMS server
Hooks and MCP
Postgres
Your memories
Model
OpenRouter, your cloud, or local Ollama
| Data | Default (OpenRouter) | Private cloud (Bedrock, Azure, Vertex via a gateway) | Fully local (Ollama) |
|---|---|---|---|
| Memories | Your Postgres | Your Postgres | Your Postgres |
| Model calls (extraction, summaries) | OpenRouter, then the model vendor | Your cloud account | Your server |
| Embeddings | OpenRouter | Your cloud account | Your server |
| Your coding agent | Its vendor | Its vendor, or your cloud if the agent supports it | Its vendor, or a local model if the agent supports it |
CEMS does not change what your coding agent sends to its vendor. If that matters, pick an agent that runs on open-weight models (see Works with).
How it works
- 01
Install the hooks.
One command adds CEMS to Claude Code, Cursor, Codex or Goose.
- 02
Work as usual.
CEMS picks out decisions, preferences and fixes from your sessions.
- 03
Get it back.
Relevant memories arrive at the start of each session and when you ask.
Works with
| Agent | Memory integration | Private model path |
|---|---|---|
| Claude Code | Tested (hooks + MCP) | Enterprise cloud (Bedrock, Azure, Vertex) |
| Cursor | Tested (MCP) | Enterprise cloud keys (Bedrock, Azure) |
| Codex CLI | Tested (MCP) | Open-weight (--oss with Ollama), enterprise cloud |
| Goose | Tested (MCP) | Open-weight, enterprise cloud |
| OpenCode | Tested (MCP) | Open-weight, enterprise cloud |
| Aider, Cline, Continue, Roo Code, Kilo Code | MCP, untested | Open-weight, enterprise cloud |
In production
Runs at Hubstaff across 50 engineers since July 2026.
- Recall@5
- 98%
- injection latency
- <50ms
Install
curl -fsSL https://getcems.com/install.sh | bash git clone https://github.com/chocksy/cems && cd cems/deploy && cp .env.example .env && docker compose up -d curl -fsSL https://getcems.com/install-server.sh | bash -s -- --private --yes
Runs the LLM and embeddings on the same box with Ollama. Cloud-init files for AWS, Hetzner and
DigitalOcean are in deploy/cloud-init/.
We'll set it up for you
We install it in your cloud. You pay for your servers. One-time setup fee.
FAQ
Where is my data stored?
Memories never leave your Postgres. Model calls go to OpenRouter by default, or to your own models in private mode.
Does my coding agent still send code to its vendor?
Yes. CEMS only controls its own traffic. Claude Code, Cursor and Codex still talk to their vendors. Agents like Goose, OpenCode and Aider can run on open-weight models if you need everything in-house.
Can I switch agents and keep the memory?
Yes. The memory lives on your CEMS server. Point a new agent at it and the same memories show up.
Does CEMS work with my current tools?
Claude Code, Cursor, Codex and Goose are tested. Any MCP client can connect.
How is this different from CLAUDE.md?
CLAUDE.md is a static file you manually maintain. CEMS is a dynamic memory system that automatically learns from your sessions, surfaces relevant context, and evolves over time. It also works across multiple AI tools, not just Claude.
Will it slow down my AI assistant?
Memory injection adds less than 50ms to session start. The observer daemon runs asynchronously and never blocks your AI assistant. You won't notice it's there.
What happens if I uninstall?
Your AI tools work exactly as they did before; they just lose their memory. Your data stays in your PostgreSQL database. Reinstall anytime to pick up where you left off.