Where it lives

Persistent settings sit in ~/.omp/agent/config.yml (override the parent directory with PI_CODING_AGENT_DIR or rename the config root with PI_CONFIG_DIR). The file is a plain YAML tree; missing keys fall through to built-in defaults.

Edit it three ways:

  • /settings inside a session — menu-driven, validates as you save.

  • omp config <action> from the shell — scripted edits, see CLI reference.

  • Your text editor — re-read on next launch; malformed YAML makes omp log a warning and ignore the whole file, so validate after editing.

omp config list                            # the full tree
omp config get modelRoles.default          # one key
omp config set theme.dark catppuccin-macchiato
omp config reset theme.dark                # back to schema default
omp config path                            # print the agent config directory

Precedence

From highest priority to lowest:

  1. CLI flag (--slow, --no-pty, --api-key, …)

  2. Environment variable (PI_SLOW_MODEL, ANTHROPIC_API_KEY, …)

  3. ~/.omp/agent/config.yml

  4. Built-in default

OAuth credentials saved by /login live in agent.db alongside config.yml and follow the same lookup order: token-in-db wins over env vars for the same provider.

Top-level keys

KeyWhat it controls
themeTerminal palette. theme.dark / theme.light name a built-in or user palette.
modelRolesRole → model map (default, smol, slow, plan, commit). See Model roles.
steeringModeHow queued steering messages drain: one-at-a-time (default) or all.
followUpModeHow queued follow-ups drain after a turn yields: one-at-a-time (default) or all.
interruptModeimmediate (default) cuts an in-flight tool call short for steering; wait defers until it returns.
tools.discoveryModeWhether on-disk tools auto-register or require an explicit allow-list.
debug.enabledSurfaces the debug tool and DAP-backed flows. Off by default.
extensionsExplicit extension paths picked up beyond auto-discovery.
skillsPer-skill enable/disable map.
images.autoResizeAuto-shrink attached images before send. On by default.
searxngSelf-hosted web-search endpoint: endpoint, token, basicUsername, basicPassword.

Listed keys are the ones most users touch; omp config list prints everything the schema knows about, including provider-specific subtrees and TUI internals.

Keybinding remaps don’t live here — they’re stored separately in ~/.omp/agent/keybindings.yaml (a legacy keybindings.json is migrated automatically). See Keybindings.

Common knobs

Pick default models for each role

The role names are stable; assign concrete model ids per the active provider catalog. omp --list-models dumps what each role could resolve to right now.

# ~/.omp/agent
```/config.yml
modelRoles:
  default: anthropic/claude-sonnet-4-5
  smol:    anthropic/claude-haiku-4-5
  slow:    anthropic/claude-opus-4-6:high
  plan:    openai/gpt-5.3-codex:high
  commit:  anthropic/claude-haiku-4-5

The commit role drives the /commit pipeline; bump it to a stronger model when commit messages drift, or down to a cheaper one for noisier repos.

Tune the message queue

What happens when you type while the agent is working: see Using omp for the worked timeline.

steeringMode: one-at-a-time # or: all
followUpMode: one-at-a-time # or: all
interruptMode: immediate # or: wait

Turn on the debug tool

DAP integration and the debug tool surface together. Off by default so the tool palette stays focused.

debug:
  enabled: true

Pick a theme

theme:
  dark: catppuccin-macchiato
  light: solarized-light

Editing safely

A malformed config.yml doesn’t block startup — omp logs a warning and falls back to built-in defaults, silently ignoring the whole file. Always validate with omp config list after a manual edit.\n

Ask Docs

AI assistant to help answer questions about the documentation. Answers are read-only and cite docs/source.

Hi! How can I help you with the documentation today? Answers are read-only and cite docs/source.

Ctrl+Enter to send