Skip to content

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.

VariableDefaultPurpose
KANADE_HOST127.0.0.1Daemon bind interface.
KANADE_PORT8002Daemon port for source mode. Desktop installs choose a private 8200-8299 port.
KANADE_DATA_DIROS user data dirRoot for Kanade-owned data when set.
KANADE_SPOOL~/.claude/kanade/events.jsonlClaude Code hook spool the daemon tails.
KANADE_LM_URLunset/source defaultOptional 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_CRON0 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_MINUTES60Minutes after the last chat input before a scheduled Dream Review may run. Manual runs bypass this quiet window.

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.

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.