Structured knowledge system for AI coding agents. Tracks decisions, learnings, mistakes, observations, and goals across projects.
AI agents lose context between sessions. Engram preserves the reasoning that code and git cannot: why you chose A over B, what broke and how to prevent it, patterns that span projects.
engram_search(query="rate limiting")
→ DEC-007: PyPI-only for transitive deps (vigil)
→ LRN-023: Stale signals compress dead package scores (vigil)
→ DEC-008: Budget tracking approach (vigil)
Core checks:
python3 -m tools validate
python3 -m tools health
python3 -m tools recall --cwd "$PWD" --scope project "current task"
python3 -m tools capsules
python3 -m tools capsule-candidate docs/research-capsules/<capsule>.md
python3 -m tools capsule-candidates
python3 -m tools capsule-candidate-review <memory-id>
python3 -m tools capsule-candidate-retire --reason "<why>" <memory-id>
python3 -m tools capsule-candidate-scancapsule-candidate queues a reviewed research capsule as an inactive memory
candidate. capsule-candidates lists those research-capsule candidates for
review. capsule-candidate-review checks one candidate against the capsule
promotion gate and prints approve/revoke guidance. capsule-candidate-retire
revokes an inactive capsule candidate with an audit reason; it does not delete
history. capsule-candidate-scan reports stale, missing, or mismatched source
capsules. None of these commands promote a capsule into active recall.
Experimental product evaluation harness:
python3 -m tools evaluate-handoff --gold
python3 -m tools evaluate-handoff predictions.json
python3 -m tools baseline-handoff --score| Type | Code | Example |
|---|---|---|
| Decision | DEC | "Used PyPI-only for transitive deps because GitHub API budget" |
| Learning | LRN | "Stale positive signals inflate health scores on dead packages" |
| Mistake | MST | "Parser silently accepted entries with missing tags" |
| Observation | OBS | "Cross-tool integration creates emergent value" |
| Goal | GOL | "Build a knowledge system that proves itself by being used" |
Engram runs as an MCP server for Claude Code:
{
"mcpServers": {
"engram": {
"command": "python3",
"args": ["/path/to/engram/server.py"]
}
}
}Tools: engram_search, engram_add, engram_list, engram_show, engram_health, engram_graph, engram_validate, engram_path, engram_review, engram_capsules, engram_add_capsule_candidate, engram_capsule_candidates, engram_review_capsule_candidate, engram_retire_capsule_candidate, engram_scan_capsule_candidates, and the governed memory tools documented in docs/memory-ledger-v3.md.
Entries link to each other forming a knowledge graph. The graph reveals non-obvious connections between projects:
- 100+ entries across 7 projects
- Cross-project links (vigil learnings inform caliber design)
- Health scoring: integrity, connectivity, freshness, coverage
scroll extracts knowledge from git history and deposits it into engram automatically:
scroll ingest -n 10 -p my-project
scroll deposit -p my-projectMIT