Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

CLI

Install

curl -fsSL $KAIBO_URL/install.sh | sh
$KAIBO_URL is the address you open the dashboard at. The script is served by that site and installs the CLI from it: one file for Node.js 20 or newer, put in ~/.local/bin/kaibo, with its checksum verified first. It also saves the site's address, so only kaibo login is left.

Stay up to date

Once a day the CLI asks the site you installed from whether there is a newer version, and tells you once per version. To update:
kaibo self-update # --force reinstalls the current version
It downloads the new file, checks its checksum, and swaps it in place only if everything matches. Set KAIBO_DISABLE_UPDATE_CHECK=1 to turn the daily check off. From a checkout of the source, use git pull; the check and self-update apply to the installed file.
kaibo login # saves your key (checked before it is stored) kaibo remember "We ship on July 17." # or: echo "..." | kaibo remember kaibo recall "ship date" --as-of 2026-07-01T00:00:00Z kaibo explain <memory id> kaibo forget --query "ship date" --reason "asked" --dry-run kaibo forget verify <receipt id>
kaibo import notes.md # also mem0, zep, letta, jsonl; add --dry-run to only look kaibo export > backup.jsonl # server-side: events and memories as JSON lines kaibo usage # counts for the project kaibo hook print-claude-code # config for the Claude Code recording hook

Set up and administer

Everything the dashboard does, the CLI does too, so you or an agent can set a project up without a browser. These need an admin key; creating projects needs an organization-wide one.
kaibo projects # list kaibo projects create "Support agent" kaibo projects rename <project-id> "Billing agent" kaibo projects delete <project-id> --yes # permanent: all its data goes too kaibo keys # list kaibo keys create --label ci --scope read_write --for-project <project-id> kaibo keys revoke <key-id> kaibo webhooks create https://example.com/kaibo --event memory.created kaibo webhooks # list kaibo webhooks test <id> # queue a signed test delivery kaibo webhooks deliveries <id> # status, attempts, your server's response kaibo webhooks delete <id> kaibo memories # list (--status superseded for history) kaibo memories show <memory-id> kaibo memories edit <memory-id> "what it should say" # the old text stays as history
keys create and webhooks create print their secret once. A key can only grant scopes it holds. Add --json to any command for output a script or agent can parse.
import and export are covered in Import and export, hook in Agent integrations.
Also: events, memories, verify (checks the hash chain locally), tail, diff (how an answer changed between two times), whoami, doctor, config, completion <bash|zsh|fish>, and mcp.
Every command takes --json. Settings come from flags, then KAIBO_KEY, KAIBO_URL, KAIBO_PROJECT, then ~/.config/kaibo/config.json (mode 0600).

Exit codes

CodeMeaning
0ok
1error
2usage
3auth
4rate limited
9recall abstained, with --strict
The terminal on the home page runs these same commands (the Pastel and Ink components, drawn on the server) against a throwaway demo account.