Docs
Surfaces

Codex

Run OXYGEN from OpenAI Codex — the CLI in your terminal, plus the hosted MCP connector on the core toolset profile.

The oxygen CLI is the primary path here: full command surface, agent skills, and --json envelopes. The hosted MCP connector is optional; connect it on the core profile, OXYGEN's default.

What works here

CapabilityCodex
oxygen CLI in the terminalYes — the primary surface
Agent skills (--agents codex)Yes — installed into ~/.codex/skills
Hosted MCP connector (OAuth)Yes — use ?toolset=core
ui:// widgetsNo — the connector detects Codex and strips the inline widget block automatically

Setup — CLI

npm install -g @oxygen-agent/cli
oxygen login
oxygen skills install --agents codex --json

Requires Node.js >=22.22.0 and npm >=10.9.0. oxygen login opens a browser and stores credentials for the active profile. oxygen skills install writes the OXYGEN skills into ~/.codex/skills (one per OXYGEN feature, such as tables, enrichment, sourcing and the sequencer, plus onboarding) and installs every skill unless you pass --skill <name>.

oxygen login also works when Codex runs it for you: approve the sign-in in your browser. Where nobody can approve a sign-in, such as CI, create a token from a terminal that is already signed in, then store it where the CLI runs:

oxygen api-keys create --name "codex" --json
oxygen auth use-token --token <token> --json

Setup — hosted MCP (optional)

Add this URL to Codex's MCP configuration:

https://joinoxygenagents.com/mcp?toolset=core

The core profile is OXYGEN's default, so a bare URL selects it too. It advertises a bounded golden-path set plus the oxygen_capabilities_* tools (search, schema, and the oxygen_capabilities_read / oxygen_capabilities_call runners) instead of the full registry. A capability search first identifies the owning primitive and its boundary, then recommends the gateway tools; every hidden tool stays callable by exact name through those runners. Complete the OAuth sign-in when it opens. The MCP tool reference lists every tool and the pack that advertises it.

Codex has its own tool search as well. Since Codex CLI 0.142.2, it loads MCP tools through tool search by default when the model and provider support it, according to OpenAI's changelog.

Verify your setup

These are read-only and spend no credits:

oxygen status --json
oxygen whoami --json
oxygen capabilities search "build a hosted workflow for new signups" --json
oxygen commands get "workflows schema" --json
  • oxygen status — data.compatible: true means your CLI meets the server's enforced minimum. The envelope also carries client_version, server_version, minimum_cli_version, api_url, and a skew of in_sync, client_ahead, or client_behind.
  • oxygen whoami — data.user.email, data.organization.name, and an onboarding block of factual markers such as connected and activated; load workspace context before paid work.
  • oxygen capabilities search returns one bounded ownership card and recommended gateways. oxygen commands get hydrates only the selected command's arguments, flags, and safety markers. The full oxygen commands --json manifest is an opt-in diagnostic.
  • If you connected MCP, 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 and 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 the web_url in each envelope or the web app.
  • The core profile (?toolset=core, or a bare URL) advertises a bounded set of tools, not the full registry. Find any other tool with oxygen_capabilities_search and run it by exact name through oxygen_capabilities_read or oxygen_capabilities_call.
  • Do not paste large CSV/JSON files into MCP prompts — import them with oxygen tables import <table> --file <path> --background.

On this page