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.
Provider credentials live under [providers.<name>.credentials]. Prefer credentials.*.env to reference environment variables rather than storing secrets directly in local.toml.
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. |
default_tools |
Record<string, object | null> |
no | — | |
langfuse |
object |
no | — | Optional Langfuse tracing configuration. See §langfuse. |
logging |
object |
no | — | |
notifications |
object |
no | — | |
secrets |
Record<string, Record<string, string>> |
no | — | |
mcp |
Record<string, object> |
no | — | |
web |
unknown |
no | — |
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". |
font_size |
"small" | "medium" | "large" | "x-large" |
no | — | |
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 |
|---|---|---|---|---|
catalog_id |
string |
no | — | Catalog ID linking the provider back to the bundled catalog snapshot. |
npm |
string |
yes | — |
AI SDK package name to dynamically load.
[min length: 1] |
name |
string |
no | — | |
base_url |
string |
no | — | Custom base URL for the provider API. |
credentials |
Record<string, object> |
no | — | Map of named credentials. Each entry has either a literal value or an env var name. |
header_mappings |
Record<string, string> |
no | — | |
discover_endpoint |
string |
no | — | |
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. |
manual |
boolean |
no | — |
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 | — | Deprecated — pre-ADR-0023 plugin configuration. Rename to system_config. |
system_config |
Record<string, unknown> |
no | — | Operator-local plugin configuration validated against the manifest's system_config_schema. |
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. |
Langfuse
Optional Langfuse tracing settings under [langfuse].
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
enabled |
boolean |
no | — | Enable Langfuse tracing. Defaults to on when credentials resolve. |
public_key |
string |
no | — | Langfuse public key stored directly in local.toml. |
secret_key |
string |
no | — | Langfuse secret key stored directly in local.toml. |
base_url |
url |
no | — | Langfuse base URL. Defaults to the hosted cloud endpoint. |
public_key_env |
string |
no | — | Environment variable name holding the Langfuse public key. |
secret_key_env |
string |
no | — | Environment variable name holding the Langfuse secret key. |