Skip to main content

Another Brain

Long-term memory your AI coding agents actually share. One brain, many agents: what Claude Code learns on Monday, Codex can recall on Friday.

It runs as a single installed executable — no server to start, no container, no database to administer, and nothing leaves your machine. Memories live in one SQLite file in your user directory; embeddings are computed locally on CPU.

Install

Another Brain is a standard Python package — the only prerequisite is Python 3.12+ (no daemon, no root, no container runtime). Install the published package into a venv with pip:

python -m venv .venv
.venv/bin/python -m pip install another-brain   # Windows: .venv\Scripts\python
.venv/bin/another-brain setup                   # Windows: .venv\Scripts\another-brain

Or install a checkout of this repo from its root:

python -m venv .venv
.venv/bin/python -m pip install .

The console script another-brain lands in the venv's bin directory (Scripts on Windows); activating the venv puts it on PATH.

Restart the harness and your agent has memory. setup is a one-shot bundle of model pull + connect: it downloads the hash-verified embedding model (~206 MB) once, then writes the MCP server entry into each detected harness's own config and installs a skill that teaches the agent when to use it — no JSON to edit by hand, on any OS. Both steps are idempotent, so re-running setup is safe; the individual commands stay available below.

uv is an optional convenience: uv tool install another-brain does the same install and puts another-brain on PATH in one command. The uv.lock file is a maintainer/development artifact — pip installs never read it, and uv is never needed at runtime.

Run another-brain connect with no arguments to see which harnesses are known and which are installed here. Supported today: claude-code, codex, cursor, gemini-cli, pi.

For pi the connector writes the standard {"command": "another-brain"} entry into ~/.config/mcp/mcp.json, like every other harness. With the tools renamed to bare verbs, each harness adds its own prefix on top of the wire names: pi's adapter exposes another_brain_health, Claude Code shows mcp__another-brain__health, and the MCP wire names themselves never change.

What your agent can do

Eight tools appear in the agent's toolbox (your harness may prefix them):

Tool What it does
remember store one thing worth recalling later — a decision, a bug and its fix, a preference
search find memories by meaning and keywords at once
recent list the newest entries, or walk one day or one topic
get fetch one memory in full
reinforce a memory proved useful — keep it longer
forget a memory proved wrong — drop it
health is the brain reachable and which one is bound
audit what changed, when, and by which agent — never the memory text

Memory here is a diary that forgets on purpose. Each entry gets a lifespan from its importance — 1 to 5 maps to 7, 30, 90, 180, or 365 days — and expires unless an agent reinforces it after actually using it. Nothing accumulates forever, and a memory that turns out to be wrong can be forgotten. Forgetting is soft for 30 days, so a mistake is recoverable.

Search combines two independent signals: semantic similarity (so "how do we handle expired tokens" finds a note about refresh logic) and full-text keyword match (so an exact error string or file path is findable verbatim).

0.13.0 — 2026-08-13

Changed Tool names shortened to bare verbs — remember, search, recent, get, reinforce, forget, health, audit (was brain_*); your harness still prefixes them, so Claude Code shows mcp__another-brain__remember and pi shows another_brain_remember. Hard rename, no aliases. pip is a first-class install path — python -m pip install another-brain; uv stays an optional dev convenience.

Commands

Command Purpose
another-brain the MCP server itself (your harness runs this; you normally don't)
another-brain setup one-shot onboarding: pull the model + connect detected harnesses
another-brain connect [harness…] register the server + install the skill
another-brain model pull / model status download or check the embedding model
another-brain recent [--limit N] print the newest entries from the terminal
another-brain doctor full health report; exits nonzero if something is wrong
another-brain admin restore|hard-delete ID undo a forget inside its grace window, or purge
another-brain import-jsonl PATH import a JSONL v1 export
another-brain serve --http optional loopback HTTP on 127.0.0.1:1905 instead of stdio

recent, admin, connect, and doctor all work without the model installed.

Your data

Memories live in brain.sqlite3 in your per-user data directory, and the model in your per-user cache directory — another-brain doctor prints both exact paths. Nothing is uploaded; after model pull the tool never needs the network again.

Variable Effect
BRAIN_DATA_DIR where brain.sqlite3 lives
BRAIN_MODEL_CACHE_DIR where the model lives
BRAIN_ID which brain this process is bound to (default default)
TIMELINE_TIMEZONE IANA zone deciding the diary day (default UTC)

Each agent process loads its own copy of the embedding model, about 322 MiB of RAM once it has embedded something — worth knowing if you run several harnesses at once.

Platform support

Gated in CI on Linux x86_64, macOS 14+ Apple Silicon, and Windows x86_64, with Python 3.12–3.14. Linux ARM64 and Windows ARM64 work but have no CI hardware. macOS Intel, macOS 13 and older, and Alpine/musl are not supported — the install fails clearly rather than silently building from source. another-brain doctor reports the tier for your machine. Full matrix in CHANGELOG.md.

More

MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

another_brain-0.13.0.tar.gz (79.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

another_brain-0.13.0-py3-none-any.whl (103.0 kB view details)

Uploaded Python 3

File details

Details for the file another_brain-0.13.0.tar.gz.

File metadata

  • Download URL: another_brain-0.13.0.tar.gz
  • Upload date:
  • Size: 79.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for another_brain-0.13.0.tar.gz
Algorithm Hash digest
SHA256 a74d9134d65087d14386b57908b154f85b8779dbc00d60571e4ca5bdb8899fa0
MD5 87a801b2d1d46d0d3994fa783d08627f
BLAKE2b-256 9e24d6a38b2c5472d01631aa5591c22a1409f96c7d0fcfc8f7e54efbb04ad48c

See more details on using hashes here.

File details

Details for the file another_brain-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: another_brain-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 103.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for another_brain-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34ea114e949b11f05909bcbfe44fcc8333deee7ef1e409f06baf61b69ec6f015
MD5 45abc4fc34cdd8b47bcb6b18533d94c4
BLAKE2b-256 14f909f6fa006c35ab556dacf25be486005963933b61f0801e8f914ac3db9dd4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page