Daemon Config Reference
Complete reference for local.toml — the kaged daemon's operator-local configuration.
local.toml lives at ~/.config/kaged/local.toml (or $KAGED_CONFIG_DIR/local.toml). It stores operator preferences, provider credentials, model aliases, plugin state, and project registry.
All sections are optional. The daemon starts with sensible defaults when local.toml is absent or empty.
Secrets (api_key) should use api_key_env to reference environment variables rather than storing keys directly.
# Local Config (top-level)
Top-level keys in local.toml — the daemon's operator-local configuration.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
operator_name |
string |
no | — | Operator display name. |
ui |
object |
no | — | UI preferences. See §ui. |
aliases |
Record<string, string> |
no | — | Model alias → provider:model mappings (e.g. sonnet → claude:sonnet-4). |
providers |
Record<string, object> |
no | — | LLM provider configurations keyed by name. See §provider. |
plugins |
Record<string, object> |
no | — | Installed plugin entries keyed by name. See §plugin_entry. |
system_plugins |
Record<string, object> |
no | — | System plugin entries keyed by name. See §system_plugin_entry. |
projects |
object[] |
no | — | Registered project entries. See §project_entry. |
audit |
object |
no | — | Audit logging options. See §audit. |
# UI Preferences
Frontend display settings. Uses .passthrough() — unknown keys are tolerated for forward-compat.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
theme |
"dark" | "light" | "system" |
no | — | Color theme: "dark", "light", or "system". |
timezone |
string |
no | — | IANA timezone string (e.g. America/Los_Angeles). |
locale |
string |
no | — | Locale string (e.g. en-US). |
interrupt_suffix |
string |
no | — | Suffix appended to interrupt messages. |
forward_prefix |
string |
no | — | Prefix prepended to forwarded messages. |
# Provider
An LLM provider entry under [providers.<name>]. Uses .passthrough() for driver-specific options.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
driver |
string |
no | — | API driver name from @kaged/llm. Falls back to provider key if omitted. |
api_key_env |
string |
no | — | Environment variable name holding the API key. |
api_key |
string |
no | — | Direct API key (prefer api_key_env for security). |
base_url |
url |
no | — | Custom base URL for the provider API. |
default_options |
Record<string, unknown> |
no | — | Default request options passed to every call. |
models |
object[] |
no | — | Available models for this provider. See §model_entry. |
# Model Entry
A model available from a provider.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string |
yes | — | Model identifier (required). [min length: 1] |
name |
string |
no | — | Human-readable display name. |
# Plugin Entry
A user-installed plugin under [plugins.<name>].
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
installed |
string |
yes | — | ISO timestamp of installation. |
local |
boolean |
yes | — | Whether this is a local (filesystem) plugin. |
projects |
string[] |
no | — | Project IDs this plugin is scoped to. Omit for all projects. |
source |
string |
no | — | Plugin source (registry URL or path). |
config |
Record<string, unknown> |
no | — | Arbitrary plugin configuration. |
# System Plugin Entry
A system-wide plugin under [system_plugins.<name>].
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
enabled |
boolean |
yes | — | Whether this system plugin is active. |
path |
string |
no | — | Absolute path to plugin package. Defaults to ${KAGED_HOME}/system-plugins/<name>/. |
config |
Record<string, unknown> |
no | — | Arbitrary plugin configuration. |
# Project Entry
A registered project in the [[projects]] array.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id |
string |
yes | — | Unique project identifier. [min length: 1] |
path |
string |
yes | — | Absolute filesystem path to the project root. [min length: 1] |
last_opened_at |
integer |
no | — | Unix timestamp of last access. |
status |
"ready" | "pending" | "invalid" |
yes | — | Project state: "ready", "pending", or "invalid". |
label |
string |
no | — | Operator-set display name (shown in UI instead of id). |
nickname |
string |
no | — | Deprecated — superseded by label. |
accent_color |
string |
no | — | CSS color for project accent in the UI. |
interrupt_suffix |
string |
no | — | Per-project interrupt message suffix. |
forward_prefix |
string |
no | — | Per-project forward message prefix. |
# Audit
Audit logging toggles under [audit].
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
log_alias_use |
boolean |
no | — | Log when an alias is resolved. |
log_provider_use |
boolean |
no | — | Log when a provider is called. |
log_alias_edit |
boolean |
no | — | Log when an alias is created/edited/deleted. |
log_plugin_install |
boolean |
no | — | Log when a plugin is installed/removed. |