Asobi
Asobi is a persistent, project-local knowledge graph CLI for AI agents. Agents use it to keep memory, track session state, and share context across conversations — stored in a local libSQL/SQLite file, no server required.
Features
- Knowledge graph — entities, append-only (capped) observations, and directed relations.
- Truths — durable
key→valuefacts per entity for current state (status,version); status-as-truth makes a board a singlesearch --where status=…. - Fast search —
searchover FTS5 (porter stemming + BM25) with a substring fallback, plus--where key=valuetruth filters (the query term is optional). - Concurrency-safe — WAL +
busy_timeout, so a lead agent and dispatched sub-agents can write the same graph without lock errors. - Lazy reads —
graph/searchreturn truths + counts;showreturns the full body. Cheap to load, cheap on tokens. - Skills — install reusable agent instructions from a git repo or local path.
- Document tier (optional,
--features documents) —ingest+ semanticqueryover Markdown.
Installation
From crates.io (recommended)
# with the optional document tier (semantic ingest + query):
Prebuilt binary (cargo-binstall)
No compile — cargo-binstall pulls the binary from the GitHub release:
From source
Or build locally with make build (graph CLI) or make build-documents (adds ingest/query/compact). Requires Rust 1.85+, Edition 2024.
Quick Start
# Store and recall context (names are hierarchical, e.g. ame:mobile-support:task-1)
Common Commands
asobi graph/search <q>/search --where status=READY/show <name>... --expand part_of --with-ids— read the graph (supports subtree expansions and sequential observation IDs).asobi new <name> <type> --obs "..."/obs <name> "..."/update-obs <name> <old/id> <new> [--id]/rm-obs <name> <content/id> [--id]— manage observations (supports updates and deletions by unique sequential IDs).asobi truth <name> <key> <value>/rm-truth <name> <key>— manage truths.asobi skills install <src> --all/update/skills/skills show <name>— manage skills (--allandupdatesync, pruning skills dropped upstream;--selectis additive).asobi stats/export -o graph.json/import graph.json/reset— inspect & manage.
Development
- Task runner:
make(Nix-wrapped). Runmake checkfor fmt + lint + tests. - See
docs/usage.mdfor the full CLI reference,docs/workflow.mdfor the day-to-day and task dispatcher workflow, anddocs/architecture.mdfor design.