Skip to main content
Claurst reads configuration from up to four settings files, merged in priority order. Higher layers override lower ones.

Settings layers

The managed layer is read-only and cannot be overridden by user settings. It is intended for enterprise environments where administrators need to enforce policy.

Global settings file

~/.claude/settings.json applies to all projects. Use it for personal preferences such as your model choice, theme, and API key.
~/.claude/settings.json

Project settings file

.claude/settings.json at the root of your project is committed to version control and shared with your team. Use it to define project-specific permission rules, model overrides, and MCP server configurations.
.claude/settings.json
.claude/settings.local.json follows the same schema as .claude/settings.json but is gitignored. Use it for personal overrides that should not be shared, such as local API keys or per-developer permission rules.

Key settings fields

Model selection

Set the model field to any of the supported model IDs:

API key configuration

Claurst resolves your API key in this order:
1

Config field

Reads apiKey from the active settings (any layer).
2

Environment variable

Falls back to the ANTHROPIC_API_KEY environment variable.
Store your API key in the environment variable rather than a settings file. This prevents it from being accidentally committed to version control, even in .claude/settings.local.json.

Custom API endpoint

Set ANTHROPIC_BASE_URL to route requests to a custom endpoint — useful for proxies, enterprise gateways, or local model servers:
In the Rust config, resolve_api_base() checks this environment variable first, falling back to https://api.anthropic.com.

Permission rules

Permission rules use glob-style patterns scoped to tool categories. Each rule matches ToolName(argument_pattern). Tool categories:
Rules in the deny list take precedence over allow rules. A tool call matching both lists will be blocked.

MCP server configuration

Define MCP servers that Claurst should connect to at startup. Each entry in mcpServers launches a subprocess via stdio transport.
The McpServerConfig struct in cc-core supports:

Beta features

Some API features must be explicitly opted into via beta headers. The betaFeatures field maps feature names to booleans:
Known beta headers negotiated by Claurst include:

Reading and writing settings programmatically

The ConfigTool (available in internal builds) and the /config slash command allow reading and writing individual settings fields at runtime:
The Settings struct in cc-core exposes Settings::load() and Settings::save(), which deserialize from and serialize to ~/.claude/settings.json.