Codex
Run Oxygen from OpenAI Codex — the CLI in your terminal, plus the hosted MCP connector on the core toolset profile.
Codex is a terminal agent, so its primary path into Oxygen is the oxygen CLI: full command surface, agent skills, and --json envelopes it can parse. You can also connect the hosted MCP server; because Codex has no tool search, use the core toolset profile so the tool list stays inside its context budget. Widgets do not render in a terminal.
What works here
| Capability | Codex |
|---|---|
oxygen CLI in the terminal | Yes — the primary surface |
Agent skills (--agents codex) | Yes |
| Hosted MCP connector (OAuth) | Yes — use ?toolset=core |
ui:// widgets | No — terminal clients do not render widgets; the connector suppresses the widget block for them automatically |
Setup — CLI (recommended)
npm install -g @oxygen-agent/cli
oxygen login
oxygen skills install --agents codex --skill '*' --jsonoxygen login opens a browser and stores credentials for the active profile. oxygen skills install installs the Oxygen workflow skills into ~/.codex/skills (context first, table first, dry run before live, inspect runs after). Requires Node.js >=22.22.0 and npm >=10.9.0.
For headless environments, use a token instead of the browser login:
oxygen api-keys create --name "codex" --json
oxygen auth use-token --token <token> --jsonSetup — hosted MCP (optional)
Add the hosted server to Codex's MCP configuration pointing at the core profile:
https://oxygen-agent.com/mcp?toolset=coreThe core profile advertises a bounded golden-path set plus the oxygen_capabilities_search / oxygen_capabilities_schema discovery pair, instead of the full registry. A capability search first identifies the owning OXYGEN primitive and its boundary, then recommends the gateway tools; every hidden tool stays callable by exact name. Complete the OAuth sign-in when it opens.
Verify your setup
Run these read-only checks in the terminal (none spend credits):
oxygen status --json
oxygen whoami --json
oxygen capabilities search "build a hosted workflow for new signups" --json
oxygen commands get "workflows schema" --jsonGood output:
oxygen statusreturnsdata.compatible: true(your CLI meets the server's enforced minimum), alongsideclient_version,server_version,minimum_cli_version, and askewofin_sync,client_ahead, orclient_behind.oxygen whoamireturnsdata.user.emailanddata.organization.name, plus anonboardingblock; load workspace context first ifonboarding.completeisfalse.oxygen capabilities searchreturns one bounded ownership card and recommended gateways.oxygen commands gethydrates only the selected command's flags, arguments, and safety markers. The fulloxygen commands --jsonmanifest is an opt-in diagnostic.
If you connected the MCP server, ask Codex to call oxygen_whoami and oxygen_capabilities_search with a query like enroll leads in a sequence, then hydrate one result with oxygen_capabilities_schema. Provider/enrichment discovery is separate: bounded oxygen_tools_search, then exact oxygen_tools_get.
Cost and approval posture
Dry-run and preview calls never spend credits or write externally; paid provider calls, AI/tool column runs, enrichment, and external writes execute only after you pass --approved with a --max-credits ceiling (or approve the equivalent scope through MCP). See Approvals and Spend caps.
Known limitations
- No
ui://widget rendering — inspect results via theweb_urlin each envelope or the web app. - Connect the MCP server with
?toolset=core; the full tool list will overwhelm a client without tool search. - Large CSV/JSON files should be imported with the CLI (
oxygen tables import ... --background), not pasted into an MCP prompt.