The traps
Most of these take five minutes to fix.
omp doesn’t ask before risky actions the way Claude Code does. It
runs tool calls, shell included, without asking. Set
tools.approvalMode: write first
(setup, step 4).
A project-level enabledModels or
disabledProviders becomes that project’s entire list, so
allowing one model in a repo blocks the rest. The settings docs call this
“the most common surprise”. Write the full array.
Unknown models and broken fallback chains only show up as startup warnings. Miss them and the entry is skipped, so work often lands on the expensive default. After each config edit, restart and read the first ten lines.
omp supports logging into your Claude, Copilot or Cursor plan. Whether the plan allows third-party harness traffic is up to the provider, and terms change. If the account matters, read its usage policy and keep an API-key fallback in the chain.
If the small model can’t finish subagent work, the frontier model
redoes it and you pay twice. Step down one model at a time and check output
for a day. With advisor, every turn is billed twice.
Five releases shipped in the five days before I wrote this (v17.0.5 to
v17.0.9). For CI or scripted omp -p jobs, pin with
mise use -g github:can1357/oh-my-pi and read release notes for
config changes.
A local model declares its own contextWindow in
models.yml. Get it wrong, or send long-context work to a 32k
model, and you get strange truncated output with no clear error. Declare
accurate limits and keep slow and plan on models
that can hold the repo.