Kairos is local-first by design. This page is the canonical statement of what data lives where, what leaves your machine, and how to fully wipe local state if you want to.Documentation Index
Fetch the complete documentation index at: https://docs.backant.io/llms.txt
Use this file to discover all available pages before exploring further.
What stays local
Everything to do with memory, dream passes, and policy lives on your machine.| Path | Contents |
|---|---|
~/.claude/kairos/memory/.index.db | The memory store: lexical index + dense vectors, all in one SQLite file. |
~/.claude/kairos/config.json | Embedding model tier, dimensionality, Ollama URL. |
~/.claude/kairos/models/ | Docker-managed local model cache. |
~/.claude/kairos/dreams/ | Dream pipeline logs (per-dream timelines). |
~/.claude/kairos/eval/ | Weekly eval reports and replay outputs. |
~/.claude/kairos/.session/ | Per-turn scratch state. |
~/.claude/kairos/.state/ | Daemon state (PID, latest activity, etc.). |
<workspace>/.backant.toml | Per-project policy. Committed to your repo. |
What leaves your machine
Three outbound traffic surfaces:Claude API (via your Claude Code installation)
The agent’s reasoning calls go to Anthropic via your existing Claude Code setup, using your own Claude credentials. Same privacy surface and policy as any other Claude Code use — Kairos does not add an additional intermediary.
GitHub (via gh CLI)
PR operations, comments, and CI queries go via the
gh CLI against the repos you’ve authenticated. Kairos uses your existing GitHub token; no separate credentials are required.Subscription heartbeat (backant.io)
A small periodic call validates your subscription is active. Sends: an auth token, a heartbeat timestamp. Does not send: codebase content, memory entries, prompt content, or any user data beyond the auth token.
What Kairos never sends
To be explicit, none of these ever leave your machine via Kairos:- Memory entries (STM or LTM content)
- Embedding vectors
- Dream outputs
- Eval report contents
- File contents from your codebase that aren’t already part of a Claude API call you would have made anyway
.backant.tomlcontent
What about telemetry?
Kairos does not emit anonymous telemetry. There is no opt-out toggle because there is nothing to opt out of. If you want to verify, the network surface is small and easily observable:api.anthropic.com, api.github.com, mcp.backant.io (heartbeat). Plus whatever your Claude Code installation does on its own.
Resetting local state
To wipe all Kairos local state and start clean:backant login, backant memory init, and backant start to set up again.
Wipe memory only, keep credentials and model cache
Wipe per-workspace state only
Working air-gapped
Once the Docker image and embedding model are pulled, the local memory pipeline works offline. The two things that still need network are:- Claude API calls — required for reasoning. Without these, no work happens.
- Subscription heartbeat — required at startup. After startup, brief outages are tolerated.