Knowledge Base (KB)
The Knowledge Base stores curated project knowledge -- architecture decisions, coding conventions, gotchas -- in a hierarchical structure. KB entries are written by agents at the user's request, not hand-authored by users. Users can view and edit entries via the web dashboard at recalletta.ai.
Entries marked as important are eligible for auto-injection on session start when project detection/pinning succeeds. Keep important entries compact: every important entry consumes agent context window, and over-marking entries as important degrades agent performance.
View the KB Tree
$ recalletta kb
or with full content:
$ recalletta kb --full
Real output:
$ recalletta kb tree
=== Knowledge Base (40 entries) ===
recalletta 70d90af5 Recalletta
├── agents Agents (1 entries)
│ └── self-awareness - Self-Aware Agents
├── meta Meta (5 entries)
│ ├── philosophy - Collaboration Philosophy
│ ├── memory-management - Memory Management Architecture
│ └── ...
├── gotchas Gotchas (19 entries)
│ ├── commits - Git Commit Style
│ ├── api-contract-mismatch - API Contract Mismatches Fail Silently
│ └── ...
├── crew Crew (9 entries)
│ ├── axiom - Axiom (Architect)
│ ├── data - Commander Data (Team Lead)
│ └── ...
└── onboarding Onboarding (1 entries)
└── start - Quick Start for Recalletta
Read an Entry
Use a 2-part or 3-part path:
$ recalletta kb gotchas/commits # 2-part: compartment/entry (current project)
$ recalletta kb recalletta/gotchas/commits # 3-part: project/compartment/entry
Output:
$ recalletta kb gotchas/commits
# Git Commit Style
Do NOT add 'Generated with Claude Code' or 'Co-Authored-By: Claude' footers
to commits. User has corrected this multiple times. Just write clean commit
messages focused on what changed and why.
Create or Update an Entry
$ recalletta kb set <path> -t "Title" -b "Body content"
| Flag | Purpose |
|---|---|
-t "Title" |
Entry title (required for new entries) |
-b "Body" |
Entry body (or pipe via stdin) |
-i |
Mark as important (eligible for auto-injection when project detection/pinning succeeds) |
Examples:
$ recalletta kb set gotchas/my-entry -t "My Gotcha" -b "Don't do this because..."
$ recalletta kb set gotchas/my-entry -t "My Gotcha" -i -b "Eligible for injection when project detection succeeds"
$ echo "Body from stdin" | recalletta kb set gotchas/my-entry -t "Title"
Patch an Entry
Make a partial string replacement (like Claude Code's Edit tool):
$ recalletta kb patch <path> "old text" "new text"
Search the KB
$ recalletta kb search "query"
Output:
$ recalletta kb search "session"
Found 24 result(s) for 'session':
recalletta/gotchas/fork-session-hooks - Fork sessions trigger session_end hooks
recalletta/reference/sessions - Key Sessions
...
Version History
Every edit creates a new version. You can view history, compare versions, and rollback.
$ recalletta kb history <path> # Show all versions
$ recalletta kb diff <path> [V1] [V2] # Compare two versions
$ recalletta kb rollback <path> [V] # Rollback to a previous version
Delete an Entry
$ recalletta kb del <path> [-y]
Pass -y to skip the confirmation prompt.
List All Entries
$ recalletta kb list
Shows all projects and their entries in a flat list.
Manage Compartments
$ recalletta kb compartment create <project> <name>
$ recalletta kb compartment rename <project> <old> <new>
$ recalletta kb compartment delete <project> <name> [-y]
Pending Updates
$ recalletta pending
Shows any KB updates that are queued but not yet applied. Note: pending is a top-level command, not a kb subcommand.
Context Override
Use -c to override the project context:
$ recalletta kb -c personal tree # Personal workspace
$ recalletta kb -c myproject tree # Specific project by slug