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.
Download the prebuilt kindling binary with the one-line installer:
curl -fsSL https://raw.githubusercontent.com/eddacraft/kindling/main/install.sh | shThe 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 (glibc Linux; Alpine/musl: use the install script)
Full install guide: docs.eddacraft.ai/kindling/quickstart/install
Load the bundled demo dataset so you can search and browse immediately:
kindling demoThis 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 across captured context with full-text retrieval:
kindling search "JWT" --db ~/.kindling/demo/kindling.dbResults are ranked deterministically: pins first, then the current session summary, then provider hits with provenance explaining why each item matched.
Narrow the scope when you have multiple projects or sessions:
kindling search "authentication" --session session-1 --repo ./my-projectExport your database to a self-contained HTML page and inspect it offline:
kindling browse --db ~/.kindling/demo/kindling.db --no-openThe command prints the path to the generated HTML file. Open it in any browser,
or omit --no-open to launch your default browser automatically.
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"When several tools or agents need to share the same project memory, start the daemon:
kindling serveThe daemon listens on a Unix domain socket (~/.kindling/kindling.sock by
default). Rust integrations use kindling-client;
Node integrations use @eddacraft/kindling.
Both auto-spawn the daemon on first use if it is not already running.
To capture context automatically from your editor, agent framework or workflow runner, build a thin adapter over the Node client or Rust SDK.
- Integrations matrix: docs/integrations.md
- Adapter cookbook (10 minutes): docs/adapters/cookbook.md
- Minimal working example: examples/adapter-minimal
| Goal | Where to go |
|---|---|
| Core concepts (observations, capsules, pins) | docs.eddacraft.ai/kindling/concepts/capsules |
| CLI reference | docs.eddacraft.ai/kindling/reference/cli |
| Rust SDK | kindling-client on crates.io |
| OpenCode adapter | @eddacraft/kindling-adapter-opencode |
| PocketFlow adapter | @eddacraft/kindling-adapter-pocketflow |