
Counterparts
ai.counterpartsPublished by counterparts.aiv0.3.47Updated Nov 7, 2026
Local-first memory for AI: it interprets, forgets on purpose, and keeps a self across sessions.
The publisher's own server: Memory.fit
Overview
Local-first long-term memory for Claude Code and Claude Desktop: the assistant writes notes about you and your projects and recalls them in later sessions.
- What you can do
- Save memories: the assistant writes down what it learned during and at the end of a session, in its own words rather than as transcripts
- Look things up: related memories surface as you talk, using on-machine semantic search
- Keep a self and a journal: a start-of-session briefing on who it is and where the work stands, plus a first-person journal of sessions
- Manage memory: fading and pruning of old notes, slowly revised beliefs about people and things, and date- or topic-triggered reminders
- Inspect and export: a local dashboard, asking the memory questions, encrypted or plaintext export, and per-directory opt-out
- When to use it
- Worth adding if you use Claude Code daily and are tired of re-explaining your projects, preferences and decisions each session, or if you want an assistant that builds a persistent picture of you over time. It is aimed at macOS and Linux users of Claude Code, with Claude Desktop supported on macOS.
- Requirements
- Runs locally over stdio via npx (npm package counterparts) or as a Claude Code plugin. Needs Node 22.15+ or bun 1.3+ on macOS or Linux; Windows is not supported. Setup asks for your name (skippable) and whether to connect Claude Code, which edits ~/.claude/settings.json after backing it up. No account or API keys. Optional environment variables COUNTERPARTS_CONFIG, COUNTERPARTS_DATA_DIR and COUNTERPARTS_UPDATE_CHECK.
Installation
In SourceWeft
- Open Counterparts in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Counterparts
Long-term memory for Claude Code, written by Claude itself.
Agents are great. What you're missing is a counterpart.
Each Claude Code session starts over, apart from your CLAUDE.md files and Claude's short MEMORY.md notes. With Counterparts, Claude writes down what it learned as it works and at the end of each session, in its own words. What matters sticks and the rest fades unless it comes up again. After the first few sessions, each one opens with a short note Claude wrote itself: who it is, where the work stands, what's coming up and how yesterday went, so you stop re-explaining your projects and how you like to work.
It's for anyone who works with Claude Code every day and wishes it remembered, and for people interested in an AI that builds a relationship with them over time. It runs on your machine, with Claude Code on macOS and Linux, and with Claude Desktop on macOS.
Install
You need Node 22.15 or newer, or bun 1.3 or newer, on macOS or Linux. Windows isn't supported yet. Bun on macOS is the setup in daily use; Node and Linux (since 0.3.11) pass a smoke test and an install run but have no daily user yet.
With bun instead: bun add -g counterparts, then counterparts. Whichever runtime runs the
setup is the one Claude Code's hooks and memory tools are wired to. Or install it as a Claude
Code plugin: /plugin marketplace add mlapeter/counterparts, then
/plugin install counterparts@counterparts, then restart Claude Code.
The first run asks two things, and you can skip either: your name, and whether to connect
Claude Code. Connecting adds hooks to ~/.claude/settings.json (it backs the file up first),
registers the memory tools, and adds one deniedMcpServers entry there so the hosted
Counterparts Online connector never loads into Claude Code as a second memory. Hooks and
settings from other tools are left alone. No API keys and no
account. Then restart Claude Code and check it:
For Claude Desktop on macOS (since 0.3.9), run counterparts install --host claude-desktop,
then set the counterparts tools to Always allow in Claude Desktop, so a chat can wake on
its own.
The first session in a new folder asks whether you want memory there. To remove it, run
counterparts uninstall; your memory is kept unless you ask for it to be deleted. The full
walkthrough is in docs/QUICKSTART.md.
What it remembers, and where it lives
- Who you are, how you like to work, what you decided together, what's in progress and where you left off. Claude writes these as notes in its own words, not transcripts.
- What it knows about you reaches every folder. Notes about a project's work show up in that project.
- The memories live in one SQLite file under
~/.counterparts, readable by your account only. You can read, export or delete them. Search by meaning runs on a small model on your machine, about 30 MB. - Your memory leaves your machine only through Claude Code (or Claude Desktop) itself. Counterparts' one request of its own (since 0.3.39) is a daily check with npm for the newest version number. It sends nothing about you, and you can turn it off (see Status).
- The text of a conversation is kept only until it's written up: since 0.3.21 it is deleted 3 days after that, or about two weeks after the conversation goes quiet, whichever comes first, the next time Counterparts runs. It is never in a backup.
- It doesn't read or change your CLAUDE.md files or Claude Code's own auto memory (MEMORY.md), so they run side by side. A committed CLAUDE.md stays the place for rules your team shares through git.
How Claude Code's own memory works, and where Counterparts fits: counterparts.ai/guides/claude-code-memory. More at counterparts.ai. A hosted version for claude.ai is coming soon, in beta; sign up on the home page to hear when it opens.
Found a bug? Open an issue. For anything else, write to [email protected].
What it does
- It writes its own memories. At the end of a session it writes down what it learned, in its own words. Notes, not transcripts.
- It forgets on purpose. Memories fade unless they come up again. What matters sticks; the rest lets go.
- It knows who it has been. After the first few sessions, every session opens with a short note it wrote itself: who it is, where the work stands, what's coming up.
- It keeps a journal. Each session becomes a chapter in a first-person account of your time together.
- It changes its mind slowly. What it believes about you shifts only under real evidence, and it keeps the history of what it used to think.
- Things come to mind. As you talk, related memories surface quietly, the way one thing reminds you of another.
- It's yours. It lives on your machine, and you can read, export or delete it; see What it remembers, and where it lives.
Where it's going
Today's models are frozen, so memory is the only learning they do. Once a real memory works on top of a frozen model, the plan is to pair it with an open-weight model whose weights can change, so the AI can learn and grow, not just remember.
Using it
Once installed it runs on its own. A few commands are worth knowing:
Export needs --passphrase or --plaintext; it won't pick for you. No command opens an
encrypted export yet: the README written beside it gives the format (scrypt and
AES-256-GCM), so it can be opened by hand.
Memory is on for every directory by default. The first session in a new directory asks whether you want it there.
How it works
Two pieces connect it to Claude Code. Hooks load a briefing at the start of each session and bring up related memories as you talk. A small MCP server gives the AI tools to save what it learned, write a journal entry, and look things up.
The core doesn't depend on Claude Code. Each part is its own module, with a
CONTRACT.md describing what it does:
More: docs/ELI5.md (the whole system in plain words) and
docs/module-map.md.
Status
Early. It's been the author's daily memory since September 2026, on bun and macOS; Node (22.15+) and Linux pass a smoke test and an install run but have no daily user yet. Claude Desktop has no Linux build, so on Linux it is Claude Code only. Expect rough edges, and please open an issue when you hit one.
There are no API keys, and your memory leaves your machine only through Claude Code
itself. Counterparts makes one request of its own: once a day, the background worker that
Claude Code's hooks start asks registry.npmjs.org for the newest version number, and sends
nothing about you or your memory. To stop it, set "updateCheck": false in
~/.counterparts/claude-code.json, or ask Claude to stop the update reminders.
COUNTERPARTS_UPDATE_CHECK=off or Claude Code's CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
stops it too, set in the environment Claude Code runs in. Search by meaning runs on a small model on your machine, and a session that ends
before it's written up is written up by the next session in that project.
That small model finds close paraphrases ("my doctor" finds a note about a physician), but not a description that never names the thing: "a pet that purrs" won't find a note about your cat. Exact words are strongest, and a short memory matches better than one padded with names and details.
Background
Counterparts is the third version of a memory project. The earlier ones (claude-engram,
engram, and bansai) were each used daily before the next was written.
CONSTITUTION.md holds the principles.
License and contributing
MIT. Contributions are welcome; see CONTRIBUTING.md.
Source: README.md at commit e9da931
Tools
0Version history
1- v0.3.47LatestNov 7, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Memory integrations

Memory.fit
fit.memoryOfficial publisher
Hosted Memory.fit server that lets an AI read your training, sleep, recovery and nutrition data and write back weekly plans, targets and meal plans.
pg.ddx.io: the PostgreSQL community's memory
io.ddx.pgOfficial publisher
pg.ddx.io: the PostgreSQL community's memory's hosted MCP server, published by pg.ddx.io; no sign-in required; Streamable HTTP; 29 tools.
var.gg Naming Memory
gg.varOfficial publisher
Remote MCP server that suggests and searches code identifier names from domain concepts in Korean, Japanese, Chinese, Vietnamese and English, and exposes ERD…

LAHZE - Persian AI Memory Platform
Published by GitHub account pedramgholizadeh
LAHZE - Persian AI Memory Platform's hosted MCP server; no sign-in required; Streamable HTTP; 13 tools.

Manwe — Memory, Decisions & Agent Tasks
Published by GitHub account lemberalla
Shared local memory, decisions and approved agent tasks. Requires the installed Manwe Mac app.