Cairn
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cairnsave this gotcha: staging DB resets every night at 2am"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cairn
Cairn stores the tribal knowledge your coding agents lack (gotchas, decisions, references) as small, searchable entries, so each new Claude Code or Codex session builds on what earlier sessions and teammates learned. Run it locally for yourself (SQLite), host it for a team (Postgres), or both; agents see one MCP server that merges the two. Design: DESIGN.md.
Philosophy
Models and harnesses can now build software better and faster than most engineers, as long as they have the same context. That condition is the whole gap. Whether an agent works for a team or for one developer, what it lacks isn't skill. It's the knowledge you pick up through conversations and experience: the "if you know, you know" kind that never makes it into the code or the docs. So the goal is to give every agent session that context, and to have each session leave it richer for the next one, so agents build up the same tribal knowledge an engineering team does.
Related MCP server: Sugar
Features
Local: a personal store on your machine. The same server runs on SQLite, starts at login, listens only on 127.0.0.1, and can back itself up to a private git repo (
cairn git enable).Remote: a team store you host. Stateless containers (
ghcr.io/vedatal/cairn) on managed Postgres, with users, API keys and roles.Federation: with both set up, agents see one MCP server. Search merges your store and your team's into one ranked list, and writes go to whichever store you name.
UI: a web UI for both stores: browse, search, edit, archive, the change feed, admin pages, and a graph of each project.
cairn uiopens it logged in.Inject on startup: admins flag nodes or entries, and every new agent session starts with them as standing instructions. Acts like a team-wide AGENTS.md to enforce practices.
Structure: everything lives in one tree, and access is granted per project:
store me (local), or your team's server
└── team roles: admin, member
└── project access: write or read
└── node a topic; nodes nest up to 8 deep
├── node
│ └── entry
└── entry one fact: a gotcha, decision, reference, practice, …Install
curl -fsSL https://raw.githubusercontent.com/VedAtal/cairn/main/install.sh | sh -s -- [--local] [--remote URL]
# or, with uv: uvx --from git+https://github.com/VedAtal/cairn cairn install [--local] [--remote URL]This installs the cairn CLI, sets up a local store and/or a remote, and configures Claude Code and Codex.
Update with cairn upgrade; undo with cairn uninstall (your data is kept).
On a Mac, Cairn for Mac adds a menu bar app that shows both stores and controls the local server. It's optional: the CLI does everything it does.
Connect to a team
Get an API key from your instance admin (creating your account returns your first key), then:
cairn remote add https://cairn.acme.dev # prompts for the keyHost it
One image plus Postgres 16-18 (with pg_trgm). Migrations run at startup. CI publishes the image for amd64 and
arm64: ghcr.io/vedatal/cairn:latest tracks main, and vX.Y.Z tags publish X.Y.Z and X.Y.
services:
cairn:
image: ghcr.io/vedatal/cairn:latest
ports: ["8000:8000"]
environment:
CAIRN_DB__URL: postgresql://cairn:secret@db.example.com:5432/cairn
CAIRN_STORE_ALIAS: acmeVariable | |
| Postgres URL (required) |
| direct connection for migrations, if |
| the store name in refs, e.g. |
| one-time setup token; unset, one is logged at first start |
Then create the instance admin and keep its API key:
cairn remote bootstrap https://cairn.acme.dev --token <setup token> --email you@acme.devTo try it: make server (or docker compose up server) runs one on http://localhost:8000 with the setup token
compose-setup-token; see .env.example.
Develop
Everything runs in Docker. See AGENTS.md.
make lint # ruff + mypy
make test-unit # unit and parity tests
make test # integration + Postgres parity tests against the compose stack
make test-all # both
make server # hosted instance on :8000; make logs / make downLicense
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Persistent memory for AI agents. Search, store, and recall across sessions.
Private memory for AI agents: save and recall facts across Claude Code, Codex, Cursor and ChatGPT.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to persist and retrieve durable project knowledge across coding sessions, capturing decisions, conventions, lessons and reusable skills through ordinary chat requests. It supports searching, editing and reviewing saved items, and promoting local notes into Git-shareable versioned knowledge alongside repository changes.MIT
- FlicenseNot gradedqualityAmaintenanceProvides a local-first persistent memory layer that AI coding agents can read and write during sessions, enabling semantic search and recall of project decisions, preferences, error patterns, research, and cross-project guidelines stored in local SQLite. It also exposes an optional task queue and orchestration tools for delegating autonomous coding work that reuses the same stored context.-
- FlicenseNot gradedqualityAmaintenanceProvides AI coding agents with a local-first persistent memory layer they can read and write during sessions, storing decisions, preferences, error patterns, and research per project or globally. Enables semantic and keyword search, formatted context recall, and cross-project guideline surfacing without API keys or cloud storage.-
- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents to store, search, and recall persistent project-scoped and cross-project context — decisions, preferences, error patterns, file notes, and guidelines — using local SQLite with semantic or keyword search and no external API calls. An optional companion task server in the same package lets agents pick up queued work and execute it autonomously using that accumulated memory.-