OXYGENOxygen/ Docs
Execution

Modes

Every paid or external action runs in `smoke_test`, `dry_run`, or `live`.

A mode is the execution semantic for a workflow run, column run, or provider tool call. Three values.

The three modes

ModeValidates inputsReads real dataCalls paid providersWrites externally
smoke_testYesNoNoNo
dry_runYesYesNoNo
liveYesYesYesYes

Only live can consume credits or touch the outside world. Live work that spends credits or writes externally requires explicit scope and a credit ceiling.

When to use each

ModeUse for
smoke_testAuthoring a workflow or template; validates shape without touching anything
dry_runConfirming what would happen against real rows before paying for it
liveReal execution

Setting mode

CLI flag on any runnable command:

oxygen workflows call <id> --input-json '{...}' --mode dry_run --json
oxygen workflows call <id> --input-json '{...}' --mode live --json
oxygen tools run <tool-id> --input-json '{...}' --mode dry_run --json
oxygen tools run <tool-id> --input-json '{...}' --mode live --json

MCP exposes both explicit names:

oxygen_tools_run_dry
oxygen_tools_run_live

Mode + approval

ModeApproval required
smoke_testNo
dry_runNo
live (touches paid providers or external systems)Yes
live (read-only)No

A live run that doesn't consume credits and doesn't write externally — e.g. a workflow that only reads from tenant tables — bypasses the approval gate.

Spend caps on live

Live table, enrichment, company enrichment, and workflow-template runs against paid providers require a credit ceiling such as --max-credits 50. If the run reaches the ceiling, it pauses or stops before exceeding the approved scope. See Spend caps.

On this page