Skip to content

config.toml reference

~/.yachiyo/config.toml holds settings and provider metadata. Model-provider API keys and Vertex private keys live in the encrypted, device-local provider-credentials.enc vault. Channel credentials live in channels.toml.

Edit it through the app, through yachiyo config set, or by hand. The file is rewritten in a deterministic section order whenever the app saves, so hand edits survive but may be reordered. Provider credentials are the exception: update them through Settings or yachiyo provider update, not by editing the blank compatibility fields below.

enabledTools = ["read", "write", "edit", "bash", "grep", "glob", "webSearch"]

The tool whitelist a run starts from, written by the app. It is not a settings switch — the run mode you pick in the composer is what decides a turn’s tool list. skillsRead and reviewThings are runtime-managed and never appear here. See the tool list.

runMode = "auto"

Default run mode: auto, explore, plan, chat, or custom. Defaults to auto. See run modes.

KeyTypeDefaultDescription
sidebarVisibility"expanded" | "collapsed"expandedSidebar state
language"auto" | "en" | "zh-CN"autoUI language; auto follows the system
sidebarPreviewbooleantrueMessage previews in the sidebar
toolCallDisplayMode"work-summary" | "tool-deck"tool-deckShow compact completed-work summaries or chronological tool decks
themeIdstringmizuOne of mizu, sumi, ume, aoba, mint, fuji, yamabuki, gobyou, murasaki
themeAppearance"system" | "light" | "dark"systemLight/dark mode
uiFontSizenumber—UI font size
chatFontSizenumber—Chat font size
chatPanelOpacitynumber—Chat panel opacity
updateChannel"stable" | "beta"—Which release channel to update from
demoModebooleanfalseDemo/screenshot mode
preventSystemSleepbooleanfalseKeep the machine awake during runs
notifyRunCompletedbooleantrueNotify when a run finishes
notifyCodingTaskStartedbooleantrueNotify when a delegated task starts
notifyCodingTaskFinishedbooleantrueNotify when a delegated task finishes
translatorShortcutstringCommandOrControl+Shift+TGlobal translator hotkey
jotdownShortcutstringCommandOrControl+Shift+JGlobal jot-down hotkey
KeyTypeDefaultDescription
mode"off" | "simple" | "full"simpleHow much foreground-app activity to record
accessibilityDeniedboolean—Set when you have explicitly denied accessibility for full mode
ocr.enabledbooleanfalseCapture window text via OCR
ocr.excludedAppsstring[][]Apps never OCR’d
KeyTypeDefaultDescription
activeRunEnterBehavior"enter-steers" | "enter-queues-follow-up"enter-steersWhat Enter does while a run is streaming
stripCompactbooleantrueCompact long thread history
stripCompactThresholdTokensnumber—Token count that triggers compaction
autoMemoryDistillationbooleantrueDistill memory after runs
inputBufferEnabledbooleanfalseBuffer typing before sending
recapEnabledbooleantrueRecap context on resume
imageToTextModelobject—{ providerName, model }; falls back to the tool model
KeyTypeDescription
savedPathsstring[]Registered workspace directories
pathLabelstablePath → label. Labels for paths no longer saved are pruned on write.
editorAppstringApp used to open files
terminalAppstringApp used to open a terminal
markdownAppstringApp used to open Markdown
KeyTypeDescription
syncDirstringSync folder path. Empty disables sync on this device.
KeyTypeDescription
enabledstring[]Active skill names
disabledstring[]Explicitly disabled skill names
KeyTypeDefaultDescription
mode"default" | "custom" | "disabled"defaultdefault reuses the chat model; disabled skips auxiliary generation
providerIdstring""Provider UUID when mode = "custom"
providerNamestring""Provider display name
modelstring""Model name
KeyTypeDescription
providerNamestringProvider for new chats
modelstringModel for new chats

Prefer yachiyo provider set-default over editing this directly.

KeyTypeDefaultDescription
enabledbooleantrueMaster switch for memory
autoRecallbooleantruePull recalled memory into runs

Yachiyo selects and falls back between Bing, Google, Brave, DuckDuckGo, and Exa automatically. This section stores browser-session metadata and optional Exa access; it does not choose a provider.

KeyTypeDefaultDescription
browserSession.sourceBrowserstring—Browser the session was imported from
browserSession.sourceProfileNamestring""Profile it came from
browserSession.importedAtstring""Import timestamp
browserSession.lastImportErrorstring""Last import error, if any
exa.apiKeystring""Exa API key
exa.baseUrlstring""Custom Exa endpoint

An array of tables, one per provider.

KeyTypeDescription
idstringStable UUID
presetKeystringLinks to a built-in preset (e.g. openai, google-vertex)
namestringDisplay name
typestringopenai, openai-responses, openai-codex, anthropic, gemini, vertex, or vercel-gateway
apiKeystringBlank compatibility field; the credential is stored in the encrypted local vault
baseUrlstringAPI base URL
thinkingEnabledbooleanWhether reasoning is on by default
reasoningtableEffort defaults and per-model reasoning config
codexSessionPathstringPath to Codex auth.json, for openai-codex
project, locationstringVertex only
serviceAccountEmailstringVertex service-account email
serviceAccountPrivateKeystringBlank compatibility field; the private key is stored in the encrypted local vault
modelList.enabledstring[]Models shown in the picker
modelList.disabledstring[]Known but hidden models
modelList.imageIncapablestring[]Models that cannot accept images
KeyTypeDescription
keycodestringTrigger code; must start with a letter
textstringText it expands to

External ACP agent profiles. Deprecated — see subagents.

KeyTypeDescription
idstringStable identifier
namestringDisplay name
enabledbooleanWhether the profile is offered
descriptionstringShown in the UI
commandstringExecutable
argsstring[]Arguments
envtableExtra environment variables
KeyTypeDefaultDescription
mode"worker" | "acp"workerSubagent runtime backend
enabledNamedAgentsstring[]all fourAny of explore, plan, review, general
preferredModelstable—Per-agent { providerName, model } overrides

Preset thread launchers.

KeyTypeDescription
idstringStable identifier
iconstringEmoji or image reference
iconType"emoji" | "image"How to interpret icon
labelstringDisplay label
workspacePathstringWorkspace the thread starts in
privacyModebooleanStart the thread in privacy mode
modelOverridetable{ providerName, model }
ordernumberSort position