Skip to content

OMP

Oh My Pi (OMP) should use Codex Pooler through a custom provider in ~/.omp/agent/models.yml. Point that provider at the narrow OpenAI-compatible /v1 surface, keep the Pool API key in the environment, and choose openai-responses so OMP sends agent turns through the Responses route.

Use the current npm package through Bun:

Terminal window
bun install -g @oh-my-pi/pi-coding-agent

For a deployed instance, add:

providers:
codex-pooler:
baseUrl: https://codex-pooler.example.com/v1
api: openai-responses
apiKey: CODEX_POOLER_API_KEY
authHeader: true
models:
- id: gpt-5.5
name: GPT-5.5 via Codex Pooler
reasoning: true
thinking:
mode: effort
efforts:
- xhigh
defaultLevel: xhigh
effortMap:
xhigh: xhigh
input:
- text
- image
compat:
streamIdleTimeoutMs: 300000
contextWindow: 272000
maxTokens: 128000

For local setup, change baseUrl to http://localhost:4000/v1.

apiKey: CODEX_POOLER_API_KEY makes OMP resolve that environment variable at runtime. authHeader: true makes OMP send the Pool API key as Authorization: Bearer .... Define only model ids your assigned Pool can serve.

The thinking block exposes the xhigh effort level for the Codex Pooler model and makes the role defaults below resolve cleanly.

OMP accepts contextWindow and maxTokens in models.yml; it does not accept contextTokens. Its Codex gpt-5.5 catalog uses a 272k context window and 128k output budget. compaction.reserveTokens: 128000 makes OMP compact before a prompt plus a long completion can exceed that 272k window.

compat.streamIdleTimeoutMs: 300000 keeps long OpenAI Responses reasoning turns from being aborted by OMP’s semantic-progress idle watchdog while Codex Pooler and the upstream account are still working. Existing OMP sessions need to be restarted or resumed after this config change. As an environment-only override, set PI_OPENAI_STREAM_IDLE_TIMEOUT_MS=300000 before launching omp.

If you want plain omp, --smol, --slow, --plan, task, and vision paths to start on Codex Pooler, add the defaults to ~/.omp/agent/config.yml:

startup:
setupWizard: false
defaultThinkingLevel: xhigh
enabledModels:
- codex-pooler/gpt-5.5
modelProviderOrder:
- codex-pooler
modelRoles:
default: codex-pooler/gpt-5.5:xhigh
smol: codex-pooler/gpt-5.5:xhigh
slow: codex-pooler/gpt-5.5:xhigh
plan: codex-pooler/gpt-5.5:xhigh
task: codex-pooler/gpt-5.5:xhigh
vision: codex-pooler/gpt-5.5:xhigh
compaction:
reserveTokens: 128000

startup.setupWizard: false keeps OMP from opening the initial setup flow after the provider and roles are already configured.

Run a one-shot prompt from the repository you want OMP to inspect:

Terminal window
export CODEX_POOLER_API_KEY=<pool-api-key>
omp --model codex-pooler/gpt-5.5:xhigh \
--no-session \
--tools bash \
-p 'Reply with exactly: omp ok'

--no-session keeps the check ephemeral. For normal interactive use, omit that flag if you want OMP to reuse session state.

OMP is a Pi fork, but it is not configured from Pi’s files. Pi uses the pi binary and ~/.pi/agent/models.json; OMP uses the omp binary, ~/.omp/agent/models.yml, and modelRoles in ~/.omp/agent/config.yml.

OMP model requests use Codex Pooler’s narrow OpenAI-compatible /v1 support for selected SDK routes. Codex Pooler doesn’t provide full OpenAI API parity.

OMP ships MCP-capable tooling, but Codex Pooler model use does not require MCP. If you need operator metadata from /mcp, authenticate that endpoint with an operator-owned MCP token, not the Pool API key used for /v1.