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.
Install
Section titled “Install”Use the current npm package through Bun:
bun install -g @oh-my-pi/pi-coding-agentProvider shape
Section titled “Provider shape”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: 128000For 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.
Default model roles
Section titled “Default model roles”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: falsedefaultThinkingLevel: xhighenabledModels: - codex-pooler/gpt-5.5modelProviderOrder: - codex-poolermodelRoles: 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:xhighcompaction: reserveTokens: 128000startup.setupWizard: false keeps OMP from opening the initial setup flow after the provider and roles are already configured.
Connection Check
Section titled “Connection Check”Run a one-shot prompt from the repository you want OMP to inspect:
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.
Pi relationship
Section titled “Pi relationship”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.
MCP boundary
Section titled “MCP boundary”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.