Counterparts runs on your own machine — the client starts it, so there is no endpoint to ping. 1 871 installs a week from npm. Last commit 8 Nov 2026.
Local-first memory for AI: it interprets, forgets on purpose, and keeps a self across sessions.
We read the source, 10 h ago · rules 995398eba69f
Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.
if (unreadable.length > 0) throw new Error(`${String(unreadable.length)} keys already in keys/keys.sqlite don't open (keys/volume.kek missing or not this volume's): remove keys/ (rm -rf /data/keys) and run recover-keys again. Nothing was written`);
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
const child = spawn(binary, args, { stdio: ["ignore", "ignore", "pipe"], env });
<button type="submit" name="when" value="now">Delete everything now</button>
<p class="muted">${escapeHtml(AFTER_ERASE_WORDS)} ${escapeHtml(FORGET_WORDS)}</p></form>`
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
Code changes quietly between releases, and nobody reads the diff of a dependency. We do, on every release — watch Counterparts and you get told the day something new turns up.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add memory -- npx -y counterparts
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"counterparts"
]
}
}
}
[mcp_servers.memory]
command = "npx"
args = ["-y", "counterparts"]
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"counterparts"
]
}
}
}
{
"servers": {
"memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"counterparts"
]
}
}
}
Optional settings from the registry entry, left out of the block above:
COUNTERPARTS_DATA_DIR (Where the memory lives. Default: ~/.counterparts/store), COUNTERPARTS_CONFIG (The host configuration file. Default: ~/.counterparts/claude-code.json), COUNTERPARTS_UPDATE_CHECK (Set to off to stop the daily npm version check).
Persistent, local-first memory for AI coding agents. Remember, recall and forget across sessions.
Local-first memory for coding agents; stores decisions, bugs, and context across sessions.
Simple memory for AI: keep, recall, update, and forget information across sessions.
AI that remembers. Local-first cross-session, cross-project long-term memory for coding tools.
Cross-session memory for AI coding agents via six tools; local-first SQLite store.
Local, private memory for coding agents: facts, skills and tasks that persist across sessions.
Local-first memory for AI chats: save context in one chat, load it in any other via MCP.
Local-first AI context and memory server for cross-tool coding continuity.
Answers built from our own checks of this server.