Skip to main content
Use config.toml for default models, permissions, context compaction, the interface, and MCP servers. Temporary launch options do not automatically rewrite the file.

Configuration locations

Project configuration merges nested objects key by key and replaces arrays as a whole. Settings marked global-only, such as the proxy and default project trust, cannot be overridden by a project. The global file is created on first run. Writes use an atomic temporary-file-and-rename operation and preserve the leading comment block. TOML does not support null; unsupported expressions are stripped. Remove an optional key to unset it. See Data paths for other local data locations.

External JSON configuration

STEPCODE_CONFIG_PATH points to external JSON configuration. Saving model and permission preferences writes back to that JSON file rather than models.json; do not treat it as a read-only temporary model catalog.

Configuration example

This example uses the Approve for Me permission mode. To require confirmation before file changes and commands, set permissionPreset to "ask". See Permissions and safety for mode behavior.

Top-level fields

Models and thinking

Client levels are off, minimal, low, medium, high, xhigh, and max. Available levels and their effective behavior depend on the provider and model. See Authentication and models for provider setup and model selection.

Interface

Disable working-line tips:

Sessions and networking

See Environment variables for environment-based configuration.

Shell and commands

Projects and permissions

See Permissions and safety for project resource loading and tool approval.

Section settings

  • [compaction].enabled = false only disables automatic compaction. reserveTokens reserves window space; keepRecentTokens controls recent messages retained.
  • [compaction].contextProjection defaults to clm-v1 when unset and automatic compaction is enabled; off keeps summary compaction only and does not enable CLM; lightweight-v1 is a lightweight projection. Disabling automatic compaction also disables implicit CLM.
  • [branchSummary].skipPrompt = true skips the branch-switch prompt and does not generate a summary by default.
  • [subagent].background = false runs every subagent task in the foreground. Background execution is allowed by default, with up to 8 concurrent tasks and automatic stop after 10 minutes idle.
  • [retry].baseDelayMs = 2000 uses exponential backoff: 2, 4, and 8 seconds. Keep provider.maxRetries at its default 0; positive values let SDK retries precede Step’s quota handling and may wait until quota resets. provider.timeoutMs sets a per-request timeout.
  • [thinkingBudgets] sets token budgets for thinking levels.
  • [images].autoResize = true resizes images to within 2,000 px.
  • [images].blockImages = true prevents sending images to models; [terminal].showImages only controls display.
  • [terminal].images accepts kitty, iterm2, auto, or false; match it to terminal capabilities.
  • [terminal].imageWidthCells measures inline width in terminal columns. clearOnShrink controls clearing after content shrinks, showTerminalProgress controls OSC 9;4 progress, and hyperlinks accepts true, false, or "auto".
  • [markdown].mermaid accepts streaming, final, or off.
  • [warnings].anthropicExtraUsage defaults to true and controls Claude Pro/Max extra-usage notices.

MCP servers

[mcp_servers.<name>] declares a global MCP server. See MCP for setup, transports, authentication, and fields.

Tool and resource arrays

Resource arrays accept files or directories, glob patterns, ! exclusions, and exact +path / -path controls. Global relative paths resolve from ~/.stepcode/agent; project paths resolve from .stepcode. See Built-in tools for launch options.

TUI settings

Deprecated settings

Telemetry

Disable telemetry in global config.toml:
This setting controls telemetry. Model requests, MCP calls, and manual feedback are managed separately. See Permissions and safety for data handling and sharing.