Environment Variables
Kanade is local-first and env-var driven. Empty defaults are safe: the app should run without a maintainer-specific path, tracker, or vault.
| Variable | Default | Purpose |
|---|---|---|
KANADE_HOST | 127.0.0.1 | Daemon bind interface. |
KANADE_PORT | 8002 | Daemon port for source mode. Desktop installs choose a private 8200-8299 port. |
KANADE_DATA_DIR | OS user data dir | Root for Kanade-owned data when set. |
KANADE_SPOOL | ~/.claude/kanade/events.jsonl | Claude Code hook spool the daemon tails. |
KANADE_LM_URL | unset/source default | Optional OpenAI-compatible local LLM URL for Yume and narrative surfaces. |
KANADE_BUG_REPORT_URL | "" | Optional issue URL. Empty hides About/Settings report links. |
KANADE_GITHUB_ORG_ALLOWLIST | "" | Comma-separated GitHub org/user names that /api/open-url may open. Empty blocks GitHub handoff. |
KANADE_VAULT_ROOTS | "" | Comma-separated absolute paths added to the file reveal allowlist. |
KANADE_MEMORY_ROOTS | "" | Comma-separated markdown roots for the v0.4 memory indexer. Empty keeps the indexer dormant. |
KANADE_DREAM_CRON | 0 3 * * * | Daily Dream Review schedule. Kanade currently reads minute/hour from the cron expression and falls back to 03:00 when invalid. |
KANADE_DREAM_QUIET_MINUTES | 60 | Minutes after the last chat input before a scheduled Dream Review may run. Manual runs bypass this quiet window. |
Privacy Shape
Section titled “Privacy Shape”KANADE_VAULT_ROOTS and KANADE_MEMORY_ROOTS are opt-in. Kanade does not scan
$HOME, a Nextcloud folder, or a notes vault unless you configure the path.
KANADE_GITHUB_ORG_ALLOWLIST only affects URL handoff to the OS browser. It
does not grant repository access, create issues, or push code.
Memory and Dream Review
Section titled “Memory and Dream Review”KANADE_MEMORY_ROOTS feeds the memory map. Use absolute paths and separate
multiple roots with commas. Missing, relative, generated, dependency, and hidden
build folders are ignored.
KANADE_DREAM_CRON and KANADE_DREAM_QUIET_MINUTES seed the Dream Review
settings on first database setup. After that, the Settings page can update the
saved values. A fresh database reads the environment again.