Skip to main content
Yanked

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

CI PyPI Python License

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)

Source distribution for agent-cabinet 0.1.0
File Size Uploaded
agent_cabinet-0.1.0.tar.gz 24.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-cabinet 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page