Quickstart without Claude Code
Use kindling as a standalone local memory engine. No Claude Code hooks, no IDE plugin, and no Rust toolchain required for the basic path.
kindling captures what happened in your project (commands, errors, decisions, summaries) and retrieves it later with deterministic, explainable results. Everything stays on your machine in SQLite.
Install
Download the prebuilt kindling binary with the one-line installer:
curl -fsSL https://raw.githubusercontent.com/eddacraft/kindling/main/install.sh | sh
The script detects your platform, verifies the release checksum, and installs
kindling to ~/.local/bin by default. Add that directory to your PATH if
the installer asks you to.
Other install options:
- Cargo:
cargo install eddacraft-kindling - npm (thin client + bundled binary):
npm install @eddacraft/kindling - Homebrew (macOS/Linux):
brew install eddacraft/tap/kindlingfrom the same eddacraft/homebrew-tap that ships anvil
Full install guide: Install
Try it with sample data
Load the bundled demo dataset so you can search and browse immediately:
kindling demo
This imports sample observations, capsules, summaries, and pins into
~/.kindling/demo/kindling.db. The command prints suggested next steps,
including the exact --db flag for later commands.
Search your memory
kindling search "JWT" --db ~/.kindling/demo/kindling.db
Results are ranked deterministically: pins first, then the current session summary, then provider hits with provenance explaining why each item matched. Candidate scores are normalised to 0.0–1.0.
Narrow the scope when you have multiple projects or sessions:
kindling search "authentication" --session session-1 --repo ./my-project
Browse in a local viewer
Export your database to a self-contained HTML page and inspect it offline:
kindling browse --db ~/.kindling/demo/kindling.db --no-open
The command prints the path to the generated HTML file. Open it in any browser,
or omit --no-open to launch your default browser automatically.
Capture context manually
You do not need an adapter to write memory. Log observations from the shell:
kindling log "JWT tokens expire after 15 minutes, not 1 hour"
kindling log --kind error "segfault in auth middleware after upgrade"
Open and close capsules for bounded sessions:
kindling capsule open --intent "investigating memory leak" --repo ./my-project
kindling capsule close cap_abc123 --summary "root cause: unbounded cache in SessionStore"
Pin important findings so they always appear first in searches:
kindling pin observation obs_abc123 --note "Root cause identified"
Optional: daemon mode for multi-tool access
When several tools or agents need to share the same project memory, start the daemon:
kindling serve
The daemon listens on a Unix domain socket (~/.kindling/kindling.sock by
default; TCP loopback on Windows). Rust integrations use
kindling-client; Node integrations use
@eddacraft/kindling. Both auto-spawn the daemon on first use if it is not
already running.
Connect your own tool
To capture context automatically from your editor, agent framework, or workflow runner, build a thin adapter over the Node client or Rust SDK. See Custom Integrations and the integrations matrix.
What next?
| Goal | Where to go |
|---|---|
| Core concepts (observations, capsules, pins) | Capsules |
| CLI reference | CLI |
| Automatic capture from your editor | VS Code adapter |
| OpenCode adapter | OpenCode |
| PocketFlow adapter | PocketFlow |