This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: no longer maintained
agent-cabinet
Give your agent a filing cabinet.
An agent's memory shouldn't be a black box. agent-cabinet stores what an
agent files away as plain Markdown files with a YAML frontmatter block —
readable, grep-able, git-diffable, editable by hand — and makes them
searchable by meaning, not just exact words.
Every entry is valid OpenReasoningComponents (ORC) by default, with no ceremony required to get there: the cabinet fills in the mechanical parts (a namespaced id, a default type, a scope) so a bare note and a fully-evidenced, machine-verified claim are the same file format, just with more filled in.
60 seconds
pip install agent-cabinet[cli]
agent-cabinet init
agent-cabinet remember "The user prefers dark mode." --kind preference --basis stated
agent-cabinet recall "theme preference"
Or from Python:
from agent_cabinet import Cabinet
cabinet = Cabinet("./.cabinet", namespace="acme-project")
entry_id = cabinet.remember(
"User said the DB is Postgres, not MySQL.",
basis="stated", # honest and cheap: where this came from, not a confidence score
)
cabinet.recall("database")[0].body
# 'User said the DB is Postgres, not MySQL.'
Serve it over MCP:
pip install agent-cabinet[mcp]
agent-cabinet mcp
That prints agent-cabinet MCP server ready at http://localhost:7879/mcp.
Point your agent at it (exact steps for each are just below), and it now has
somewhere to file things away that you can read, too.
Connecting Clients
Claude Code
claude mcp add --transport http agent-cabinet http://localhost:7879/mcp
claude mcp list
Cursor
Add a project file at .cursor/mcp.json:
{
"mcpServers": {
"agent-cabinet": {
"url": "http://localhost:7879/mcp"
}
}
}
Codex CLI
codex mcp add agent-cabinet --url http://localhost:7879/mcp
A note can become a verified fact
remember() writes a plain note. file() writes an already-verified ORC
component — typically from a pipeline, not a person. Both land in the same
file format, so a note can be promoted in place later, same id, once
something actually checks it.
See a note get promoted, one field at a time
# remember("The DB is Postgres, not MySQL.")
---
id: acme-project/the_db_is_postgres_not_mysql
type: domain_knowledge
scope: { source: acme-project }
---
The DB is Postgres, not MySQL.
# remember(..., basis="stated", links=["db-migration-plan"])
---
id: acme-project/the_db_is_postgres_not_mysql
type: domain_knowledge
scope: { source: acme-project }
basis: stated
links: [db-migration-plan]
---
The DB is Postgres, not MySQL.
# file(component, overwrite=True) -- promoted later, same id, by
# something that actually verified it
---
id: acme-project/the_db_is_postgres_not_mysql
type: domain_knowledge
scope: { source: warehouse-connection-check }
evidence: { confirmed_by: "SELECT version() -> PostgreSQL 16.2" }
provenance: { derivation: check_db_dialect, derivation_version: a1b2c3 }
---
The DB is Postgres 16.2, confirmed by direct connection.
How search works
recall() is a rebuild-every-call BM25 pass over the cabinet — the right
default for the dozens-to-low-hundreds of entries a typical cabinet holds.
No index file, no server, nothing that can drift out of sync with the
Markdown files, which stay the sole source of truth.
A persisted, incremental index — dense/semantic retrieval alongside the lexical half — is a real upgrade once a cabinet grows into the thousands of entries. It isn't built yet; when it lands, it'll be a disposable cache derived from these same files, never a second copy of them.
What this doesn't do
- No multi-user access control. One writer, one directory — a person, or a small team sharing a git repo. Grants, SSO, and per-entry sharing are an enterprise concern for a separate product to layer on top.
- No confidence scores.
basis(stated/inferred/observed/assumed) asks for something an agent actually knows — where a belief came from — not a calibrated probability it would have to guess at.
License
Apache-2.0.
Release files for agent-cabinet 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_cabinet-0.1.0.tar.gz | 24.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_cabinet-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.3 kB
Release files / agent_cabinet-0.1.0.tar.gz
| Download URL | agent_cabinet-0.1.0.tar.gz |
|---|---|
| Size | 24.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fd0a22405a668900e61e57e48540948b08b5d7cfc316b300cbf02f3b19d9ae1
|
|
BLAKE2b-256 checksum How to use checksums |
2dc7a40ec071cb8b688e23b17b37205d05edbfbe18cf9a839edf721ee4d71399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / agent_cabinet-0.1.0-py3-none-any.whl
| Download URL | agent_cabinet-0.1.0-py3-none-any.whl |
|---|---|
| Size | 25.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e0efcdd60c4e93b627edbc0adcc5c46e24f2e8c25ffa3d682c8027593403cfd
|
|
BLAKE2b-256 checksum How to use checksums |
da9185d11d25431164860862141d798b92f2cb621b35db5174077116a07cd1d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency log