Skip to content
2026 Respawn OSS

Configuration

Builder resolves settings in this order (higher no. = higher priority):

  1. Built-in defaults
  2. ~/.builder/config.toml
  3. <workspace-root>/.builder/config.toml
  4. Environment variables
  5. builder run CLI flags

Interactive session flows resolve workspace-local config from the session workspace root. builder serve starts without a workspace root and applies workspace config only when a project/session selects a workspace. builder run is the only entrypoint that accepts config override flags.

Global settings live at:

~/.builder/config.toml

Workspace settings live at:

<workspace-root>/.builder/config.toml

Builder also installs a user-editable ripgrep config at:

~/.builder/rg.conf

Builder creates ~/.builder/rg.conf when missing and exports it to shell tools via RIPGREP_CONFIG_PATH only when you have not already set RIPGREP_CONFIG_PATH yourself.

Changing persistence_root does not move either config file. persistence_root controls where Builder stores its database & auth state. The default is ~/.builder.

model = "gpt-5.5"
thinking_level = "medium" # low, medium, high, xhigh
model_verbosity = "medium" # or "low"
# system_prompt_file = "SYSTEM.md" # relative to this config.toml directory
theme = "auto" # or light / dark
web_search = "native"
compaction_mode = "local" # or "native" (if supported)
cache_warning_mode = "default" # cache invalidation messages; or "verbose" / "off"
server_host = "127.0.0.1" # builder local server config
server_port = 53082
[timeouts]
model_request_seconds = 400
[tools]
shell = true
# Leave both patch/edit commented to use Builder's model-based default.
# patch = true
# edit = false
view_image = true
web_search = true
trigger_handoff = true # proactive compaction by the model
[shell]
postprocessing_mode = "all" # shell output token optimizations by Builder, or "all" | "none" | "user"
# postprocess_hook = "~/.builder/shell_postprocess_hook" # custom postprocess_hook, see docs
[skills]
"skill name" = true
[reviewer] # aka supervisor
frequency = "edits"
# model = "gpt-5.4-mini"
# model_verbosity = "low"
# provider_override = "openai"
# openai_base_url = "http://127.0.0.1:11434/v1"
# auth = "none" # or "inherit"
# model_context_window = 64000
timeout_seconds = 60
verbose_output = false # show in ongoing transcript
# system_prompt_file = "~/.builder/reviewer_system_prompt.md"
# custom subagent roles config, fast is the default one, always provided
[subagents.fast]
# agent_callable = true
# description = ""
# model = "gpt-5.4-mini"
# priority_request_mode = true
FlagOverridesNotes
builder run --modelmodel
builder run --provider-overrideprovider_override
builder run --thinking-levelthinking_level
builder run --themetheme
builder run --model-timeout-secondstimeouts.model_request_seconds
builder run --toolsentire tool setCSV replacement, not a merge
builder run --openai-base-urlopenai_base_urlAlso affects continuation behavior

builder run also accepts the headless-only selectors --agent <role> and --fast, which choose a subagent role rather than directly overriding one config key.

KeyTypeDefaultEnvCLIDescription
modelstringgpt-5.5BUILDER_MODELbuilder run --modelModel name. If provider inference from the model name is not enough, set provider_override too.
thinking_levelstringmediumBUILDER_THINKING_LEVELbuilder run --thinking-levelProvider-specific reasoning effort string.
model_verbositystringmediumText verbosity hint for supported models. Allowed: "", low, medium, high. Unsupported models ignore it.
system_prompt_filestring""Main system prompt file. Relative paths resolve from the containing config.toml directory. Empty files are skipped.
themestringautoBUILDER_THEMEbuilder run --themeTUI theme. Allowed: auto, light, dark. light and dark force Builder’s fixed palettes. auto or an omitted value falls back to terminal background detection.
notification_methodstringautoBUILDER_NOTIFICATION_METHODTerminal notification backend. Allowed: auto, osc9, bel. auto chooses osc9 on supported terminals and falls back to bel.
tool_preamblesbooltrueBUILDER_TOOL_PREAMBLESIncludes tool-usage preambles in the main system prompt for interactive runs. Headless builder run still suppresses them.
priority_request_modeboolfalseEnables fast-mode requests where the provider supports them.
debugboolfalseBUILDER_DEBUGEnables global developer-oriented strictness and logging. Only use for development/debugging
server_hoststring127.0.0.1BUILDER_SERVER_HOSTExact TCP app-server host Builder will dial or listen on. Builder does not use discovery files or silent port rebinding. Same-machine Unix socket optimization, when supported, is derived automatically and does not override an explicit TCP target.
server_portint53082BUILDER_SERVER_PORTExact TCP app-server port Builder will dial or listen on. Must match across clients attached to the same persistence root. Same-machine Unix socket optimization, when supported, is additive only and does not override an explicit TCP target.
web_searchstringnativeBUILDER_WEB_SEARCHWeb search backend. Allowed: off, native. custom (e.g. Brave Search) is not implemented yet, on the roadmap.
provider_overridestring""BUILDER_PROVIDER_OVERRIDEbuilder run --provider-overrideForces provider family for custom or alias model names. Allowed: openai, anthropic. Requires an explicit model override.
openai_base_urlstring""BUILDER_OPENAI_BASE_URLbuilder run --openai-base-urlOpenAI-compatible base URL. Must be used with provider_override=openai or with no explicit provider override. Cannot be changed mid-session.
storeboolfalseBUILDER_STORESets OpenAI Responses store=true for main model requests.
allow_non_cwd_editsboolfalseBUILDER_ALLOW_NON_CWD_EDITSLets first-class file edit tools edit files outside the workspace root. This is not sandboxing - model can still bypass this easily.
model_context_windowint272000BUILDER_MODEL_CONTEXT_WINDOWExplicit context-window size used for compaction and token accounting. Must be > 0.
context_compaction_threshold_tokensint258400BUILDER_CONTEXT_COMPACTION_THRESHOLD_TOKENSAuto-compaction threshold. Must be > 0, < model_context_window, and at least 50% of model_context_window. The default is derived from the default context window.
pre_submit_compaction_lead_tokensint35000BUILDER_PRE_SUBMIT_COMPACTION_LEAD_TOKENSFixed pre-submit runway reserve before auto-compaction. Builder compacts before sending the next user prompt once (context_compaction_threshold_tokens - this threshold) is reached.
minimum_exec_to_bg_secondsint15BUILDER_MINIMUM_EXEC_TO_BG_SECONDSDefault floor for exec_command yield time before it moves to background and lets Builder manage it asynchronously. Must be > 0. Use if model frequently expects your commands to complete fast, they background, and force model to poll for them.
compaction_modestringlocalBUILDER_COMPACTION_MODEAllowed: native, local, none. native prefers provider-native compaction and falls back to local compaction. local always uses local summary compaction. none disables auto-compaction and makes manual compaction fail.
cache_warning_modestringdefaultBUILDER_CACHE_WARNING_MODEPrompt-cache warning policy. Allowed: off, default, verbose. default catches unwanted invalidations and keeps them in detail mode. verbose includes everything from default, surfaces cache warnings in ongoing mode too, and a broader range of warnings.
shell_output_max_charsint16000BUILDER_SHELL_OUTPUT_MAX_CHARSOutput budget for shell tools and background-shell notices before they are truncated.
bg_shells_outputstringdefaultBUILDER_BG_SHELLS_OUTPUTBackground-shell output mode (injection of shell outputs into model context). Allowed: default, verbose, concise. Verbose dumps all output into the main agent’s model. Concise forces it to read output files. Default outputs truncated previews + gives a file path.
shell.postprocessing_modestringbuiltinBUILDER_SHELL_POSTPROCESSING_MODESemantic post-processing mode for exec_command. Allowed: none, builtin, user, all. builtin enables Builder processors only. all runs Builder processors first, then your hook.
shell.postprocess_hookstring""BUILDER_SHELL_POSTPROCESS_HOOKOptional executable/script path for a single local command post-processing hook. Builder sends JSON on stdin and expects JSON on stdout.
persistence_rootstring~/.builderBUILDER_PERSISTENCE_ROOTRoot for auth, session, and workspace index storage. Does not change the location of ~/.builder/config.toml.
KeyTypeDefaultEnvCLIDescription
timeouts.model_request_secondsint400BUILDER_TIMEOUTS_MODEL_REQUEST_SECONDSbuilder run --model-timeout-secondsHTTP timeout for model requests. Must be > 0.

Configure the supervisor agent that oversees model changes.

KeyTypeDefaultEnvDescription
reviewer.frequencystringeditsBUILDER_REVIEWER_FREQUENCYAllowed: off, all, edits. all runs the reviewer after every completed assistant turn. edits runs it only after successful first-class file edits.
reviewer.modelstringinherits modelBUILDER_REVIEWER_MODELSeparate model for the reviewer pass. If unset, Builder uses main model.
reviewer.thinking_levelstringinherits thinking_levelBUILDER_REVIEWER_THINKING_LEVELAllowed: low, medium, high, xhigh.
reviewer.model_verbositystringinherits model_verbosityBUILDER_REVIEWER_MODEL_VERBOSITYText verbosity hint for supported reviewer models. Allowed: "", low, medium, high.
reviewer.provider_overridestringinherits provider_overrideBUILDER_REVIEWER_PROVIDER_OVERRIDEForces provider family for the reviewer model. Allowed: openai, anthropic.
reviewer.openai_base_urlstringinherits openai_base_url for OpenAI-family reviewer providersBUILDER_REVIEWER_OPENAI_BASE_URLOpenAI-compatible base URL for the reviewer model. Non-OpenAI endpoints can run without Builder auth when the server accepts anonymous requests.
reviewer.authstringinheritBUILDER_REVIEWER_AUTHReviewer auth policy. inherit uses Builder’s configured auth. none sends no Authorization header; providers that require auth return their normal runtime error.
reviewer.model_context_windowintinherits model_context_windowBUILDER_REVIEWER_MODEL_CONTEXT_WINDOWExplicit reviewer context-window size sent to the reviewer provider.
reviewer.system_prompt_filestring""Path to a custom supervisor system prompt file. Relative paths resolve from the config file directory. Workspace config overrides global config; no CLI or environment override is provided.
reviewer.timeout_secondsint60BUILDER_REVIEWER_TIMEOUT_SECONDSReviewer HTTP timeout. Must be > 0.
reviewer.verbose_outputboolfalseBUILDER_REVIEWER_VERBOSE_OUTPUTControls whether reviewer suggestion text is shown at all. When false, Builder only shows the concise reviewer result/status line. When true, Builder shows the full suggestion list at the moment the reviewer issues it, and the later reviewer status stays concise after the follow-up is applied or ignored.

Use these for custom reviewer models or reviewer providers when the built-in registry is not enough.

KeyTypeDefaultEnvDescription
reviewer.model_capabilities.supports_reasoning_effortboolinherits model_capabilities.supports_reasoning_effortBUILDER_REVIEWER_MODEL_CAPABILITIES_SUPPORTS_REASONING_EFFORTOverride-marks the reviewer model as supporting reasoning effort / thinking levels.
reviewer.model_capabilities.supports_vision_inputsboolinherits model_capabilities.supports_vision_inputsBUILDER_REVIEWER_MODEL_CAPABILITIES_SUPPORTS_VISION_INPUTSMarks the reviewer model as supporting multimodal image and PDF inputs.
reviewer.provider_capabilities.provider_idstringinherits provider_capabilities.provider_idBUILDER_REVIEWER_PROVIDER_CAPABILITIES_PROVIDER_IDRequired whenever you set reviewer provider capability overrides.
reviewer.provider_capabilities.supports_responses_apiboolinherits provider_capabilities.supports_responses_apiBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_RESPONSES_APIMarks the reviewer provider as supporting the Responses API.
reviewer.provider_capabilities.supports_responses_compactboolinherits provider_capabilities.supports_responses_compactBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_RESPONSES_COMPACTMarks the reviewer provider as supporting server-side compaction.
reviewer.provider_capabilities.supports_request_input_token_countboolinherits provider_capabilities.supports_request_input_token_countBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_REQUEST_INPUT_TOKEN_COUNTMarks the reviewer provider as supporting exact request input-token counting.
reviewer.provider_capabilities.supports_prompt_cache_keyboolinherits provider_capabilities.supports_prompt_cache_keyBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_PROMPT_CACHE_KEYMarks the reviewer provider as accepting prompt cache keys.
reviewer.provider_capabilities.supports_native_web_searchboolinherits provider_capabilities.supports_native_web_searchBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_NATIVE_WEB_SEARCHMarks the reviewer provider as supporting native web search.
reviewer.provider_capabilities.supports_reasoning_encryptedboolinherits provider_capabilities.supports_reasoning_encryptedBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_REASONING_ENCRYPTEDMarks the reviewer provider as supporting encrypted reasoning items.
reviewer.provider_capabilities.supports_server_side_context_editboolinherits provider_capabilities.supports_server_side_context_editBUILDER_REVIEWER_PROVIDER_CAPABILITIES_SUPPORTS_SERVER_SIDE_CONTEXT_EDITMarks the reviewer provider as supporting server-side context editing.
reviewer.provider_capabilities.is_openai_first_partyboolinherits provider_capabilities.is_openai_first_partyBUILDER_REVIEWER_PROVIDER_CAPABILITIES_IS_OPENAI_FIRST_PARTYMarks the reviewer provider as first-party OpenAI semantics.

Use these only for custom or alias models when the built-in model registry is not enough.

KeyTypeDefaultEnvDescription
model_capabilities.supports_reasoning_effortboolfalseBUILDER_MODEL_CAPABILITIES_SUPPORTS_REASONING_EFFORTOverride-marks the configured model as supporting reasoning effort / thinking levels.
model_capabilities.supports_vision_inputsboolfalseBUILDER_MODEL_CAPABILITIES_SUPPORTS_VISION_INPUTSMarks the configured model as supporting multimodal image and PDF inputs.

If both values stay false, Builder falls back to the built-in model capability registry.

Use these only for custom providers or models.

KeyTypeDefaultEnvDescription
provider_capabilities.provider_idstring""BUILDER_PROVIDER_CAPABILITIES_PROVIDER_IDRequired whenever you set provider capability overrides.
provider_capabilities.supports_responses_apiboolfalseBUILDER_PROVIDER_CAPABILITIES_SUPPORTS_RESPONSES_APIMarks the provider as supporting the Responses API.
provider_capabilities.supports_responses_compactboolfalseBUILDER_PROVIDER_CAPABILITIES_SUPPORTS_RESPONSES_COMPACTMarks the provider as supporting server-side compaction.
provider_capabilities.supports_native_web_searchboolfalseBUILDER_PROVIDER_CAPABILITIES_SUPPORTS_NATIVE_WEB_SEARCHMarks the provider as supporting native web search.
provider_capabilities.supports_reasoning_encryptedboolfalseBUILDER_PROVIDER_CAPABILITIES_SUPPORTS_REASONING_ENCRYPTEDMarks the provider as supporting encrypted reasoning items.
provider_capabilities.supports_server_side_context_editboolfalseBUILDER_PROVIDER_CAPABILITIES_SUPPORTS_SERVER_SIDE_CONTEXT_EDITMarks the provider as supporting server-side context editing.
provider_capabilities.is_openai_first_partyboolfalseBUILDER_PROVIDER_CAPABILITIES_IS_OPENAI_FIRST_PARTYMarks the provider as first-party OpenAI semantics, which gates some Responses-specific behavior such as fast mode and phase protocol features.

[tools] is a per-tool boolean table in config.toml. File-based tool toggles merge with defaults. BUILDER_TOOLS and builder run --tools behave differently: they replace the entire tool set with the CSV you provide.

KeyDefaultWhat enabling it exposes
tools.ask_questiontrueTool to ask interactive questions
tools.shelltrueThe primary shell tool. Internally this maps to exec_command.
tools.patchdynamicFreeform patch grammar edit tool
tools.editdynamicJSON text replacement/create/delete edit tool
tools.trigger_handofffalseExperimental tool the agents can use to proactively compact their own context.
tools.view_imagetrueAbility to view images and PDFs (if supported)
tools.web_searchtrueTool to search the web
tools.write_stdintrueInteraction with background shells.

Notes:

  • tools.web_search = true does not force web search on. Native search still depends on web_search = "native" and provider support.
  • tools.patch and tools.edit are mutually exclusive. If both are left at their defaults, Builder chooses patch for first-party OpenAI providers or gpt-* model names, and edit otherwise.
  • To force edit, set edit = true and patch = false.

[subagents.<role>] is a file-only table for named headless subagent roles. Fast is always-present, but you can add custom agents here.

Subagent roles inherit the main config and then override only the keys set in that role table. Set system_prompt_file inside a subagent role to use a role-specific main system prompt for builder run --agent <role>. Set description to describe a behaviorally distinct role to other agents. Set agent_callable = false for roles that humans may run explicitly but agents should not call from Builder sessions.

More info on the Subagents page.

[skills] is a file-only per-skill boolean table in config.toml to disable unneeded skills. Keys are matched case-insensitively.

[skills]
"<skill name>" = true # | false

Notes:

  • Skill toggles are only applied when Builder creates a new conversation/session.
  • Use "quoted names" to refer to skill keys containing spaces.
  • Preinstalled skills are seeded into ~/.builder/.generated/skills; disable them here instead of editing generated files.