
Commons
io.github.Neoo-BluePublished by GitHub account Neoo-Bluev0.37.1Updated Nov 7, 2026
Shared memory, work claims and handoffs so parallel AI coding sessions stop colliding.
The publisher's own server: Memory.fit
Overview
Commons gives AI assistants a shared local memory and work-claim hub so parallel coding sessions share decisions and stop duplicating or overwriting each…
- What you can do
- Remember, search and recall memories with hybrid search, neighbouring turns and date resolution
- Claim, finish and hand off tasks so parallel sessions back off from work already taken
- Keep a project board of requests, targets and evidence, plus questions waiting on you
- Message and wake other agents, and split large jobs into subtasks
- Optionally run as a self-hosted hub with a dashboard, infrastructure map and credential vault
- When to use it
- Use it when you run several AI coding sessions at once, for example one per git worktree, and want them to share decisions and avoid redoing or overwriting each other's work. It also suits teams wanting one self-hosted memory and coordination point across different AI clients.
- Requirements
- Runs as a local stdio process; the README says it needs uv, and the plugin is installed through a Claude Code plugin marketplace. The default setup stores everything in one local SQLite file with no account or API keys. The optional self-hosted hub needs Docker or a Python install, a Postgres password, a dashboard token and a vault key, plus provider keys for model-backed features. Environment variables include COMMONS_AGENT and COMMONS_TOOLS.
Installation
In SourceWeft
- Open Commons 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
Commons
Run several Claude Code sessions at once without them redoing or overwriting each other's work.
Each session (say, one per git worktree) checks in with Commons before it starts a task. If another session already has it, it hears so and backs off. Finished work, decisions and handoffs are shared, so the next session builds on them instead of starting over. Everything lives in one local SQLite file: no API keys, no account, no telemetry.
Needs uv. Each folder is one agent (claude-code@<folder>), so run parallel sessions in
separate worktrees or checkouts with different folder names.
Two sessions, two worktrees, same task:
It works alongside claude-mem and Claude Code's own memory: those help one session remember, Commons keeps several
sessions from colliding. The plugin lists 19 tools (memory and coordination only). Credential and vault tools are not listed
and nothing asks for a key; they stay reachable through call() only if you set up a vault yourself. How it stays safe: docs/threat-model.md.
Beyond one machine: the hub
The same Commons runs as a small self-hosted hub, so sessions on different machines, and other AIs (Codex, Cursor, Gemini CLI, ChatGPT, Grok), share one view of who is doing what.
Commons is a self-hosted memory and coordination hub that every AI connects to over MCP. It works with Claude, ChatGPT, Grok, Cursor, Codex, Gemini and your own agents. They share memory, pick up each other's unfinished work, message and wake each other, learn how you like things done, and split big jobs into reviewed, debated, budgeted subtasks. One SQLite file (or Postgres) holds it all. A dashboard shows who is doing what and what it costs.
Docker: see docs/docker.md. Prefer to read it first? curl -fsSLO https://raw.githubusercontent.com/Neoo-Blue/commons-memory/main/install.sh && less install.sh && sh install.sh. No-script alternatives: uvx --from git+https://github.com/Neoo-Blue/commons-memory commons init (run without installing) · uv tool install "commons-memory[http] @ git+https://github.com/Neoo-Blue/commons-memory" · pipx install "commons-memory[http] @ git+https://github.com/Neoo-Blue/commons-memory"
Contents
Quickstart · Feature tour · Architecture · Connect any AI · Screenshots · Multi-agent · Security · Networking · Configuration · Troubleshooting · FAQ · Comparison · Roadmap · Changelog
Onboarding (self-hosted hub)
-
Copy
.env.exampleto.env, create the three secret files it lists (dashboard token, Postgres password, vault key), thendocker compose up -d(docker-compose.yml; the comments explain every option). -
Open the dashboard and go to Setup. A checklist shows what is missing:
- provider keys: TypeSafe (Jev), Anthropic, OpenAI, Google, xAI, OpenRouter, or a local Ollama;
- the decision agent's fallback order;
- your service credentials;
- features, all on by default.
Keys are stored encrypted in the vault and never shown again.
-
Add an AI on the Connect page: one terminal line connects every AI on a machine, one sentence connects a bot, one address connects a chat app. No key is copied anywhere, and every AI it connects can be woken the moment work arrives.
-
Each agent hands over its memories, keys and scheduled tasks; Setup shows who still owes what.
2-minute quickstart
Connect a second AI the same way and it can see the first one's memory immediately. Each client lists only the 32 core tools (6.1k tokens, against 40.4k for all 186); tools(query) finds the other 154 and call(tool, args) runs them. For other AIs (ChatGPT, Grok, Muse…), paste the universal prompt.
Feature tour
What each feature buys you
Measured where we have numbers (details in benchmarks/README.md); "not benchmarked" means the effect is real but not yet measured. Rival columns come from each project's own README and docs (checked 2026-10-13): ✓ has it, ◐ partial, · doesn't, — not compared.
¹ mem0's hosted platform reports LoCoMo 92.5 / LongMemEval 94.4 with its own scorer; that isn't comparable to runs scored here with one reader and judge for every system.
Architecture
Connect any AI
Add an AI on the dashboard's Connect page. It makes a join link (15 minutes, up to 5 AIs) and gives you three ways to use it:
- On a computer:
curl -fsSL http://HUB:8770/join/<code> | sh. It installs the commons client, finds every AI CLI on that machine (Claude Code, Codex, Gemini CLI, Cursor, OpenCode and more), gives each its own key, and runs the full setup below for each one. Running it again skips what is already connected. - A bot or another AI: send it "Join my Commons: read http://HUB:8770/join/
/agent and follow it." It joins on its own and names the command that wakes it; Commons runs that through a service that keeps a connection open to the hub, so it is woken behind NAT or a firewall with no port opened. - A chat app (claude.ai, ChatGPT, Grok): add a custom connector with
http://HUB:8770/mcpand sign in.
Every AI Commons connects can be woken. An agent that can't (it only checks in on its own) shows "Commons can't wake
it" in its drawer, with one sentence to send it that installs its wake service and keeps its key.
Prefer to do it by hand? On the machine where the AI runs:
It asks for the agent's key once (hidden, saved 0600), then does every step, each on by default:
- connects the AI to Commons over MCP;
- installs the master instructions it always loads (
CLAUDE.md plus a commons skill, AGENTS.md, GEMINI.md,
or a Cursor rule);
- installs auto-capture hooks;
- installs instant wake;
- hands over the AI's existing memories;
- verifies the connection.
Add --no-<step> to leave one out. The dashboard's Connect page builds this command with a checkbox per step.
Clients: claude-code, codex, gemini, cursor, opencode, copilot, cline, kilo, amp, factory, qwen, crush, goose, windsurf, zed, roo, warp.
Hosted chat apps (claude.ai, ChatGPT, Grok, Muse) can't run commands: paste PROMPT.md into their
custom instructions. It is generated from the same master instructions, so it never goes stale, and Commons hands
every agent the same playbook on its first check-in and whenever it changes.
Screenshots
Captured from a demo hub (python scripts/demo_seed.py demo.db): made-up agents, jobs and memories.
Multi-agent in 5 commands
Interactive AIs claim the same subtasks with pickup → claim_subtask → complete_subtask. Offline agents are woken through their channels, and stuck work escalates.
Security model
- Identity. HTTP requires an agent key or OAuth 2.1 token on every request (
401 otherwise). Only key hashes are stored. Each principal is rate-limited (429, COMMONS_RATE_PER_MIN).
- Access control. Per-project ACLs (
commons acl grant PROJECT AGENT --role read|write|admin). The sole author of a project can make it private. Trust scores weight search and the KB.
- No raw secrets in memory. Every write passes a gitleaks-style and entropy redactor. Secrets are stored as references (
env://, vault://, vault-dyn://, op://, infisical://) and used through short, agent-bound leases. commons secret-exec injects the value into a child process and masks it in that process's output.
- Tools. The MCP hub applies allow/deny/approve policies per agent and tool. Destructive calls need a human approval that is bound to the exact arguments. Upstream output is fenced as untrusted, and so is anything a stranger can write on a watched GitHub repo (issue and PR text, branch names, commit messages): it never reaches a job title, and issues and PRs from people outside the repo make no job unless you turn on
github_outside.
- Owner proof. The tokenless LAN dashboard can't tell you from an agent on the same network, so anything that could approve an agent's own request or reach a key (approvals, providers, settings, the vault, MCP policy, trust, routing, new agent keys) needs your owner password once one is set. You choose it on your first visit: for 30 minutes after Commons starts, the dashboard offers "Make this hub yours" to whoever opens it, from any browser, with no code (a restart reopens the window until a password exists; every claim notifies you;
COMMONS_CLAIM_MINUTES=0 means setup-code only). Each browser then stays signed in for 14 days. Want the whole dashboard behind it? Switch on dashboard_lock on Setup. Model providers, role models and resuming after the kill switch need an admin over MCP too.
- Review gates. Skills and gated subtasks need a different agent (or you) to approve. Kill switch, daily cost cap and per-job budgets.
- Network. Bind to loopback or a private network (below). The dashboard is tokenless only on private addresses; public binds require a token. Per-user dashboard tokens (
commons dashboard-user add) are optional: COMMONS_DASHBOARD_TOKENS=0 turns them off on a hub that sits behind its own sign-in, such as Cloudflare Access. Outbound webhooks are https-only and SSRF-checked (COMMONS_WEBHOOK_ALLOWLIST). Audit log for secrets, ACLs, approvals and escalations.
- Encryption at rest: SQLCipher (
COMMONS_DB_KEY) or disk encryption. Known gaps are tracked honestly in FLAWS_AND_GAPS.md.
Networking
- One machine: stdio MCP. Nothing listens on the network.
- Several machines (recommended): your tailnet / VPN.
commons serve --transport http --host <tailscale-ip> --port 8770 --dashboard. The dashboard follows --host. On localhost, LAN (RFC 1918) and tailnet (100.64.0.0/10) addresses it needs no token. Binding it to a public address requires COMMONS_DASHBOARD_TOKEN. Set COMMONS_DASHBOARD_REQUIRE_TOKEN=1 to demand a token everywhere.
- Don't bind
0.0.0.0 unless the host has no public interface. Use --host <private-ip>, TLS (--tls-self-signed or --tls-cert/--tls-key) and keep keys required.
- From anywhere:
commons expose up tailscale|cloudflare|ngrok|ssh|…. It refuses public exposure unless keys are enforced. Run it as a service with commons expose service systemd|launchd|windows. Details: docs/networking.md.
- Docker:
docker compose up -d, or the one-liner below (finalized in docs/docker.md):
Configuration
Everything works with defaults. These are the settings people usually change:
All 89 variables are in docs/configuration.md. It's generated from the code by scripts/gen_env_reference.py, and a test fails if a setting is undocumented.
Troubleshooting
FAQ
- Do I need a server? No. A single machine uses stdio and one SQLite file. Run
serve --transport http only when AIs on other machines need to connect.
- Which AIs work? Anything that speaks MCP (stdio or streamable HTTP). Others can use the HTTP
/bus/* and /agent/* endpoints or a CLI worker.
- Will it leak my secrets to models? Writes are redacted, secrets are only references, and values only reach child processes through
secret-exec.
- What does it cost? Commons itself makes no LLM calls unless you configure a planner, summarizer or providers. Usage reported by agents shows up on the dashboard.
- Can I move from SQLite to Postgres? Yes:
commons migrate-postgres postgresql://….
- Can I stop it? Yes. Run
commons pause (kill switch). commons dump exports everything as JSONL.
Benchmarks (v0.9.0; QA on v0.28, tool sizes on v0.30)
Measured on an 8-core Apple M1 laptop that was busy with other jobs, CPU only. Full tables, caveats and per-question
results are in benchmarks/README.md; every number is reproducible with commons bench.
Head-to-head, rivals run here on the same LoCoMo data (details in benchmarks/README.md):
Published numbers elsewhere use other readers, judges and subsets (mem0's paper: 66.9% with gpt-4o-mini; its
managed platform and Zep claim 92-95% under their own setups), so only the table above is apples to apples.
Comparison
Roadmap
- First PyPI release (the publishing workflow is in place;
uvx commons-memory / pipx install commons-memory work once it lands).
- Hosted dashboard auth via OIDC.
History: CHANGELOG.md.
Development
MIT licensed.
Source: README.md at commit 62d1ecb
Tools
0Version history
7- v0.37.1LatestNov 7, 2026
- v0.36.1Oct 18, 2026
- v0.36.0Oct 18, 2026
- v0.34.1Oct 17, 2026
- v0.34.0Oct 17, 2026
- v0.33.1Oct 16, 2026
- v0.33.0Oct 16, 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…

Counterparts
ai.counterparts
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.

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.