Harness-mem
One project. One memory. Every AI coding agent.
Stop re-explaining yesterday's work to Claude Code, Codex, or Cursor. Harness-mem keeps a single local SQLite memory per project and shares it across every AI coding agent you use. ~5ms cold start. Zero cloud, zero API keys.
English | 日本語
Table of Contents
What changes
30-second version
Harness-mem gives Claude Code and Codex the same local project memory, so the next session can open on the thread you were already working on instead of a blank slate. It is built for people who switch tools inside the same project and do not want to re-explain the same decisions twice.
3-minute setup path
- Run
npx -y --package @chachamaru127/harness-mem harness-mem setup --platform codex,claude.
- Run
npx -y --package @chachamaru127/harness-mem harness-mem doctor --platform codex,claude.
- Confirm both clients are green and point at the current checkout or install path.
- Start a fresh Claude Code or Codex session and check that the first turn already knows the current thread.
Trust block
- Local-first: the database lives on your machine at
~/.harness-mem/harness-mem.db.
- Privacy: there is no cloud memory service, no API keys, and no off-machine upload just to remember context.
- Private tags: wrap any text in
<private>...</private> and it is automatically stripped before storage — use this to keep secrets out of memory without disabling memory entirely.
- Project isolation: each project keeps its own memory lane, so one repo does not bleed into another.
Support tiers
- Strongest path: Claude Code + Codex: this is the main experience we optimize for. Shared local runtime, first-turn continuity, and the clearest install / doctor flow.
- Supported path: Cursor: hooks and MCP work out of the box, but the continuity story is not as central as Claude Code + Codex.
- Experimental path: OpenCode: usable, but not the same parity promise.
What this means in practice
- You use Claude Code and Codex → harness-mem gives both tools the same local project runtime. On supported hook paths, the first turn stays chain-first (
what we were just doing) and can also surface a short Also Recently in This Project teaser for nearby context.
- You care about privacy → everything stays in
~/.harness-mem/harness-mem.db. Zero cloud calls. No API keys required.
- You also use Cursor → hooks and MCP work out of the box, but it is tier 2 rather than the main continuity path.
Measured
All numbers below come from committed artifacts you can rerun yourself — no marketing approximations.