
cairntir
by pnmcguire480
Cairntir
One evolving memory for Codex, Cursor, Claude Code, and every MCP agent.
Cairntir is a local-first, open-source memory system for Codex, Cursor, Claude Code, and every other Model Context Protocol client. It kills cross-chat and cross-agent AI amnesia: a lesson written through one host is available to the next. Evidence stays verbatim, while an append-only Discovery Ledger exposes what Cairntir is learning instead of hiding it in an opaque optimization loop.
A stack of stones that sees across time.
Cairntir = cairn (stacked waypoint stones marking a path) + palantír (seeing-stone across time and distance). Pronounced CAIRN-teer.
The one-minute pitch
Every time you open a new Claude Code chat, Claude forgets everything from the last one. You explain the same architectural decision again. You re-litigate yesterday's trade-off. You hallucinate a reason for a choice you can't remember making. It's the single biggest productivity tax on working with LLMs day-to-day, and it's fixed by a file.
Cairntir is that file. It's a SQLite database on your hard drive that stores every decision, fact, and hard-won lesson Claude writes down — verbatim, forever, no summarization — and gives it back the next time you open a chat. Every session, in every project, on day 30, walks into a lit room.
It ships as an MCP server, so it works with Claude Code, Claude Desktop, Cursor, Windsurf, and every other MCP-compatible client without modification.
Install
pip install cairntir # live on PyPI
cairntir setup # initialize the store + Claude Code
cairntir init --host all --user # connect Codex, Cursor, and Claude Code
Restart the configured hosts. Cursor's global MCP entry is installed
automatically, but its global User Rule must be pasted into
Cursor Settings → Rules → User Rules because Cursor does not publish a
file-backed global-rule surface. Project-local Cursor setup is fully automatic:
cairntir init --host cursor.
Once installed, Cairntir stays on. Every cairntir CLI invocation silently re-verifies the user-scope MCP registration and re-registers the stable cairntir-mcp launcher if Claude Code can't find it. Moving venvs, upgrading Python, or reinstalling no longer breaks the wiring — pip install cairntir is TRUE, pip uninstall cairntir is FALSE, nothing in between. When a newer release lands on PyPI, the next CLI run and the next MCP tool response prepend a one-line update banner; nothing is interrupted.
Both side effects are opt-out for CI / air-gapped use:
CAIRNTIR_DISABLE_AUTOREGISTER=1— skip the silent self-heal MCP registration.CAIRNTIR_DISABLE_UPDATE_CHECK=1— skip
Related servers

n8n
by n8n-io
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

@modelcontextprotocol/server-everything
OfficialMCP server that exercises all the features of the MCP protocol

@modelcontextprotocol/server-filesystem
OfficialMCP server for filesystem access