skip to content
/docs manual

docs / Configuration

Configuration files

Where `shuvarie.kdl`, `connections.kdl`, `themes.d` and friends live.

File locations

FilePathNotes
Global config~/.config/shuvarie/config.kdlAlways loaded
Workspace config./shuvarie.kdl, then ./.shuvarie/config.kdlLoaded only when the workspace trust grants the Configs category
Explicit config--config <FILE>Loads exactly this file; a missing file is an error
Connections~/.config/shuvarie/connections.kdlProviders, API keys and decision-model connections — keep it private
Trust records~/.config/shuvarie/trusts.kdlWritten by the trust prompt
Global session store~/.local/share/shuvarie/data.db (with session-dir.kdl)Sessions for every workspace, with db { global-store #true }
Custom commandscommands/<name>/command.md in the workspace .shuvarie/ dir or the global config dirOne directory per command; workspace copies win — see Slash commands
Drop-in dirsscene.d/, themes.d/ next to each config levelEvery sorted *.kdl file is loaded; broken files are skipped with a warning

Debug builds keep a parallel hall — ~/.config/shuvarie-dev/, ./.shuvarie-dev/, shuvarie-dev.kdl — that never shares with a release build.

Each tab opens the store for its workspace: with the global store that is one connection per tab, each tracking its own directory, while the shared connections.kdl and ui prefs stay the user’s.

Precedence

For each top-level section, the highest layer that defines it wins wholesale (./shuvarie.kdl → ./.shuvarie/config.kdl → global). Exceptions: lsp.servers and registries merge key-by-key, permissions rule lists stack (the built-in baseline sits deepest), and scenes/themes merge field-wise per name. Defining the same scene or theme name twice within one layer loads neither copy. Unknown sections are ignored; duplicate keys are an error.

Accepted sections

ui, db, embedding, agent, attachments, lsp, skills, default-providers, context, shell, registries, tools, codemode, permissions, decisions, ranking, scenes, themes, retry — each is covered on a subsection page: Interface, Agent & context, Skills, Tools & integrations, Codemode, Attachments, Providers & models, Scenes, Permissions and Decisions.

Turning a section on or off

An enabled/disabled node is a toggle that takes an optional boolean argument: disabled #true turns the feature off, enabled #true turns it back on, and a bare disabled/enabled keeps the block’s default (it is a no-op). A few sections are off by default — decisions and ranking are the notable ones — and opt in with enabled #true. The lone exception is the title auto-gen node, a true bare switch: its presence alone turns it on.

shuvarie

An agentic AI pair-programmer that lives in your terminal — for chivalrous people.

elsewhere github license mail

白き騎士 / コードの闇へ / 光差す — moonshotai/Kimi-K2.6

© 2026 Charles Dong