**Your CLAUDE.md only grows. Knowl retires facts when they change.**
[](https://www.npmjs.com/package/@dat999zx/knowl)
[](https://github.com/dat999zx/knowl/actions/workflows/ci.yml)
[](LICENSE)
[](package.json)
[](https://modelcontextprotocol.io)
[Quick start](#quick-start) ·
[Why supersession](#the-idea-memory-that-retires-itself) ·
[What gets stored](#what-gets-stored) ·
[Features](#features) ·
[Agent setup](#connecting-an-agent) ·
[Viewer](#see-it-the-local-viewer) ·
[Requirements](#requirements-and-local-data) ·
**[Full reference →](docs/reference.md)**
| **♻️ Knowledge that corrects itself** Seven typed atom types, where a same-subject write retires its predecessor instead of sitting beside it. That one behavior is the [90-vs-73 difference](#the-idea-memory-that-retires-itself). Evidence attached to a file or symbol goes stale *by itself* when the code moves. `conflicts` · `timeline` · `query --as-of` · `pr --since` · `index-code` | **🎯 Retrieval tuned for agents** Vector-primary with a bounded BM25 fallback, reranked by freshness, status, and confidence, so the *current* answer wins rather than the merely similar one. The embedding model is local and optional — without it you still get keyword retrieval, and nothing leaves the machine. `query` · `context --token-budget` · `config set-model` · `access` |
|
**⏱️ Work that survives the session**
On Claude Code, Codex, and Cursor, hooks own bootstrap, capture, checkpoints, and
finalization without the agent being asked. A clean finish distills up to eight durable
candidates. Park a workstream under a key and pick it up in any session, from any directory.
`knowl posture maximal` turns the watchful half on in one command — searching past sessions on a
miss, flagging atoms whose files moved, and asking every so often what the session is relying on
but never verified. All of it off until you ask.
`task run` · `handoff` · `park` · `resume |
**🔗 Workspaces** Your API repo learned something the frontend repo needs. Link them and a query fans out, while each repository keeps its own database and its own ownership boundary. Open a shared peer atom in full by id, or finish that repo's work from here by naming it on the call. Knowledge a repo already holds is shared only when you promote it. `workspace init` · `workspace add` · `workspace promote --apply` |
| **📦 Reusable procedures** Package a procedure with its scripts under `.knowl/skills/`, then read it before it ever runs. Roll several atoms into one architecture summary deterministically, with no AI provider involved at all. `skill list` · `skill read` · `skill run` · `synthesize` | **💾 Your data, and getting it back** Checksummed JSONL export and import with four explicit policies for when the same atom changed in two places. Restore verifies schema, size, SHA-256, and SQLite integrity *before* touching anything, and takes a pre-restore snapshot first. `export` · `import --on-divergence` · `snapshot create` · `gc` · `doctor` |
| **🛰️ The sessions on this machine can see each other** Twenty agents across four repos, and none of them knew the others existed — so two hit the same failure and both start fixing it, and a third upgrades the engine the rest are standing on. Knowl records what each session is on, what it wrote this turn, and which failure it has claimed, then says so *before* the second session starts the same fix. Every host with Knowl hooks is in it and they see each other, Codex beside Claude Code. Prints nothing when you are the only one running. `fleet` · `knowl_fleet` | |