Claude Code is strongest when it understands the project. The problem is that long-running work has more state than any one conversation: decisions, blockers, plans, tradeoffs, and what matters next.
Conversation context helps during a session. It does not reliably preserve the operational state of a project across days, tools, branches, and restarts. You end up re-explaining why a migration was deferred, which plan is active, what is blocked, and what the agent should avoid reopening.
That is not just annoying. It changes the quality of the work. A coding agent that cannot see prior decisions will confidently revisit settled questions. A coding agent that cannot see blockers will treat stalled work as normal backlog. A coding agent that cannot see momentum will guess what to do next.
For real software work, memory should be structured around the work itself:
Brain OS is a local-first MCP server that gives Claude Code operational state across sessions. It creates a .brain/ folder in your project and exposes typed tools like decision_log, decision_check, plan_read, focus_get, and pattern_detect.
Instead of asking Claude Code to infer project truth from old chat history, Brain OS lets the agent read the current state directly. A decision logged today can be checked tomorrow. A blocker can stay visible until it is resolved. A plan can survive a new terminal, a new branch, or a new MCP client.
Initialize Brain OS inside the project:
Then connect it to Claude Code:
claude mcp add brain-os -- npx brain-os serve
It is most useful when projects have architectural decisions, recurring blockers, active plans, or several parallel workstreams.
If the task fits in one session and has no future state, you probably do not need an operational memory layer.
Try Brain OS on one real project for a week. If you want to help shape the product, the one-week pilot is open for Claude Code and MCP users.
If you are comparing specific open-source memory tools, see Brain OS vs Basic Memory and Brain OS vs MCP server-memory.
How do I give Claude Code persistent memory across sessions?
Install Brain OS, a local-first MCP server. Run npx brain-os init in your project, then claude mcp add brain-os -- npx brain-os serve. Brain OS creates a .brain/ folder that persists your decisions, active plan, and blockers, so Claude Code recalls full project state when you resume, no re-explaining.
Does Claude Code remember project state between sessions on its own?
No. Claude Code has no built-in persistence for project-level state like decisions, plans, or blockers. Brain OS adds it via the MCP protocol, writing structured memory to a local file that survives across sessions and even across tools like Cursor, Zed, and GitHub Copilot.
Where does Claude Code memory live with Brain OS?
In a local .brain/ folder inside your project, plain JSON files, no cloud, no database, no telemetry, no API key required for storage. Commit it to git to share the same memory with your team.