Observed since 20 Oct, 22:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Adaptive, file-based project knowledge for AI coding agents
Persistent, file-based project memory for AI coding agents.
One command gives any project a knowledge vault that agents read on startup, maintain during work, and carry across sessions -- no database, no server, just markdown files and a CLI.
Works with Claude Code, Cursor, and Codex out of the box.
pip install agent-knowledge-cli
PyPI package name: agent-knowledge-cli. CLI command and all docs: agent-knowledge.
cd your-project
agent-knowledge init
That's it. Open the project in Claude Code or Cursor and the agent has persistent memory automatically -- no manual prompting, no config, no setup.
init does everything in one shot:
~/agent-os/projects/<slug>/./agent-knowledge into the repo as the local handlependingEvidence/ and backfills lightweight history from gitBy default, knowledge lives outside the repo at ~/agent-os/projects/<slug>/ and
./agent-knowledge is a symlink to it (external mode). To keep knowledge inside the
repo and commit it to git, use --local:
agent-knowledge init --local
In local mode:
./agent-knowledge/ is a real directory tracked by git~/agent-os/projects/<slug>/ is a symlink pointing back into the repoEvidence/raw/, Sessions/, Outputs/site/, ...) are added to .gitignore automaticallyMemory/, History/, Evidence/imports/, Dashboards/) is committed normallyTo convert an existing project from external to local:
agent-knowledge migrate-to-local
Knowledge lives in ./agent-knowledge/ (in-repo or external symlink depending on mode) so every
tool always has a stable local handle, regardless of branch, clone, or agent.
| Folder | Role | Canonical? |
|---|---|---|
Memory/ | Curated, durable facts -- source of truth | Yes |
History/ | What happened over time -- lightweight diary | Yes (diary) |
Evidence/ | Imported/extracted material, event stream | No |
Outputs/ | Generated views, indexes, HTML export | No |
Sessions/ | Ephemeral session state, prune aggressively | No |
Evidence is never auto-promoted into Memory. Outputs are never treated as truth. Only agents and humans deliberately write to Memory or History.
The project carries everything it needs. Both Claude Code and Cursor get full integration installed automatically -- hooks, runtime contracts, and slash commands. No global config required.
The knowledge vault at ~/agent-os/projects/<slug>/ is a valid Obsidian vault.
Open it directly for backlinks, graph view, and note navigation.
For a spatial canvas of the knowledge graph:
agent-knowledge export-canvas
# produces: agent-knowledge/Outputs/knowledge-export.canvas
The vault is designed to work well in Obsidian -- good markdown, YAML frontmatter, branch-note convention, internal links. But everything works without it too.
Claude Code (.claude/):
| File | Purpose |
|---|---|
settings.json | Lifecycle hooks: sync on SessionStart, Stop, PreCompact |
CLAUDE.md | Runtime contract: knowledge layers, session protocol, onboarding |
commands/memory-update.md | /memory-update slash command |
commands/system-update.md | /system-update slash command |
commands/absorb.md | /absorb <file/folder> slash command |
Cursor (.cursor/):
| File | Purpose |
|---|---|
rules/agent-knowledge.mdc | Always-on rule: loads memory context on every session |
hooks.json | Lifecycle hooks: sync on start, update on write, sync on stop/compact |
commands/memory-update.md | /memory-update slash command |
commands/system-update.md | /system-update slash command |
commands/absorb.md | /absorb <file/folder> slash command |
Codex (.codex/) -- installed when detected:
| File | Purpose |
|---|---|
AGENTS.md | Agent contract with knowledge layer instructions |
Hooks fire automatically -- the agent syncs memory at the start of every session
and captures state at the end, with no manual intervention:
| Event | Claude Code | Cursor | What runs |
|---|---|---|---|
| Session start | SessionStart | session-start | agent-knowledge sync |
| File saved | -- | post-write | agent-knowledge update |
| Task complete | Stop | stop | agent-knowledge sync |
| Context compaction | PreCompact | preCompact | agent-knowledge sync |
The runtime contract ensures the agent reads STATUS.md and Memory/MEMORY.md
at the start of every session, with no manual prompting required.
Inside any Claude Code or Cursor session:
/memory-update -- sync, review session work, write stable facts to Memory/, summarize/system-update -- refresh integration files to the latest framework versionThese are project-local and work automatically because init installed them.
agent-knowledge doctor
Reports whether all integration files (settings, hooks, rules, commands) are
installed and current for both Claude Code and Cursor. If anything is stale or
missing, doctor tells you exactly what to run.
| Command | What it does |
|---|---|
init | Set up a project -- one command, no arguments needed |
init --local | Set up with knowledge in the repo (git-tracked); reversed symlink in ~/agent-os/ |
migrate-to-local | Convert an existing external-vault project to local (in-repo) knowledge |
sync | Full sync: memory, history, git evidence, index |
doctor | Validate setup, integration health, version staleness |
ship | Validate + sync + commit + push |
search <query> | Search the knowledge index (Memory-first) |
export-html | Build a polished static site from the vault |
view | Build site and open in browser |
clean-import <url> | Import a URL as cleaned, non-canonical evidence |
refresh-system | Refresh all integration files to the current framework version |
absorb | Scan project docs/ADRs and ingest them into the vault |
backfill-history | Rebuild lightweight project history from git |
compact | Prune stale captures and old session state |
All write commands support --dry-run and --json. Run agent-knowledge --help for the full list.
After upgrading agent-knowledge-cli, run this inside each project to pull in the latest hooks, rules, and commands:
agent-knowledge refresh-system --project .
Build a polished standalone site from your knowledge vault -- no Obsidian required:
agent-knowledge export-html # generate
agent-knowledge view # generate and open in browser
The generated site includes an overview page, branch tree navigation, note detail
view, evidence view, interactive graph view, and machine-readable knowledge.json
and graph.json. Opens via file:// with no server needed.
Memory/ notes are always primary. Evidence and Outputs items are clearly marked non-canonical.
Every sync and update event is automatically recorded in Evidence/captures/
as a small structured YAML file. This gives a lightweight history of what
changed and when -- without a database or background service.
Captures are evidence, not memory. They accumulate quietly and can be pruned
with agent-knowledge compact.
The knowledge index (Outputs/knowledge-index.json and .md) is regenerated
on every sync. Agents can:
Use agent-knowledge search <query> for a quick shortlist query from the
command line or a hook.
Import a web page as cleaned, non-canonical evidence:
agent-knowledge clean-import https://docs.example.com/api-reference
# produces: agent-knowledge/Evidence/imports/2025-01-15-api-reference.md
Strips navigation, ads, scripts, and boilerplate. Writes clean markdown with YAML frontmatter marking it as non-canonical.
init automatically backfills a lightweight history layer when run on an existing repo.
You can also run it explicitly:
agent-knowledge backfill-history
Creates History/events.ndjson (append-only event log), History/history.md
(human-readable summary), and History/timeline/ (sparse milestone notes).
History records what happened over time -- releases, integrations, sync events.
It is not a git replacement. Current truth lives in Memory/.
pip install -U agent-knowledge-cli
agent-knowledge refresh-system
refresh-system updates all integration files -- Claude settings/commands/contract,
Cursor hooks/rules/commands, AGENTS.md header, Codex config -- and version markers.
It never touches Memory/, Evidence/, Sessions/, or any curated knowledge.
doctor warns when the project integration is behind the installed version.
export AGENT_KNOWLEDGE_HOME=~/my-knowledge
agent-knowledge init
agent-knowledge doctor # validate setup and report health
agent-knowledge doctor --json # machine-readable health check
Common issues:
./agent-knowledge missing: run agent-knowledge init (or agent-knowledge init --local to keep knowledge in the repo)agent-knowledge migrate-to-local to switch to local mode.claude/settings.json exists -- run agent-knowledge refresh-system.cursor/hooks.json exists -- run agent-knowledge refresh-systemagent-knowledge syncagent-knowledge compactagent-knowledge that shadows ours. Check with which -a agent-knowledge. Fix: export PATH="$(python3 -c 'import sysconfig; print(sysconfig.get_path("scripts"))'):$PATH"bash and POSIX shell scripts).| What | Value |
|---|---|
| PyPI package | agent-knowledge-cli |
| CLI command | agent-knowledge |
| Python import | agent_knowledge |
git clone <repo-url>
cd agent-knowledge
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests/ -q
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.9 | 26 Apr 2026 | 4 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:eebd6f58eca83a9e1a7e2ee1d55995e2bd7d27aa9f6f62205fcfe170c7a459de