docs

config.toml

every setting of bise in one file, ~/.bise/config.toml. most of them have a command, so you rarely edit it by hand.

bise reads ~/.bise/config.toml (or $BISE_HOME/config.toml). you rarely need to open it: /models, /voice, shift+tab and bise config set write it for you, and keep the rest of the file as it was. bise models prints the path on its last line, and lists what it can't read as warnings.

a full example

~/.bise/config.toml
approvals = "auto"                        # yolo (default) or auto
compaction_threshold = "45%"              # tokens (450000) or a share of the window; at most 80%
project_doc_fallback_filenames = ["CLAUDE.md"]

[roles]
main = "anthropic/claude-opus-5-5"
agents = "openai/gpt-6.1-sol"
small = "mistral/mistral-small-latest"
voice = "mistral/voxtral-transcribe-3"

[roles.main]                              # instead of the main line, to set the effort
model = "anthropic/claude-opus-5-5"
effort = "high"

[voice]
language = "en"
vocabulary = ["bise", "config.toml"]
listen = "auto"

[providers.litellm]
api = "openai-chat"
base_url = "http://localhost:4000/v1"
key_env = "LITELLM_API_KEY"

[models."litellm/claude-sonnet-4-5"]
context = 1000000
vision = true
reasoning = true

the top-level keys

keywhat it doesunsetcommand
approvalsyolo: every call runs. auto: safe calls run, risky ones ask youyoloshift+tab, bise config set approvals auto
compaction_thresholdwhen a conversation compacts: tokens, or a share of the window like "45%"80% of the windowbise config set compaction_threshold 45%
project_doc_fallback_filenamesfiles read where a folder has no AGENTS.mdnonebise config set project_doc_fallback_filenames CLAUDE.md
project_doc_max_bytesthe budget of the repo's instructions files32768

[roles]

which model does what. a role is a line (main = "provider/model") or a table with model and effort. see models and roles.

roleenv variable that winscommand
mainBISE_MODELbise config set main <model>
agentsBISE_AGENT_MODELbise config set agents <model>
smallBISE_SMALL_MODELbise config set small <model>
voiceBISE_VOICE_MODELbise config set voice <model>
classifyBISE_CLASSIFY_MODEL/models

[voice]

dictation's language and vocabulary, and voice mode's listen, tts_voice, speed, read_aloud and sounds. see voice.

[providers.&lt;id&gt;] and [models."&lt;id&gt;/&lt;model&gt;"]

add a provider, or change a built-in one key by key: name, api, base_url, key_env, small_model, key_command, headers_env, idle_timeout_sec, and a model's context, max_output, vision, reasoning, tools and prices. see gateways and local models.

the repo's settings

a few settings belong to one repo, in .switchboard/config.toml at its root:

your-repo/.switchboard/config.toml
[flow]
mode = "trunk"            # "pr" or "trunk"; unset: main asks you once
check = "make test"       # what every land runs first
push = true               # trunk: push the default branch after each land

see landing work.

environment variables

variablewhat it does
BISE_HOMEmoves ~/.bise
BISE_MODEL, BISE_AGENT_MODEL, BISE_SMALL_MODEL, BISE_VOICE_MODEL, BISE_CLASSIFY_MODELa role's model for this session
BISE_APPROVALSyolo or auto for this session, never written
ANTHROPIC_API_KEY, OPENAI_API_KEY, ...a provider's key (see providers and keys)