Config Codex CLI
Step-by-step agent workflow to configure the OpenAI Codex CLI on any machine (Linux, macOS, Windows) to use OmniRoute as an OpenAI-compatible backend. Detects OS and shell, writes config.toml and 7 named profiles, sets environment variables, and verifies the setup.
- Skill ID
- diegosouzapw/omniroute/config-codex-cli
- Publisher
- diegosouzapw
- Repository
- omniroute
- Installs
- 0
- Files
- 1
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
diegosouzapw/omniroute/config-codex-cliInstalls these files- SKILL.md
What this skill tells the agent
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
Overview
Step-by-step agent workflow to configure the OpenAI Codex CLI on any machine (Linux, macOS, Windows) to use OmniRoute as an OpenAI-compatible backend. Detects OS and shell, writes config.toml and 7 named profiles, sets environment variables, and verifies the setup.
Quick install
npm install -g omniroute # or: npx omniroute
omniroute --versionSubcommands
_No CLI subcommands mapped for this family yet._
<!-- skill:custom-start -->
Long-running Codex tasks (#7287)
Two OmniRoute defaults silently break multi-hour Codex sessions. Document them whenever configuring Codex for overnight / multi-hour work. Full guide: docs/guides/CODEX-CLI-CONFIGURATION.md → Long-running tasks.
Session affinity (default off)
- Setting:
sessionAffinityTtlMs(ms; UI shows Affinity TTL (seconds) under Dashboard → Settings → Routing → Session affinity). Legacy alias:codexSessionAffinityTtlMs. - Default
0= disabled. Each turn can land on a different account and break prompt-cache / session continuity. - Codex session keys (
x-codex-session-id,x-session-id,x-omniroute-session, bodyprompt_cache_key/session_id) are only used for pinning when TTL > 0. - Max:
86400seconds /86400000ms (24h). Set TTL above the expected task length (e.g.43200s for ~12h).
Stream idle timeout (default 10 minutes)
- Env:
STREAM_IDLE_TIMEOUT_MS(default600000). Also considerFETCH_BODY_TIMEOUT_MS(same baseline;0disables). - Synthetic SSE heartbeats do not reset the idle clock — only real upstream chunks do.
- A quiet reasoning turn past the idle window is force-closed (
stream_idle_timeout/StreamIdleTimeoutError). Grep logs forIdle timeout: no data from.
Recommended multi-hour recipe
- Dashboard → Settings → Routing → Session affinity → Affinity TTL =
43200(12h) or86400(24h max). - OmniRoute environment:
STREAM_IDLE_TIMEOUT_MS=0
FETCH_BODY_TIMEOUT_MS=0- Restart OmniRoute. Leave Codex
config.tomlas usual (wire_api = "responses", correctbase_url).
Defaults decision
Do not flip ship defaults in code for this skill: sessionAffinityTtlMs stays 0 and STREAM_IDLE_TIMEOUT_MS stays 600000. Long-running operators must opt in. See Discussion #5718 and issue #7287. <!-- skill:custom-end -->
More from diegosouzapw
Use this skill in a project
Open any RiverX project, search the Skills panel for diegosouzapw/omniroute/config-codex-cli, and install it in one click.
