Skip to content

Settings

Full settings.json reference — every field, type, and default.

~/.soma/agent/settings.json (global) and .soma/settings.json (project-level, Soma-specific). Project overrides global. Use /settings to edit common options interactively. This page covers the engine settings that control the runtime — for Soma-specific settings (heat, boot, muscles), see Configuration.

File Locations

FileWhat It Controls
~/.soma/agent/settings.jsonEngine runtime — models, compaction, UI, retry, shell
.soma/settings.jsonSoma behavior — heat, boot steps, muscles, context warnings

This page documents the engine settings. For Soma settings, see Configuration.

Model & Thinking

SettingTypeDefaultDescription
defaultProviderstringDefault provider ("anthropic", "openai", "google", etc.)
defaultModelstringDefault model ID
defaultThinkingLevelstring"off", "minimal", "low", "medium", "high", "xhigh"
hideThinkingBlockbooleanfalseHide thinking blocks in output
enabledModelsstring[]Models for Ctrl+P cycling (same format as --models flag)
{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "enabledModels": ["claude-*", "gpt-4o"]
}

See Models & Providers for the full model configuration guide.

Compaction

Controls how long conversations are summarized to stay within context limits.

SettingTypeDefaultDescription
compaction.enabledbooleantrueEnable auto-compaction
compaction.reserveTokensnumber16384Tokens reserved for response
compaction.keepRecentTokensnumber20000Recent tokens to keep verbatim
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

Note: Soma’s breath cycle (/breathe, /exhale) provides an alternative to compaction. Some users prefer disabling compaction and using breathe rotation instead, which preserves full conversation history across sessions via preloads.

UI & Display

SettingTypeDefaultDescription
themestring"dark"Theme name. See Themes.
quietStartupbooleanfalseHide startup header
doubleEscapeActionstring"tree"Double-escape: "tree", "fork", or "none"
editorPaddingXnumber0Horizontal padding for input (0-3)
showHardwareCursorbooleanfalseShow terminal cursor

Retry

SettingTypeDefaultDescription
retry.enabledbooleantrueAuto-retry on transient errors
retry.maxRetriesnumber3Max retry attempts
retry.baseDelayMsnumber2000Base delay for exponential backoff
retry.maxDelayMsnumber60000Max server-requested delay before failing

Shell

SettingTypeDefaultDescription
shellPathstringCustom shell path
shellCommandPrefixstringPrefix for every bash command (e.g., "shopt -s expand_aliases")
npmCommandstring[]Custom npm command (e.g., ["mise", "exec", "node@20", "--", "npm"])

Terminal & Images

SettingTypeDefaultDescription
terminal.showImagesbooleantrueShow images in terminal
images.autoResizebooleantrueResize images to 2000x2000 max
images.blockImagesbooleanfalseBlock all images from being sent to LLM

Message Delivery

SettingTypeDefaultDescription
steeringModestring"one-at-a-time"How steering messages are sent: "all" or "one-at-a-time"
followUpModestring"one-at-a-time"How follow-up messages are sent

Branch Summary

SettingTypeDefaultDescription
branchSummary.reserveTokensnumber16384Tokens reserved for branch summarization
branchSummary.skipPromptbooleanfalseSkip “Summarize branch?” prompt on tree navigation

Example

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "editorPaddingX": 2
}

Project Overrides

Project settings (~/.soma/agent/settings.json locally or .pi/settings.json) override global settings. Nested objects are merged — you only need to specify what changes:

// Global: compaction enabled with 16K reserve
// Project override: reduce reserve for small-context models
{
  "compaction": { "reserveTokens": 8192 }
}
// Result: compaction still enabled, reserve now 8192