Skip to main content
Bolt uses a JSON with Comments (.jsonc) file for project and global configuration. The schema is versioned and published at https://opencode.ai/config.json, which editors can use to provide autocompletion and validation.

Config file locations

Bolt merges configuration from two locations. Per-project settings win over global settings when the same key appears in both. The OS config directory is:
  • macOS: ~/Library/Application Support/bolt/
  • Linux: ~/.config/bolt/
  • Windows: %APPDATA%\bolt\
Bolt also reads legacy opencode.jsonc / opencode.json files in the same locations. New projects should use the bolt.jsonc naming convention, which takes priority over the legacy filenames.
Bolt creates a minimal global config file with the $schema line on first run, and creates .bolt/bolt.jsonc in your project root the first time you open the TUI in that directory.

Schema fields

string
URL pointing to the JSON schema for this config file. Enables autocompletion and inline validation in editors that support JSON Schema (VS Code, Zed, JetBrains IDEs, etc.).
string
Default model for all sessions, expressed as provider/model. This can be overridden per-session with bolt run --model or in the TUI model picker.
Run bolt models to see all available provider/model strings for your configured providers.
object
Provider-specific credential and settings overrides. Each key is a provider ID (e.g. anthropic, openai, google). The most common use is to set an API key via an environment variable reference so that the key is never stored in plaintext.
Values that start with ${ and end with } are treated as environment variable references and expanded at runtime.
object
MCP server configurations, keyed by a name you choose. Bolt supports two server types:Remote server — connects over HTTP/SSE, with optional OAuth:
Local server — spawns a subprocess over stdio:
Use bolt mcp add for an interactive wizard, or bolt mcp list to inspect current server status.
string[]
Additional system instructions appended to every session in this project or globally. Instructions from multiple config files are merged (deduplicated). Use this to inject project-specific conventions, style rules, or constraints that every agent should follow.
string[]
Plugin specs to load. Each entry is an npm package name, a local file path, or a URL. Plugins can extend the TUI, add slash-commands, or register additional providers. Use bolt plugin install <spec> to install a plugin and have it added to this array automatically.

Complete example

The following .bolt/bolt.jsonc shows a realistic project configuration:
Run bolt debug config to see the fully-resolved configuration after all files are merged. This is the fastest way to confirm that your per-project and global configs are combining correctly.