OXYGENOxygen/ Docs
Surfaces

CLI command reference

Every oxygen command, generated from the CLI's own command tree.

Every command the oxygen CLI registers — 704 commands across 85 groups — generated from the CLI's own self-index (oxygen commands --json). Run oxygen commands get "<command>" --json for one command's full description, arguments, and flags.

Markers in Notes:

MarkerMeaning
paidSome invocation mode spends credits or performs an approval-gated external write.
writesMutates workspace, provider, or account state.
staffOXYGEN staff only; a customer identity is refused.
deprecatedRetired, removed, or superseded — kept listed so the replacement is discoverable.
aliasA second spelling of another command.
hiddenNot shown in oxygen --help.

A blank Notes cell means the command is read-only and free.

action-column

CommandWhat it doesNotes
oxygen action-column add-providerAdd a catalog-backed provider action picker column to a workspace table.writes

admin

CommandWhat it doesNotes
oxygen admin costsShow provider costs (COGS) per workspace. Staff only.staff
oxygen admin directory delistRemove an organization's listing from the public directory (kill switch).writes staff
oxygen admin directory enableInvite an organization to the directory, optionally prefilling its profile.writes staff
oxygen admin directory listList every agency directory listing across all organizations.staff
oxygen admin kpisShow company acquisition with self-reported signup-channel attribution, signup-to-CLI/MCP activation, matured seven-day trial conversion, positive-paid MRR/ARR, and paid churn separated from trial…staff
oxygen admin spendGlobal managed-provider spend limiter: burn, ceilings, breakers. Staff only.staff
oxygen admin spend haltForce a breaker OPEN — the platform kill switch for managed provider spend.staff
oxygen admin spend resumeClose a breaker and clear its backoff, resuming managed provider spend.writes staff
oxygen admin spend set-limitSet a ceiling for one scope + window. action=warn meters only; block arms it.writes staff

agent

CommandWhat it doesNotes
oxygen agent approval-decideApprove or reject one pending Workspace or custom Agent tool call, then resume its durable run.
oxygen agent cancelRequest cancellation of an active Workspace or custom Agent run.writes
oxygen agent createCreate a custom Agent and publish its first immutable version. This internal configuration write starts no chat/run and spends no credits.writes
oxygen agent customList the org's user-defined custom agents (distinct from agent list, which shows the built-in roster).
oxygen agent deleteArchive a custom agent (soft delete): its triggers stop firing and it leaves the roster; versions/runs are preserved.writes
oxygen agent disableDisable a workspace or specialist agent so it stops new runs on the next worker tick.writes
oxygen agent enableEnable a workspace or specialist agent so it resumes its governed runs.writes
oxygen agent file-createStore a tenant-owned text file for Agent context and sandbox input.writes
oxygen agent filesList tenant-owned Agent context files.
oxygen agent getShow one agent — the Workspace Agent, a specialist, or a custom agent — with its active version and recent runs.
oxygen agent listList the Workspace Agent and built-in specialists with state and recent run history.
oxygen agent runStart a durable chat/run for the Workspace Agent or a custom Agent on the Fly worker.paid writes
oxygen agent run-getInspect one Workspace or custom Agent run and its append-only event ledger.writes
oxygen agent runsList recent runs across all agents (or one via <slug>), newest first.
oxygen agent setPublish an immutable version (reconfigure) for a runtime agent: the Workspace Agent or a custom agent.writes
oxygen agent trigger-createCreate a cron, internal event, or signed-webhook trigger for the Workspace Agent.paid
oxygen agent trigger-setActivate, pause, or archive one Workspace Agent trigger.
oxygen agent triggersList Workspace Agent cron, internal event, and webhook triggers.

api-keys

CommandWhat it doesNotes
oxygen api-keys createCreate a CLI API key. The token is shown once.writes
oxygen api-keys listList active CLI API keys for the current user and organization.
oxygen api-keys revokeRevoke a CLI API key for the current user and organization.writes

approvals

CommandWhat it doesNotes
oxygen approvals cancelWithdraw a pending request you filed (or, as an admin, clear a stale one).writes
oxygen approvals client grantRestrict a member to the client role.writes
oxygen approvals client listEvery member of this workspace and what they may do — the workspace role plus the Oxygen client overlay — followed by anyone invited who has not joined yet, and what they will land as.
oxygen approvals client revokeClear the client role and restore full workspace access. Works on a pending invitation too, clearing what that address would land as.writes
oxygen approvals decideAnswer a pending request.writes
oxygen approvals gate listWhich gates this workspace requires.
oxygen approvals gate setRequire (or stop requiring) an approval before the live action.writes
oxygen approvals inboxWhat is waiting on YOU: pending approvals assigned to you plus open threads that name you, each with the command that answers it. This is the surface a client logs in to.
oxygen approvals listApproval requests in this workspace, newest first. Use --mine for the ones assigned to you, or approvals inbox for the daily view.
oxygen approvals requestAsk a named second party to decide.writes
oxygen approvals showOne approval request by its own id: what is being asked, on what, by whom, who must decide, and whether it can still be decided at all.

auth

CommandWhat it doesNotes
oxygen auth doctorDiagnose the active Oxygen CLI credentials without printing token material.
oxygen auth use-tokenStore a CLI API token non-interactively.writes

billing

CommandWhat it doesNotes
oxygen billing allowanceShow this billing cycle's credit pool as one breakdown: fixed spend, flexible spend, credits committed to the next renewal, and what is free to spend — the numbers behind the bar on the…
oxygen billing auditSummarize where managed credits were granted, reserved, captured, released, or spent.
oxygen billing balanceShow the current plan, subscription entitlement, and managed credit balance: available and reserved credits, FIXED credits committed to recurring per-resource charges, and the FLEXIBLE…
oxygen billing cancelSchedule the plan subscription to cancel at period end. During a trial the card is never charged; undo any time before then with billing resume.writes
oxygen billing changePreview an upgrade or downgrade and return a Stripe confirmation link. Nothing changes until confirmed in Stripe.
oxygen billing commitmentsList the fixed monthly credit commitments blocked at your subscription renewal — per connected sending mailbox, OXYGEN-sold mailbox, warm-up, deliverability, and connected LinkedIn account — with…
oxygen billing grantGrant managed credits to the current organization (staff only).writes staff
oxygen billing resumeRemove a scheduled cancellation so the subscription renews (or the trial converts) normally.writes
oxygen billing set-planCreate or update an off-Stripe custom plan for an organization (staff only).writes staff
oxygen billing topupBuy a custom amount of on-demand credits at $1.25 per 1,000. Run without an amount to inspect the allowed range; checkout happens in Stripe and purchased credits never expire.
oxygen billing usageShow credit ledger events (each tagged with its FIXED/FLEXIBLE spend_class), automation action usage, or connected-account seat pricing (provider_seats — LinkedIn and WhatsApp).

blueprints

CommandWhat it doesNotes
oxygen blueprints applyApply a blueprint: 0 credits and no provider calls or external writes, but creates workspace tables, columns, prompts, and a disabled workflow.writes
oxygen blueprints archiveArchive a saved blueprint (seed blueprints cannot be archived).writes
oxygen blueprints describeDescribe one blueprint (seed or saved) by slug.
oxygen blueprints exportBuild a portable blueprint JSON from an existing workflow.
oxygen blueprints listList Oxygen blueprints visible in this workspace (seeds + saved).
oxygen blueprints marketplaceBrowse the public Oxygen blueprint marketplace.
oxygen blueprints preflightPreflight a blueprint (slug, local file, or shared URL) against this workspace.
oxygen blueprints publishList a blueprint on the public Oxygen marketplace. Auto-creates a share URL if none exists.paid writes
oxygen blueprints savePersist a blueprint envelope into this workspace's gallery.writes
oxygen blueprints shareCreate a public share URL for a saved blueprint (oxygen-agent.com/b/<code>).writes
oxygen blueprints sharesList existing share URLs for this workspace.
oxygen blueprints tagReplace a saved blueprint's workspace tags (whole set; --tags "" clears). Works on already-saved blueprints — no re-export needed. See oxygen tags list for the vocabulary.writes
oxygen blueprints unpublishRemove a blueprint from the public marketplace. The share URL stays valid for direct visitors.writes
oxygen blueprints unshareRevoke a public share URL by short code.writes

budget

CommandWhat it doesNotes
oxygen budget deleteDelete a standing budget policy by id.writes
oxygen budget listList the organization's standing budget policies.
oxygen budget setSet, raise, or lower a standing credit cap (idempotent per scope+window).paid writes

callables

CommandWhat it doesNotes
oxygen callables bindAdd a callable-function column to a source table with explicit input and callback mappings.paid writes
oxygen callables describeDescribe a callable's typed input/output contract and pinned backing columns.
oxygen callables disableDisable new invocations without changing existing tables or in-flight runs.writes
oxygen callables enableEnable a callable table.writes
oxygen callables listList published callable tables and their current credit posture.
oxygen callables publishPublish an existing table as a versioned callable function.paid writes

capabilities

CommandWhat it doesNotes
oxygen capabilities getHydrate one exact capability card by id.
oxygen capabilities searchFind the owning capability, boundary, gateways, and next hydration step.

cells

CommandWhat it doesNotes
oxygen cells historyShow cell change history.writes
oxygen cells inspectInspect one cell's value, row context, and recent history.

columns

CommandWhat it doesNotes
oxygen columns addAdd a nullable column to a workspace table. Writes the definition only — this never runs the column and never spends credits; use columns run for that, with --dry-run first to see the cost.writes
oxygen columns archiveArchive a workspace column without dropping physical data. Hides it indefinitely with no purge timer; for cleanup with a restorable deadline use columns delete.writes
oxygen columns deleteDelete workspace columns: archives now, frees the key for reuse, and schedules the physical purge (default 14 days; restorable via columns restore until then). --now purges immediately and…writes
oxygen columns depsShow the column dependency graph: which columns feed which (formulas, input mappings, run conditions, waterfall targets), transitive up/downstream, and cycles. Read-only.
oxygen columns materializeCopy JSON paths from a result column into existing or new target columns.writes
oxygen columns renameRename a workspace column key and optionally label.writes
oxygen columns reorderMove a workspace column to a new position, by absolute index or relative to another column.writes
oxygen columns rerunRe-run a single AI column cell, optionally threading a prior message review's feedback into the prompt.paid writes
oxygen columns restoreRestore an archived or delete-scheduled column: cancels the purge timer and reclaims its key.writes
oxygen columns retypeConvert a manual text column to a stronger data type, migrating stored values.writes
oxygen columns runRun an executable AI, tool, formula, enrichment, bind, lookup, or local custom HTTP column for one row or a bounded batch.paid writes
oxygen columns updateUpdate workspace column display metadata.writes

commands

CommandWhat it doesNotes
oxygen commandsDiscover CLI commands. With no subcommand, print the backwards-compatible full manifest.
oxygen commands getHydrate one exact CLI command with its arguments, flags, and safety markers.
oxygen commands searchFind a bounded set of CLI commands from a natural-language outcome.

comments

CommandWhat it doesNotes
oxygen comments addComment on a workspace object.writes
oxygen comments deleteRetract one of your own comments. AUTHOR ONLY, idempotent. The row stays so the thread remains a complete audit trail; the text is redacted on every read path.writes
oxygen comments editRewrite one of your own comments. AUTHOR ONLY. The edit stamps edited_at — a thread that decided a launch is evidence, and evidence that changes without a trace is not evidence.writes
oxygen comments listEvery comment thread on one object, newest first, with its comments inline. Defaults to open threads only.
oxygen comments resolveMark a thread settled, or reopen it with --reopen. Idempotent both ways: re-resolving keeps the original resolver and timestamp. This is conversation state only — it never unblocks an approval gate.writes
oxygen comments showOne thread by its own id, with every comment.

companies

CommandWhat it doesNotes
oxygen companies enrich previewInspect missing company fields, provider routing, and credit estimates without provider calls.
oxygen companies enrich runQueue a live company enrichment waterfall after explicit approval, or return a dry-run plan.paid writes
oxygen companies search planCompile a company-search prompt into ordered provider routes without provider calls.
oxygen companies search runReturn a dry-run request or queue a live company-search ingestion run.paid writes

connections

CommandWhat it doesNotes
oxygen connections importStart (or re-arm) a connections import.writes
oxygen connections statusShow connections-import progress (per-sender drip status, connections ingested, last error) plus a preview of the connections table and a deep-link to open it.

context

CommandWhat it doesNotes
oxygen context assets archiveArchive a context asset.writes
oxygen context assets getRead one context asset.
oxygen context assets listList workspace context assets.
oxygen context assets searchFull-text 'second brain' search across context assets, ranked by relevance.
oxygen context assets set-defaultPin a context asset as the canonical default for its type. The canonical brand/voice/positioning docs are auto-applied to AI copy generation.writes
oxygen context assets upsertCreate or update a context asset.writes
oxygen context profile getRead the current workspace company profile.
oxygen context profile updateMerge one or more profile sections into workspace GTM memory.writes
oxygen context resolveResolve task-scoped workspace GTM context with readiness and revision provenance.writes

copilot

CommandWhat it doesNotes
oxygen copilot approveApprove (or, with --reject, reject) an action a Workspace Copilot session is waiting on; approving re-queues the paused turn.paid writes
oxygen copilot attachAttach a file to a Workspace Copilot session without sending a message yet.writes
oxygen copilot attachmentsList the files attached to a Workspace Copilot session, sent and unsent.
oxygen copilot cancelEnd a Workspace Copilot session for good, stopping any in-flight turn. The session cannot take new messages afterwards — to stop only the current turn, use copilot interrupt.writes
oxygen copilot getShow one Workspace Copilot session: its state, turns, and event log. Use --after-seq to page through the event stream.
oxygen copilot interruptStop the turn a Workspace Copilot session is currently working on, leaving the session open for your next message.writes
oxygen copilot listList your Workspace Copilot sessions with their status, budget, and credits spent.
oxygen copilot sendSend a message to a Workspace Copilot session and stream the reply to stderr.paid writes
oxygen copilot startStart a Workspace Copilot session. --budget-credits is your explicit approval of the session's inference spend cap; inference bills at 5x the actual model cost within it.paid writes

crm

CommandWhat it doesNotes
oxygen crm activity logLog a timeline activity on a CRM record. Defaults to dry-run.writes
oxygen crm activity noteLog a free-text note on a CRM record. Defaults to dry-run.writes
oxygen crm activity timelineShow a CRM record's activity timeline, newest first. Address the record by row id OR by any of the object's identities — a company domain, a person's email or LinkedIn URL.
oxygen crm assertCreate or update one CRM record by object identity.
oxygen crm automation auditShow recent CRM automation rule changes, newest first.
oxygen crm automation rulesList the standing CRM automation templates and their armed state.
oxygen crm automation setArm or disarm a standing CRM automation template.paid writes
oxygen crm describeDescribe one configured CRM object.
oxygen crm duplicatesList ranked duplicate-candidate record pairs for one CRM object (identity-overlap + fuzzy-label). Read-only.
oxygen crm enrichment backfillEnrich the records you ALREADY have.paid writes
oxygen crm enrichment disableDisarm one enrichment on a CRM object and leave every other choice untouched. New records stop running its columns; already-written values stay.writes
oxygen crm enrichment enableArm one enrichment on a CRM object and leave every other choice untouched.writes
oxygen crm enrichment listShow the enrichments available per CRM object: which are armed, what each costs per record, the per-record total, the per-batch credit ceiling, how much of the column allowance is spent, and how…
oxygen crm enrichment offTurn automatic enrichment off for a CRM object: revokes the standing permission and clears the WHOLE configuration — every named preset plus any columns you added to it yourself, so nothing keeps…writes
oxygen crm enrichment setReplace the armed enrichment set for a CRM object outright — any preset not listed is disarmed, while columns you added to the config yourself are kept.paid writes
oxygen crm fieldsFill the stored CRM fields (Industry, Employees, HQ, and their siblings) from enrichment data this workspace already holds.
oxygen crm getGet one CRM record aggregate with row values, identities, and relationships.
oxygen crm mergeMerge two CRM records: survivor-wins-with-loser-fill field write + relink/tombstone. Defaults to dry-run; --live requires --confirm.writes
oxygen crm objectsList configured CRM objects, or create/extend custom objects.
oxygen crm objects add-attrAdd one attribute to an existing custom CRM object, optionally as an identity. Defaults to dry-run.writes
oxygen crm objects createCreate or repair a custom CRM object. Defaults to dry-run.writes
oxygen crm objects deleteDelete a CUSTOM CRM object: removes the object and schedules its backing table for deletion (restorable for 14 days).writes
oxygen crm photosFill CRM people photos from LinkedIn data this workspace already holds — inbox conversations, connections, followers, and post engagers.
oxygen crm pipelineShow the deals pipeline grouped by stage, with per-stage counts and amount totals.
oxygen crm relationships defineDefine a relationship (and its relation column) from a custom object to any object. Defaults to dry-run.
oxygen crm relationships upsertCreate or replace a CRM relationship edge. Defaults to dry-run.writes
oxygen crm rollupRecompute the Open Deal column on companies (and the copy stamped on their people) from this workspace's deals.
oxygen crm searchSearch CRM records by identity or record label. Takes ONE query; narrow the objects with --object, not a second argument.
oxygen crm setupCreate or repair standard CRM object-backed tables. Defaults to dry-run.writes
oxygen crm signals leads-todayList people to contact today, ranked by their most recent GTM intent signal. Do-not-contact filtering is best-effort (email-only leads surface unchecked).
oxygen crm signals recordRecord one inbound GTM signal (website_visit, profile_view, post_engager, new_follower) into the CRM. Internal write — free, no approval. Idempotent on --external-event-id.writes
oxygen crm sync configureConfigure a standing bidirectional sync for one CRM object pair.paid writes
oxygen crm sync disableDisable the scheduled sync for one CRM object pair: stops the cron trigger and revokes the standing write permission.writes
oxygen crm sync enableEnable continuous (scheduled) bidirectional sync for one CRM object pair: arms the cron trigger + the standing write permission, and runs an immediate first cycle.paid writes
oxygen crm sync importImport provider records into an Oxygen CRM object as a durable workflow run. Defaults to dry-run.paid writes
oxygen crm sync linksShow provider record links (HubSpot/Attio ids) mapped to one Oxygen CRM record.
oxygen crm sync runRun one bidirectional reconciliation cycle for a configured CRM object pair as a durable workflow run. Defaults to dry-run.paid writes
oxygen crm sync statusShow a CRM sync status: pass --run-id for one workflow run, or --provider/--object for the standing sync config (cadence, watermarks, last-cycle counts).
oxygen crm tagAdd/remove workspace tags on one CRM record (Tags primitive — the same vocabulary as sequences, tables, conversations; see oxygen tags list).writes

custom-integrations

CommandWhat it doesNotes
oxygen custom-integrations applyCreate or update a custom HTTP integration manifest. Attach credentials with custom-integrations connect. Manifest schema + worked examples: https://oxygen-agent.com/docs/providers/custom-httpwrites
oxygen custom-integrations connectAttach the credential (bearer token, API key, or basic password) for an applied custom HTTP integration.writes
oxygen custom-integrations listList custom HTTP integrations for the active organization.

dashboards

CommandWhat it doesNotes
oxygen dashboards summaryShow the GTM funnel summary: touches → replies → positive → meetings → deals → won, with this-period revenue, channel split, and needs-action triage counts.

db

CommandWhat it doesNotes
oxygen db attachAttach an existing Postgres database as the current organization's tenant database.writes
oxygen db backfill-table-order-indexesConverge stable row-order indexes on existing customer tables. Staff only; the default dry-run uses 0 credits and makes no database changes.writes staff
oxygen db backfill-upsert-indexesCreate missing upsert-key secondary indexes on customer tables. Staff only; defaults to dry-run.writes staff
oxygen db cost-policyShow tenant database cost controls and reconciliation status.
oxygen db migrateApply pending tenant database migrations for the current organization.writes
oxygen db migrate-allApply pending tenant database migrations across all ready tenants (staff only).writes staff
oxygen db provisionProvision a managed Neon tenant database for the current organization. Staff can pass global --org to repair another org.writes
oxygen db queryRun one read-only SQL statement against the current tenant database.
oxygen db reconcileInspect tenant database registry drift. Staff only; defaults to dry-run.writes staff
oxygen db reconcile-cost-policyApply tenant database cost controls to the managed Neon endpoint.writes
oxygen db repair-previewPreview tenant database repair issues without mutating production state (staff only).staff
oxygen db statusShow the current organization's tenant database status. Staff can pass global --org to inspect another org.

deliverability

CommandWhat it doesNotes
oxygen deliverability placement-test getGet one directional inbox-placement test by id — status, health provider, seed inboxes, per-provider results, and score.
oxygen deliverability placement-test listList recent directional inbox-placement tests with status, health provider, billing mode, seed set, score, and credits used.
oxygen deliverability placement-test runCreate a placement test for one sending mailbox.paid writes
oxygen deliverability placement-test sendPreview or send the exact EmailGuard seed message for a provider-created test.paid writes

directory

CommandWhat it doesNotes
oxygen directory applyApply to be listed in the public agency directory (reviewed by the OXYGEN team).writes
oxygen directory getRead-only, 0 credits. Read the listing, publish state, and public/settings deep-links.
oxygen directory publishPublish at https://oxygen-agent.com/agencies. Requires a tagline, description, and at least one contact method (website, booking link, email, or LinkedIn).writes
oxygen directory unpublishRemove the listing from the public directory (keeps the draft editable).writes
oxygen directory updateUpdate listing fields. Changes to a published listing are public immediately. Only invited organizations can edit.writes

domains

CommandWhat it doesNotes
oxygen domains addBYOK CLOUDFLARE: onboard a domain registered elsewhere by creating a zone in your connected Cloudflare account. For managed domain + inbox provisioning use managed-inboxes subscribe.writes
oxygen domains adoptSTAFF LEGACY RECOVERY: attach domains that already exist in the shared Oxygen-managed Cloudflare account to their workspace.writes staff
oxygen domains archiveHide a domain from the default list — an Oxygen-side declutter flag only.writes
oxygen domains buyBYOK CLOUDFLARE ONLY.paid writes
oxygen domains checkBYOK CLOUDFLARE: check availability and pricing for up to 20 exact domains. Free — nothing is purchased.
oxygen domains dnsRun a live read-only DNS health check (SPF, DKIM, DMARC, MX) against the domain's Cloudflare zone and persist the result.
oxygen domains dns applyWrite the planned cold-email DNS records into the domain's Cloudflare zone.paid writes
oxygen domains dns planPreview the cold-email DNS records a domain should hold for its mailbox provider (SPF, per-provider DKIM, DMARC, MX, optional tracking) as a create/update/keep/conflict diff plus a plan_hash.
oxygen domains forwarding getShow the domain's current web-root forwarding destination. Read-only, 0 credits.
oxygen domains forwarding setPoint the domain's web root at a URL. WITHOUT --approved this previews current -> new and writes nothing. Free (0 credits), but it changes what every visitor to the domain sees.paid writes
oxygen domains getGet one domain's infrastructure/readiness detail: zone state, age with provenance, mailboxes, cached sending volume, and the last DNS health check.
oxygen domains listList the org's cached Cloudflare domains with cold-email metadata (age, mailboxes, warmup, sending volume, DNS health).
oxygen domains postmaster onboardRegister the domain with Google Postmaster Tools and publish the DNS verification TXT automatically via the domain's Cloudflare zone (or return the record for manual DNS); verification then…writes
oxygen domains postmaster statusShow the Google Postmaster Tools onboarding status for a domain: registration, DNS verification state, and whether reputation data is available. Read-only — 0 Oxygen credits.
oxygen domains registration-statusGet one domain registration's ledger state (the server performs a gated live poll when due — safe to call repeatedly). Pass --wait to poll until it settles.
oxygen domains registrationsList the org's domain purchase ledger: every registration attempt with status and price snapshot.
oxygen domains searchBYOK CLOUDFLARE: search Registrar for available domains with registration/renewal pricing. Free — nothing is purchased.
oxygen domains syncRefresh the domain cache from Cloudflare: zone pages, registrar metadata, RDAP age backfill, and DNS health. Partial (paginated) syncs auto-continue until complete.writes
oxygen domains tagReplace a domain's workspace tags (whole set; --tags "" clears) — e.g. pool the domains behind one campaign tag.writes
oxygen domains tracking setupProvision the open/click tracking CNAME (<track-host> CNAME <tracking target>) on the domain's Cloudflare zone.writes
oxygen domains tracking statusShow the open/click tracking status for a domain (configured host, verification status, CNAME target, whether the tracking secret is set). Reads the cache — 0 Oxygen credits.
oxygen domains unarchiveRestore an archived domain to the default list.writes

egress

CommandWhat it doesNotes
oxygen egress assignAssign sending mailboxes to inventoried egress IPs — least-loaded across the active pool, or pinned with --ip.writes
oxygen egress dedicated cancelCancel the dedicated sending-IP add-on.writes
oxygen egress dedicated requestPreview the dedicated sending-IP add-on (15,000 credits per 30-day period, $15 face value; the org's mailboxes share the one dedicated IP).paid writes
oxygen egress dedicated statusShow this org's dedicated sending-IP add-on state (status, quantity, activation, price). Read-only, 0 credits.
oxygen egress ipsList the egress IPs this org may send through (shared pool for this env + any dedicated IP). Read-only.
oxygen egress registerSTAFF: register a manually-purchased sending IP into this environment's inventory.writes staff
oxygen egress rotateRotate a mailbox's sending IP. Approval-gated: without --approve it previews and makes no change.writes
oxygen egress statusShow egress mode, this org's open mailbox->IP assignments, and IP health counts. Read-only, 0 credits.

email

CommandWhat it doesNotes
oxygen email sendSend ONE email right now. Without --approved, returns a preview naming the exact mailbox + transport. --from pins a mailbox; otherwise the pool's LRU rotation picks one.paid writes

engagement

CommandWhat it doesNotes
oxygen engagement commentComment on a LinkedIn post (or reply to a comment with --comment-id).paid writes
oxygen engagement harvestStart (or re-arm) a harvest of a post's engagers into a workspace table you can enroll into a sequence.paid writes
oxygen engagement reactReact to a LinkedIn post (or to a comment with --comment-id).paid writes
oxygen engagement statusShow an engagement harvest's progress (drip status, engagers ingested, last error) plus the workspace table it fills and a preview of harvested engagers.

enrich-column

CommandWhat it doesNotes
oxygen enrich-column previewPreflight an enrichment column without provider calls or credit usage.
oxygen enrich-column runCreate or reuse an enrichment column and queue a background run.paid writes

enrichment

CommandWhat it doesNotes
oxygen enrichment apply-default-cascadePatch an existing enrichment column to the server-side default provider cascade for its intent.writes

feedback

CommandWhat it doesNotes
oxygen feedbackSend feedback or a bug report to the OXYGEN team. This is the same immediate, zero-credit canonical Plain Thread write as support file; transcripts are never attached unless explicitly requested.

feeds

CommandWhat it doesNotes
oxygen feeds bindBind a pull feed to an existing table: freeze the provider request, then optionally arm a cadence so the table refills itself.paid writes
oxygen feeds deliveriesList the shared table delivery ledger: pull-feed sync cycles and inbound webhook deliveries land in the same place.
oxygen feeds getGet one table feed: cadence and next run, per-cycle caps, cursor counters, last cycle, and last error. Read-only.
oxygen feeds listList table feeds for the workspace, newest first. Read-only.
oxygen feeds pausePause a feed: the cron stays armed but every cycle it fires is refused, so nothing is fetched and nothing is billed until you resume. Free.writes
oxygen feeds resumeResume a feed: re-activates it AND clears an error/exhausted stop, so the next cron tick can claim it again. Re-uses the cadence and spend cap already approved at bind time. Free.writes
oxygen feeds runRun one sync cycle now through the feed's own cron workflow (one harvest path, one cursor). --mode dry_run (default) renders the exact next-cycle provider request with the cursor or watermark…paid writes
oxygen feeds unbindDelete a feed: removes its cron FIRST, then the feed row. The table and every row it already wrote are kept.writes

find

CommandWhat it doesNotes
oxygen find companyEnrich a company (domain/linkedin/headcount/industry/funding/tech/hiring/profile) via a waterfall.paid
oxygen find emailFind a person's work email via an input-aware multi-provider waterfall: a LinkedIn URL, name+domain, or first/last+domain each select the best provider profile, with an email-pattern pre-step and…paid
oxygen find linkedinResolve a person's LinkedIn URL from name + company (or email), with identity validation.paid
oxygen find phoneFind a person's mobile phone via a multi-provider waterfall.paid

followers

CommandWhat it doesNotes
oxygen followers importStart (or re-arm) a followers import.writes
oxygen followers statusShow followers-import progress (per-sender drip status, followers ingested, last error) plus a preview of the followers table and a deep-link to open it.

formulas

CommandWhat it doesNotes
oxygen formulas functionsList every formula function (name, signature, examples) and the operator grammar. The same language powers formula columns and --run-condition gates.
oxygen formulas validateValidate a formula against a table and preview its output on sample rows — free, no writes. Draft → validate → attach with oxygen columns add --kind formula.

home

CommandWhat it doesNotes
oxygen homeYour workspace standup: what happened since you last looked, what needs you, and a year of workspace activity.

inbox

CommandWhat it doesNotes
oxygen inbox analyzeRun analysis on a conversation now: status + a drafted reply (Oxygen's default model). The worker also does this automatically on inbound conversations.
oxygen inbox archiveArchive a conversation (triage it out of the inbox). --unarchive restores it. --channel linkedin/whatsapp archives a DM.writes
oxygen inbox auto-tagger getShow the auto-tagger config (enabled, tag allowlist, channels).
oxygen inbox auto-tagger setUpdate the auto-tagger. --tags replaces the whole allowlist (max 50; --tags "" clears, which pauses tagging while keeping the agent enabled).writes
oxygen inbox backfillOpt-in: pull a LinkedIn account's OLDER message history into the unibox.writes
oxygen inbox bulkBulk-apply one triage action — set-status / archive / unarchive — across up to 100 hand-picked conversations (the ids inbox list returns) in one call.
oxygen inbox drafts editEdit an open draft's body before approval. Does not send.writes
oxygen inbox drafts listList drafts awaiting review (queued + edited by default), across email + LinkedIn.
oxygen inbox drafts rejectReject an open draft so it leaves the queue. Does not send.writes
oxygen inbox getGet one conversation with its full message thread. <conversation> accepts a conversation id, Unipile chat id, or (email) Zapbox thread id.
oxygen inbox labels createCreate a custom status label.writes
oxygen inbox labels deleteArchive a custom status label (system labels and in-use labels are rejected).writes
oxygen inbox labels listList status labels.
oxygen inbox labels restoreRestore an archived custom status label under its original key.writes
oxygen inbox labels updateUpdate a status label's name, color, bucket, description, or (custom labels only) ai-settable flag.writes
oxygen inbox listList conversations newest first. --channel all merges email + LinkedIn + WhatsApp into one stream (narrow it with --channels); --channel email/linkedin/whatsapp lists a single channel.
oxygen inbox mark-all-readMark EVERY conversation matching the filters as read — the whole filtered set across email + LinkedIn + WhatsApp, not just the conversations on the page you can see.writes
oxygen inbox mark-readMark a conversation and all its messages as read.writes
oxygen inbox reply-agent getShow the reply-agent config.
oxygen inbox reply-agent setConfigure the reply agent (enable, persona/tone, targets).writes
oxygen inbox rescanRe-queue conversations for AI re-classification (status + drafted reply).writes
oxygen inbox sendReply into a conversation. --channel email replies from the conversation's own mailbox (Zapbox/native Gmail/Graph, threaded); --channel whatsapp warm-replies into an existing WhatsApp…paid writes
oxygen inbox statusSet a conversation's status (the Instantly-style tier). A manual override that locks out AI re-classification. --channel linkedin/whatsapp sets a DM's status.
oxygen inbox syncForce a backstop inbox sync from Unipile for all active sender accounts (pulls recent chats + messages into the unibox).writes
oxygen inbox tagAdd/remove workspace tags on a conversation (Tags primitive — the same vocabulary as sequences, tables, posts; see oxygen tags list).writes

integrations

CommandWhat it doesNotes
oxygen integrations actionsList actions available for a connected integration — Composio toolkits and native providers (e.g. Instantly) alike.
oxygen integrations connectConnect an integration.writes
oxygen integrations destinationsList where a connected integration can send — for Microsoft Teams, your teams and your chats, plus one team's channels with --team-id.
oxygen integrations disconnectDisconnect an integration. LinkedIn and WhatsApp remove the Unipile connected account; pass --connection-id when more than one is connected.writes
oxygen integrations events deliveriesList recent provider webhook deliveries (Composio triggers, HubSpot webhooks, etc.) and the workflow runs they kicked off.
oxygen integrations events disableDisable a provider event for a connected integration account.writes
oxygen integrations events enableEnable a provider event for a connected integration account.writes
oxygen integrations events listList raw provider event definitions and this org's enabled subscriptions. To choose a workflow trigger, use oxygen workflows events list.
oxygen integrations listList supported integrations and this org's connections.
oxygen integrations runRun an action for a connected integration — Composio toolkits and native providers alike.paid writes
oxygen integrations testRe-validate a stored integration API key against the provider and heal the connection when it passes (recovers benched or scope-degraded connections without re-pasting the key).

knowledge

CommandWhat it doesNotes
oxygen knowledge agent getShow the synthesis-agent config (enabled, cadence, per-day credit cap).
oxygen knowledge agent setConfigure the synthesis agent. Enabling lets the background worker distill new sources on the cadence; it only writes working learnings pages.paid writes
oxygen knowledge graphKnowledge graph of pages and their [[wikilink]] edges. Pass --center to render one page's local neighborhood instead of the whole graph.
oxygen knowledge indexCompact wiki index: every page's slug, one-liner, tags, link degree, plus type/status counts.
oxygen knowledge lintStructural wiki health report: orphans, dead-ends, unresolved links, missing canonicals, untagged pages, duplicate titles, oversized hubs, unfilled seed stubs, decisions missing a reversal…
oxygen knowledge lint relinkRecompute [[wikilink]] edges (and gap-fill unlinked mentions) across wiki pages.writes
oxygen knowledge log appendAppend an entry to the knowledge log.
oxygen knowledge log listList knowledge log entries, newest first.
oxygen knowledge page archiveArchive a knowledge wiki page.writes
oxygen knowledge page getRead one knowledge wiki page by slug or UUID.
oxygen knowledge page listList knowledge wiki pages.
oxygen knowledge page pinPin a knowledge wiki page as the canonical default for its type. Canonical voice/brand/positioning pages are auto-applied to AI copy generation.paid writes
oxygen knowledge page revisionRead one full revision snapshot of a knowledge wiki page.
oxygen knowledge page revisionsList the revision history of a knowledge wiki page, newest first.
oxygen knowledge page upsertCreate or update a knowledge wiki page.paid writes
oxygen knowledge profileCompany profile and ICP memory.
oxygen knowledge profile updateMerge one or more profile sections into workspace GTM memory.writes
oxygen knowledge proposalsDraft change proposals against wiki pages, awaiting human review.
oxygen knowledge proposals approveApprove a knowledge proposal and apply it to the target page.writes
oxygen knowledge proposals rejectReject a knowledge proposal without changing the target page.writes
oxygen knowledge purgeDelete the whole local knowledge mirror for the active API host and organization.writes
oxygen knowledge pushPush locally edited or newly created mirror pages back to the workspace wiki. Edits to canonical voice/brand/positioning pages become approval proposals instead of writing live.writes
oxygen knowledge resolveResolve task-scoped workspace GTM context with readiness and revision provenance.writes
oxygen knowledge searchFull-text search across knowledge wiki pages, ranked by relevance.
oxygen knowledge seedSeed or upgrade the knowledge wiki scaffold: on first run creates the starter page set — a start-here guide, a conventions schema page, and stub hubs (icp, positioning, offers, competitors…writes
oxygen knowledge statusReport the local knowledge mirror: path, page count, last sync, quarantined conflicts. Pass --all to report every locally mirrored workspace for the active API host.
oxygen knowledge syncClone or refresh the local knowledge mirror: server-rendered page markdown under the CLI config dir. Pass --all to mirror every workspace the credential can access.writes
oxygen knowledge synthesizeSynthesize knowledge from workspace evidence (one low-cost AI call): campaign learnings from auto-filed outreach outcomes, or a voice guide from sent messages.paid writes

lead-sourcing

CommandWhat it doesNotes
oxygen lead-sourcing auditAudit a sourced lead table against a lead-sourcing spec.
oxygen lead-sourcing planCompile a natural-language ICP into an account-first lead sourcing plan.

limits

CommandWhat it doesNotes
oxygen limits provider deleteRemove a per-provider override (falls back to the plan-tier default).writes
oxygen limits provider listList enforced provider overrides and the plan-tier BYOK daily threshold with its enforcement mode.
oxygen limits provider setSet an enforced per-provider call ceiling. Use --window-seconds 86400 for an explicit daily policy.writes
oxygen limits showShow effective plan-tier limits, spend-safety defaults, and uncapped-by-plan storage posture.

linkedin

CommandWhat it doesNotes
oxygen linkedin connections inviteSend a LinkedIn connection invitation.paid writes
oxygen linkedin ingestion statusUnified status of every LinkedIn ingestion drip (connections import, engagement harvest, message-history backfill) plus each account's remaining ingest read budget for the day.
oxygen linkedin intent setupCreate/reuse the canonical OXYGEN Tables, link them, and arm capture-only worker-backed engagement workflows for profile viewers, followers, and connections.writes
oxygen linkedin intent statusShow the canonical intent tables, their linked-table deep-links, and the capture feeds filling them.
oxygen linkedin invitations listList the account's pending sent LinkedIn invitations with their invitation ids — the ids linkedin invitations withdraw --ids cancels. Read-only: no provider write, no credits.
oxygen linkedin invitations withdrawWithdraw pending sent LinkedIn invitations.paid writes

login

CommandWhat it doesNotes
oxygen loginConnect this terminal to Oxygen. Opens the browser to approve this terminal (matching confirmation code shown in both); paste a token with --token instead if you prefer.writes

logout

CommandWhat it doesNotes
oxygen logoutRemove the active stored CLI API token.writes

mailboxes

CommandWhat it doesNotes
oxygen mailboxes cap setSet one sending mailbox's daily send cap (sends per day). --daily-cap must be a positive whole number. Consumes no Oxygen credits. <mailbox> accepts a mailbox id or email address.writes
oxygen mailboxes compatibilityRead-only compatibility report for every selected mailbox: generic origin class, real infrastructure tier (including InboxKit Azure), OXYGEN native-send connection quality, OXYGEN Warm-up path…
oxygen mailboxes connect-oauthConnect Google/Microsoft mailboxes to OXYGEN native send.paid writes
oxygen mailboxes delegationGoogle sending-domain delegation only — not Microsoft OAuth and not a credential-file handoff to OXYGEN Warm-up or EmailGuard.
oxygen mailboxes deletePreview or approve removal of exact mailboxes from Oxygen at 0 credits.writes
oxygen mailboxes emailguard connectPreview or connect selected mailboxes to EmailGuard.paid writes
oxygen mailboxes emailguard disconnectPreview or remove selected mailboxes from EmailGuard and cancel their recurring monitoring subscription. Remote absence is confirmed before billing stops.paid writes
oxygen mailboxes getGet one sending mailbox's configuration/readiness detail (provider, status, daily cap, warmup state, auth mode, and source — managed vs bring-your-own) plus a one-row pool summary.
oxygen mailboxes healthFleet email-health: the sending pool rolled up by external deliverability reputation (healthy/degraded/critical/unknown), per-mailbox scores, connected health providers, and DIRECTIONAL…
oxygen mailboxes importRegister (or refresh) sending mailboxes in bulk.writes
oxygen mailboxes listList the org's sending mailboxes with provider, status, warmup state, source (managed = bought through Oxygen, byok = bring-your-own), and a pool overview (including counts by source).
oxygen mailboxes oauth-healthShow every Google/Microsoft inbox with neither a usable per-mailbox OAuth token nor verified delegation/application access.
oxygen mailboxes orderRETIRED — managed mailboxes are now purchased as monthly subscriptions via oxygen managed-inboxes subscribe (InboxKit-backed).writes deprecated
oxygen mailboxes ramp setSet one mailbox's warm-up ramp: --start-per-day (day-0 ceiling), --increase-every-days (>=1), --step (added each period), --cap (ceiling).writes
oxygen mailboxes statusSet a sending mailbox's status. Pausing/disabling takes the inbox out of the rotation pool without losing its warmup state.
oxygen mailboxes tagReplace a sending mailbox's workspace tags (whole set; --tags "" clears) — e.g. pool the mailboxes behind one campaign tag. See oxygen tags list for the vocabulary.writes
oxygen mailboxes updateUpdate a sending mailbox's rich-content profile: the From display name and/or the HTML signature appended to its sends.writes
oxygen mailboxes warmup configShow or OVERRIDE one mailbox's warmup ramp.
oxygen mailboxes warmup disableDisable warmup and unenroll each mailbox from the rail that actually enrolled it.writes
oxygen mailboxes warmup enableSTANDALONE ENROLLMENT: enroll BYOK/imported mailboxes, a managed order that opted out, or mailboxes being added to warmup later.paid writes
oxygen mailboxes warmup microsoftNON-INBOXKIT FALLBACK ONLY: authorize eligible Microsoft/Outlook mailboxes for OXYGEN Warm-up with ONE browser consent PER MAILBOX, never a password or app password.paid
oxygen mailboxes warmup pausePause warmup at the rail that actually enrolled each mailbox — OXYGEN Warm-up for current enrollments, TrulyInbox for inboxes still warming there.writes
oxygen mailboxes warmup resumeResume paused warmup at each mailbox's recorded rail (OXYGEN Warm-up, or TrulyInbox for inboxes still warming there).writes
oxygen mailboxes warmup statusRead warmup analytics back from the rail each mailbox is enrolled on and update its state in the pool. Read-only at the vendor, 0 Oxygen credits. Targets the whole pool unless --mailboxes is given.

managed-inboxes

CommandWhat it doesNotes
oxygen managed-inboxes add-inboxesAdd mailboxes to a managed domain you ALREADY own — no new domain is registered and there is NO domain registration charge, only the extra inboxes' monthly rate (plus their add-ons).paid writes
oxygen managed-inboxes cancelCancel a managed inbox order by domain: the inboxes AND every recurring add-on on them (warm-up, inbox placement).paid writes
oxygen managed-inboxes getGet one managed inbox subscription by domain (vendor, platform, mailbox count, monthly USD price, vendor order id, lifecycle status, auto-renew, period end, internal billing status).
oxygen managed-inboxes listList the org's managed inbox orders: vendor, platform, live inbox count, lifecycle status, internal billing posture, and each order's FULL monthly cost — the inbox line plus the warm-up and…
oxygen managed-inboxes registrantShow the registrant (WHOIS) contact this workspace files domain registrations under, or null if it has never bought one.
oxygen managed-inboxes subscribeSubscribe a NEW domain + mailboxes as a managed monthly inbox subscription.paid writes
oxygen managed-inboxes upload-avatarHost a mailbox profile picture and print the URL to pass as profile_picture_url.writes
oxygen managed-inboxes verifyCheck that OXYGEN, STRIPE, and the VENDOR agree about what this org is buying.

messages

CommandWhat it doesNotes
oxygen messages queryQuery messages across channels newest first, or relevance-ranked when -q is set. --channel all merges email + LinkedIn + WhatsApp (narrow with --channels); a campaign filter (--sequence-id)…
oxygen messages statsUnibox/Message-ledger analytics: outbound/inbound totals, heuristic reply rate by channel + campaign, status breakdowns, response-time percentiles, top counterpart domains, and winning openers.

notetaker

CommandWhat it doesNotes
oxygen notetaker scheduleSchedule an invited meeting bot. Defaults to dry-run.paid writes
oxygen notetaker setupConfigure the Recall-backed Oxygen Notetaker. Defaults to dry-run.writes
oxygen notetaker statusGet one notetaker session with artifacts and credit state.

observability

CommandWhat it doesNotes
oxygen observability approvalsList everything waiting for a human decision across workflows, publishing, message reviews, inbox reply drafts, and collaboration approval requests — the cross-primitive approvals inbox.
oxygen observability eventsList recent redacted OXYGEN operation events and failures. Customer support triage and support-event history live in Plain Inbox.
oxygen observability runsList active and failed runs across workflows and table action/ingestion runs — the cross-primitive runs lens. Read-only; each failed item carries the command that resolves it.

orgs

CommandWhat it doesNotes
oxygen orgs billing-linkCover a workspace with a plan you already pay for in another organization (one plan, many workspaces) instead of buying a second subscription.writes
oxygen orgs billing-ownersList the organizations that could pay for this workspace: which of the organizations you belong to can cover another workspace's credits, and for each of the rest, why it cannot.
oxygen orgs billing-unlinkReturn a workspace to owning its own billing: it stops being covered by another organization's plan and needs a subscription of its own again.writes
oxygen orgs listList organizations available to the current CLI identity.
oxygen orgs member-roleMove a member between the admin and member workspace roles.
oxygen orgs selectAlias for orgs use.writes alias
oxygen orgs useSelect the active organization for this CLI profile.writes

people

CommandWhat it doesNotes
oxygen people search planCompile a people-search prompt and optional typed persona filters into ordered provider routes without provider calls.
oxygen people search runReturn a dry-run request or queue a live people-search ingestion run. Upsert dedup is on linkedin_url.paid writes

posts

CommandWhat it doesNotes
oxygen posts commentsRead one post's comments live from LinkedIn (or one comment's replies with --comment-id).
oxygen posts createPublish a LinkedIn post from the connected account.paid writes
oxygen posts deleteDelete a LinkedIn post the connected account authored — a REAL, irreversible public write.paid writes
oxygen posts getLIVE provider read of one LinkedIn post.
oxygen posts reactionsList a post's reactions (or a comment's reactions with --comment-id). --post MUST be the composite social_id from posts get. Metered as an account read.

profiles

CommandWhat it doesNotes
oxygen profiles currentShow the profile the next command will use, and where it came from.
oxygen profiles envPrint shell export lines that pin this terminal to a stored CLI profile.
oxygen profiles listList stored CLI credential profiles.
oxygen profiles removeRemove one stored CLI credential profile.writes
oxygen profiles useSwitch the active CLI credential profile.writes

projects

CommandWhat it doesNotes
oxygen projects createCreate a schema-backed table project.writes
oxygen projects deleteDelete an empty non-General table project. Defaults to dry-run; --live requires --confirm.writes
oxygen projects listList table projects in the current tenant database.
oxygen projects renameRename a table project's display name and slug without changing its tables.writes
oxygen projects tagReplace a project's workspace tags (whole set; --tags "" clears). See oxygen tags list for the vocabulary.writes

prompts

CommandWhat it doesNotes
oxygen prompts archiveArchive a prompt template. Seeded templates cannot be archived.writes
oxygen prompts getRead one prompt template by id or slug.
oxygen prompts listList prompt templates in the workspace.
oxygen prompts upsertCreate or update a prompt template.writes

publishing

CommandWhat it doesNotes
oxygen publishing amplification actionsThe policy's action ledger: what each participant account did (or is about to do) on which post, with status and cost.
oxygen publishing amplification createCreate an amplification policy.paid writes
oxygen publishing amplification deleteDelete a policy.writes
oxygen publishing amplification disableDisarm a policy and skip every action it had already planned. Always allowed — the off switch is never gated.writes
oxygen publishing amplification enableArm a policy.paid writes
oxygen publishing amplification getGet one policy: scope, participants, caps, pacing, enabled state, and standing approval.
oxygen publishing amplification listList amplification policies with their scope, caps, and enabled state.
oxygen publishing amplification updateUpdate a policy's participants, actions, caps, or pacing. Tightening a cap takes effect on the next cycle.paid writes
oxygen publishing analytics accountStored per-account metric series for connected publishing accounts. Read-only: no provider call, 0 credits.
oxygen publishing analytics emvSet the workspace CPM used for earned-media value, per channel. EMV stays null on any channel whose provider does not expose impressions.
oxygen publishing analytics postOne post's stored daily metric series, totals, and earned-media value.
oxygen publishing analytics summaryWorkspace LinkedIn or X analytics.
oxygen publishing comments approvePost one exact previewed reply publicly. A REAL LinkedIn write; refused without --approved and the preview's content hash.paid writes
oxygen publishing comments getGet one stored public comment with its provider thread and immutable reply-action history. Read-only: no provider call, 0 credits.
oxygen publishing comments listList the Publishing Community work queue, oldest first, with polling freshness/backoff even when empty.
oxygen publishing comments replyPreview an exact public reply and return its action_id + content_hash. Makes no provider call, posts nothing, and uses 0 credits.writes
oxygen publishing comments resolveResolve, ignore, mark spam, or reopen one local public-comment work item. No provider write, 0 credits.writes
oxygen publishing comments updateSave local draft, notes, assignment, or triage state. Nothing is posted publicly and no credits are used.writes
oxygen publishing drafts acceptAccept a draft variant into the publish queue. The post is created needs-approval — approve it separately before it can publish.writes
oxygen publishing drafts editRewrite one variant's text. The first edit snapshots the AI's original copy, so accepting it teaches the Knowledge Graph what you changed.writes
oxygen publishing drafts listList post drafts. Defaults to the open queue (queued + edited).
oxygen publishing drafts rejectReject a draft. The reason is filed to the Knowledge Graph so the next drafts learn from it.writes
oxygen publishing ideas addFile an idea into the backlog. Free — no AI call, nothing scheduled. Turn one into a post later with publishing drafts accept --publish-at.writes
oxygen publishing ideas listList the idea backlog.
oxygen publishing importBulk-load scheduled posts from a .csv or .json file.paid writes
oxygen publishing media upload-urlCreate a Publishing media asset and presigned upload URL with required upload headers.writes
oxygen publishing media uploadedVerify an uploaded Publishing media object and mark the media asset uploaded.
oxygen publishing mentions resolveResolve @handles, LinkedIn profile/company links, provider ids, and URNs — through a connected sender (notify=false, free) or the managed scraper (--source scraper, paid, no sender/window needed).paid writes
oxygen publishing posts approveApprove a scheduled post so the worker can publish it when due. LinkedIn approval resolves every inline @<public-identifier> and blocks with inspectable details if any mention cannot be verified.writes
oxygen publishing posts boostBoost ONE post: your teammates' connected accounts react to and comment on it, once.paid
oxygen publishing posts cancelCancel a draft, scheduled, queued, or failed post.writes
oxygen publishing posts createCreate a scheduled post. Publishing requires approval before the worker can send.paid writes
oxygen publishing posts deleteDelete a never-attempted post from the queue (draft, scheduled, or queued with no publish attempts).writes
oxygen publishing posts draftDraft posts with AI, grounded in the workspace Knowledge Graph.paid writes
oxygen publishing posts getGet one scheduled post with resolved media previews and attempt history.
oxygen publishing posts listList scheduled posts.
oxygen publishing posts noteLeave an internal review note on a post, or reply to one with --parent. Never published.writes
oxygen publishing posts notesList the internal review notes on a post. Notes are workspace-only — they are never published.
oxygen publishing posts resolve-noteMark a review note handled.writes
oxygen publishing posts restoreRoll a post's TEXT back to an earlier revision (see publishing posts revisions).writes
oxygen publishing posts retryMove a failed post back to scheduled for another worker attempt.writes
oxygen publishing posts reviewPre-publish review of a post: deterministic channel lint (free, and blocking at approve) plus an AI voice/claims check against the Knowledge Graph.paid
oxygen publishing posts revisionsList a post's content history: every revision with its number, title, text, author, and time.
oxygen publishing posts uncancelReopen a canceled post as an unapproved draft, keeping its publish time and its attempt history.
oxygen publishing posts updateUpdate an editable draft, scheduled, or failed post.writes
oxygen publishing tags setAdd and/or remove workspace tags on a post.writes

recipes

CommandWhat it doesNotes
oxygen recipes installInstall a recipe into the workspace wiki as a playbook page (revisioned, retrieval-grounded, with per-version provenance).
oxygen recipes listList recipes, optionally filtered by text, business-case category, journey stage, or audience.
oxygen recipes showShow one recipe: the full playbook body plus prerequisites, credits, and approval gates.

reviews

CommandWhat it doesNotes
oxygen reviews acceptAccept a pending message review.writes
oxygen reviews listList message reviews.
oxygen reviews nextRead the oldest pending review.
oxygen reviews rejectReject a pending message review with optional highlights and auto-rerun.writes

rows

CommandWhat it doesNotes
oxygen rows historyShow row change history.writes

runs

CommandWhat it doesNotes
oxygen runs getGet one run with events.
oxygen runs listList recent tenant runs.
CommandWhat it doesNotes
oxygen search planPlan an Oxygen search or scrape route before running provider jobs.
oxygen search runPreview or enqueue a durable table-backed search/scrape job from a search plan.paid writes
oxygen search runs cancelRequest cancellation for a queued or running search/scrape run.writes
oxygen search runs getGet one durable search/scrape run.
oxygen search runs itemsList search/scrape run items.
oxygen search runs retry-failedRequeue failed search/scrape run items.writes
oxygen search runs waitPoll a durable search/scrape run until it finishes.

senders

CommandWhat it doesNotes
oxygen senders checkpoint resendAsk LinkedIn to resend the checkpoint code so you can read a fresh one, then submit it with senders checkpoint solve. <id> accepts a sender account id, connection id, or Unipile account id.writes
oxygen senders checkpoint solveSubmit the LinkedIn checkpoint code Unipile is waiting on to finish authentication. <id> accepts a sender account id, connection id, or Unipile account id; <code> is the verification code LinkedIn…writes
oxygen senders checkpointsList LinkedIn senders stuck on a security checkpoint (2FA / OTP / in-app validation), each with status, warm-up day, today's usage vs. caps, and the latest error — plus a fleet tally of every…
oxygen senders connectGet a Unipile hosted-auth URL to connect a new LinkedIn account (or reconnect with --reconnect).writes
oxygen senders disconnectDisconnect a LinkedIn sender account so it stops sending. <id> accepts a sender account id, connection id, or Unipile account id.writes
oxygen senders getGet one LinkedIn sender account with status, limits, daily-reset timezone, and usage. <id> accepts a sender account id, connection id, or Unipile account id.
oxygen senders healthShow a one-call health snapshot for a LinkedIn sender: status, the latest error reason, any open security checkpoint, today's usage, the warm-up ramp, and when the daily quota resets.
oxygen senders inbox-scope getShow whether a sender syncs only OXYGEN-started conversations or its entire LinkedIn inbox.
oxygen senders inbox-scope setSet LinkedIn inbox privacy. oxygen_initiated hides and stops ingesting unrelated chats; all opts into the full inbox.writes
oxygen senders inmail-balanceShow remaining LinkedIn InMail credits for a sender (Premium / Sales Navigator / Recruiter each hold a separate pool).
oxygen senders limits getShow current limits, overrides, daily-reset timezone, defaults, and safe maximums for an account. <id> accepts a sender account id, connection id, or Unipile account id.
oxygen senders limits setAdjust per-account daily action limits and the daily-reset timezone.writes
oxygen senders listList connected LinkedIn sender accounts with health status, rate limits, and today's usage.
oxygen senders profiles attachAttach senders and/or inboxes to a profile. An account belongs to one profile at a time — attaching moves it.writes
oxygen senders profiles createCreate a sender profile. --from-linkedin seeds the name + avatar from a LinkedIn account and attaches it (the person's identity); then assign inboxes and WhatsApp with --mailboxes / --senders.writes
oxygen senders profiles deleteDelete a sender profile. Its accounts detach (return to the pool); they are never deleted.writes
oxygen senders profiles detachDetach senders and/or inboxes from a profile, returning them to the unassigned pool.
oxygen senders profiles getGet one sender profile with the LinkedIn/WhatsApp senders and inboxes attached to it.
oxygen senders profiles listList sender profiles with their per-channel account counts (LinkedIn / WhatsApp / inboxes).
oxygen senders profiles tagReplace a sender profile's workspace tags (whole set; --tags "" clears) — one edit pools the whole sending identity behind a campaign tag.writes
oxygen senders profiles updateUpdate a sender profile's own fields (name, avatar, status). Use attach/detach to change its accounts.writes
oxygen senders syncRefresh LinkedIn account state (status, profile) from Unipile. Pass --connection-id to sync one account, or omit it to sync all.writes
oxygen senders tagReplace a sender account's workspace tags (whole set; --tags "" clears) — e.g. pool the senders behind one campaign tag. See oxygen tags list for the vocabulary.writes

sequences

CommandWhat it doesNotes
oxygen sequences analyticsShow organization-level sequencer analytics, per-sequence funnels, and native email attribution under analytics.emailAttribution: byMailbox, byDomain, and explicit unattributed facts.
oxygen sequences archiveArchive a sequence (terminal; cannot be reactivated).writes
oxygen sequences createCreate a draft multichannel sequence from a steps JSON file.paid writes
oxygen sequences deletePermanently delete a sequence and everything it owns (enrollments, actions, sender links, schedules) — not a reversible archive.paid writes
oxygen sequences draftDraft an email outreach sequence with AI, grounded in the workspace Knowledge Graph (voice, positioning, campaign learnings) — Instantly's AI sequence generator, with provenance.paid writes
oxygen sequences duplicateDuplicate a sequence as a new DRAFT: copies the step definition, settings, channels, source table, and sender pool.writes
oxygen sequences enrollEnroll leads into a sequence.writes
oxygen sequences enrollmentsList per-lead enrollment state plus the latest action status, error, attempts, and retry time.
oxygen sequences espESP breakdown of this sequence's email sending scope: which provider each enrolled lead's mail routes through (google/microsoft, plus named gateways like Proofpoint/Mimecast and non-matchable…
oxygen sequences eventsChronological activity feed for a sequence (like Instantly's Sending Activities): sends, failures, deferrals, opens, clicks, replies, bounces, unsubscribes, and positive reply-status transitions…
oxygen sequences getGet a sequence's definition, senders, status, and credit usage.
oxygen sequences hubspot-list-import configurePreview or start a scheduled HubSpot-list import. Preview first; then pass its reviewed fingerprint with --live --approved. The complete DNC list is applied before leads are read or enrolled.paid writes
oxygen sequences hubspot-list-import listsList saved HubSpot contact/company segments and readable identity fields available for a Sequence import.
oxygen sequences hubspot-sync configurePreview or save the workspace-wide HubSpot projection. Existing fields need no new grant; creating missing properties requires --approved and HubSpot property-creation access.paid writes
oxygen sequences hubspot-sync showShow the connected portal, live contact schema, activity/status configuration, component health, and enabled state.
oxygen sequences listList sequences with status, channels, tags, and credit usage. --stats joins each row's LIFETIME funnel (enrolled, sent, replies, reply rate, email opens/clicks, opportunities) — the same shape…
oxygen sequences pausePause an active sequence (stops new dispatches; enrollments resume on un-pause).writes
oxygen sequences reconcileSafely reconcile one ambiguous LinkedIn invite/message from provider reads. Preview-only unless --approved; never resends.paid writes
oxygen sequences resumeResume a paused sequence.writes
oxygen sequences retry-deferredPreview or re-ready pending outside-working-hours actions on a PAUSED sequence.paid writes
oxygen sequences sendInitiate one net-new LinkedIn message through a one-recipient, one-step hosted Sequence.paid writes
oxygen sequences signalRecord an external GTM signal (e.g. linkedin_connected, email_replied, company_raised_funds, job_change, web_visit, intent) onto a running sequence's enrollment(s) to drive signal-triggered…
oxygen sequences startPreview or start a sequence.paid writes
oxygen sequences statsShow the sequence funnel: enrolled, invites sent, connected, replied, with acceptance and reply rates.
oxygen sequences updateUpdate a sequence.paid writes
oxygen sequences variantsA/B scoreboard for one sequence: per-step/per-variant results plus native email by_mailbox, by_domain, reply types, rates, and explicit unattributed facts.
oxygen sequences workflows configurePreview or maintain an existing legacy preset.paid writes
oxygen sequences workflows listList the two legacy sequencer presets with armed state, editable config, and ordinary workflow deep-links.

session

CommandWhat it doesNotes
oxygen session outputRegister a local session output file or table.
oxygen session startStart a local Oxygen agent session or update a step.writes
oxygen session statusAttach a live status message to the current local session.
oxygen session usageSummarize the current local session. Org credit usage is available through billing usage.

signals

CommandWhat it doesNotes
oxygen signals leads-todayList people to contact today, ranked by their most recent GTM intent signal. Do-not-contact filtering is best-effort (email-only leads surface unchecked).
oxygen signals listList the raw GTM signal-event feed newest-first (website_visit / profile_view / post_reaction / new_follower), each resolved onto the person it attached to. Read-only.
oxygen signals recordRecord one inbound GTM signal (website_visit, profile_view, post_engager, new_follower). Internal write — free, no approval. Idempotent on --external-event-id.writes
oxygen signals registryShow the signal-type registry: each registered type with its intent weight and capture status (all four registered types are live end-to-end — website_visit via the RB2B webhook, the engagement…
oxygen signals search planCompile a signal-sourcing request into ordered provider routes without provider calls: the chain, per-route applied/dropped filters, credit estimate, table blueprint, and whether the route can be…
oxygen signals search runReturn a dry-run request or queue a live signal-search ingestion run.paid writes

signup-leads

CommandWhat it doesNotes
oxygen signup-leads deliveries getGet one signup lead webhook delivery by delivery id or event id.
oxygen signup-leads deliveries listList signup lead webhook deliveries for the current organization.
oxygen signup-leads deliveries retryRetry one failed signup lead webhook delivery.writes

skills

CommandWhat it doesNotes
oxygen skills doctorCheck Oxygen skill index reachability and local installer prerequisites.
oxygen skills getHydrate one exact Oxygen skill entrypoint and its document index.
oxygen skills installInstall Oxygen agent skills into local agent skill directories only; uses 0 credits and does not change the Oxygen workspace or call a provider.
oxygen skills listList Oxygen agent skills available from the hosted skill index.
oxygen skills searchFind a bounded set of Oxygen skills and matching documents from an outcome.

sourcing

CommandWhat it doesNotes
oxygen sourcing planClassify a sourcing request and recommend provider routes without executing paid tools.

status

CommandWhat it doesNotes
oxygen statusCompare the local Oxygen CLI version against the active profile's deployed Oxygen API.

support

CommandWhat it doesNotes
oxygen support ackLegacy command; Plain owns delivery and read state.writes deprecated hidden
oxygen support admin eventsRead-only poll of legacy OXYGEN archive events for cutover compatibility; never use it as the live queue (staff only).staff
oxygen support admin fileRetired legacy write; always returns the Plain-cutover error (staff only).writes staff deprecated
oxygen support admin getShow one legacy archived ticket snapshot; Plain is authoritative for live cases (staff only).staff
oxygen support admin listRead the legacy OXYGEN ticket archive across organizations; Plain is the live queue (staff only).staff
oxygen support admin replyRetired legacy write; always returns the Plain-cutover error.writes deprecated
oxygen support admin resolveRetired legacy write; always returns the Plain-cutover error (staff only).writes staff deprecated
oxygen support admin updateRetired legacy write; Plain owns status, assignee, and notes (staff only).writes staff deprecated
oxygen support admin workflowRetired legacy write; Plain notes and downstream engineering work own triage (staff only).staff deprecated
oxygen support fileCreate a real, zero-credit Plain support Thread immediately.writes
oxygen support getShow one Plain support Thread and its customer-visible timeline.
oxygen support listList Plain support Threads for the active organization.
oxygen support replyReply to a Plain Chat thread; migrated or native-channel history continues in one linked Chat thread.writes

suppressions

CommandWhat it doesNotes
oxygen suppressions addAdd (or refresh) a lead provider id on the org do-not-contact list so the sequencer never enrolls them again. Idempotent. --reason defaults to manual.writes
oxygen suppressions addressesList the org's blocked email ADDRESSES, newest first (bounces, unsubscribes, and suppressions import land here).
oxygen suppressions companiesList explicit company-domain and LinkedIn-company suppressions. These stop every Sequence channel.
oxygen suppressions domainsList the org's whole-domain email blocks, newest first. Filter by --reason (manual | complaint | policy) or --search (case-insensitive substring of the domain).
oxygen suppressions hubspot listsList contact/company saved lists and readable identity properties. Reads definitions only; no memberships or writes.
oxygen suppressions hubspot syncPreview or arm additive HubSpot → DNC sync. Requires at least one contact/company list. Live requires the exact dry-run fingerprint and approval; never enrolls or sends.paid writes
oxygen suppressions importBulk-import a do-not-contact blocklist from a file (newline / comma / whitespace separated, max 5000).writes
oxygen suppressions import-identitiesImport a source-neutral typed JSON array into DNC.writes
oxygen suppressions listList the org's do-not-contact suppressions, newest first. Filter by --reason or by --search (case-insensitive substring of the lead provider id).
oxygen suppressions phonesList phone suppressions (strict E.164) used by call, WhatsApp, and Sequence safety gates.
oxygen suppressions removeRemove a lead provider id from the org do-not-contact list (re-enable contact).writes
oxygen suppressions remove-addressRemove one blocked email ADDRESS from the do-not-contact ledger (re-enables sending to it).writes
oxygen suppressions remove-companyDeliberately remove one explicit company suppression.writes
oxygen suppressions remove-domainRemove a whole-domain email block (re-enable sending to the domain).writes
oxygen suppressions remove-phoneDeliberately remove one strict E.164 phone suppression.writes

table-ingestions

CommandWhat it doesNotes
oxygen table-ingestions cancelRequest cancellation for a durable table ingestion run.writes
oxygen table-ingestions create-tool-pageCreate a paged tool-source ingestion run for a workspace table.writes
oxygen table-ingestions getGet one durable table ingestion run.
oxygen table-ingestions itemsList items for a durable table ingestion run.
oxygen table-ingestions retry-failedRequeue failed items for a durable table ingestion run.writes
oxygen table-ingestions waitPoll a durable table ingestion run until it finishes.

table-runs

CommandWhat it doesNotes
oxygen table-runs cancelRequest cancellation for a durable table action run.writes
oxygen table-runs createCreate a durable background run for table tool-column actions.paid writes
oxygen table-runs getGet one durable table action run.
oxygen table-runs itemsList row items for a durable table action run.
oxygen table-runs listList durable table action runs for one table.
oxygen table-runs pausePause a durable table action run before it starts more row jobs.writes
oxygen table-runs provider-summarySummarize provider attempts, upstream request events, and credit capture/release for a table action run.
oxygen table-runs resumeResume a paused durable table action run.writes
oxygen table-runs retry-failedRequeue failed items for a durable table action run. Items with an unconfirmed external effect stay blocked until their destination is verified and explicitly approved.paid writes
oxygen table-runs waitPoll a durable table action run until it finishes.

tables

CommandWhat it doesNotes
oxygen tables activityShow background runs active on a workspace table right now, with a worker-queue health rollup.
oxygen tables archiveArchive a workspace table without dropping physical data. Hides it indefinitely with no purge timer; for cleanup with a restorable deadline use tables delete.writes
oxygen tables auto-dedupe disableDisable (clear) a table's standing auto-dedupe configuration.writes
oxygen tables auto-dedupe getShow a table's standing auto-dedupe configuration.
oxygen tables auto-dedupe setEnable a standing auto-dedupe: after every write (insert, upsert, import, send, webhook), duplicate groups containing a just-written row are collapsed by the keep policy — losers are DELETED…writes
oxygen tables auto-run disableDisable (clear) a table's standing auto-run configuration.writes
oxygen tables auto-run getShow a table's standing auto-run configuration (columns queued automatically when new rows are written).
oxygen tables auto-run setEnable a standing auto-run: automatically queue the given columns for rows written to this table (imports, inserts, upserts). Default off.paid writes
oxygen tables createCreate a real Postgres-backed workspace table.writes
oxygen tables dedupeCollapse duplicate rows by normalized (email/domain/linkedin) or fuzzy-label keys, or cross-check a column against another table.paid
oxygen tables deleteDelete workspace tables: archives now and schedules the physical purge (default 14 days; restorable via tables restore until then). --now purges immediately and permanently — it previews and…writes
oxygen tables delete-rowDelete one workspace table row.writes
oxygen tables delete-rowsDelete multiple workspace table rows.writes
oxygen tables describeDescribe a workspace table and its columns.
oxygen tables duplicateDuplicate a workspace table. Copies row values unless --schema-only is set.writes
oxygen tables exportExport workspace table rows as JSON, JSONL, CSV, or a human-readable table.
oxygen tables export-bundleExport a workspace table as a portable bundle (schema + every row) for cross-environment / cross-org copies.
oxygen tables importImport JSON, JSONL, CSV, or XLSX rows into a workspace table.writes
oxygen tables import-bundleRecreate a workspace table from an export-bundle file in this org.writes
oxygen tables insertInsert rows into a workspace table.writes
oxygen tables linkLink two tables: Oxygen finds the column that joins them, works out the direction, shows you how many rows will match, and on approval links every row.paid
oxygen tables listList workspace tables in the current tenant database.
oxygen tables moveMove a workspace table to a different project.writes
oxygen tables previewPreview a workspace table with projected rows and summary stats.
oxygen tables promoteWrite bound rows' columns onto their matched CRM records (Records<->Tables).paid
oxygen tables queryQuery a workspace table by id or slug.
oxygen tables recover-pendingRe-poll BetterContact async enrichments that timed out mid-poll and write any newly-found phones back to the table.writes
oxygen tables relateRelate two tables: define empty Tables-owned relation columns on the source and target.
oxygen tables relations archiveArchive a native relation, its active links, and both relation columns while preserving history. Previews by default.paid writes
oxygen tables relations listList the native relations visible from one table, including cardinality, target, and active link count.
oxygen tables relations updateRename either side of a relation or change its cardinality. Endpoints and slugs stay immutable. Previews by default.paid writes
oxygen tables renameRename a workspace table display name and slug.writes
oxygen tables restoreRestore an archived or delete-scheduled table: cancels the purge timer and reclaims its slug.writes
oxygen tables schedule listList a table's scheduled column refreshes.
oxygen tables schedule removeRemove a column's scheduled refresh (deletes the backing cron workflow; future scheduled runs stop).writes
oxygen tables schedule setCreate or replace a column's scheduled refresh (a cron-triggered hosted workflow; visible via oxygen workflows list).paid writes
oxygen tables sendCopy rows from one table into another as a durable background run (free, resumable).writes
oxygen tables tagReplace a table's workspace tags (Tags primitive; "" clears). Tags link the table to sequences, wiki pages, and workflows carrying the same tag — browse with oxygen tags get <tag>.writes
oxygen tables tidy-suggestRead-only tidy analysis for a workspace table: duplicate columns, formatting issues, hide candidates, and value-sanity findings.
oxygen tables unlinkUnlink one exact pair of rows by archiving their relation edge. The relation definition and both rows remain. Previews by default.paid
oxygen tables updateUpdate one workspace table row.writes
oxygen tables upsertInsert or update rows in a workspace table by a column key.writes
oxygen tables views createCreate a saved view.writes
oxygen tables views deleteDelete a saved view by id.writes
oxygen tables views getGet one saved view by id.
oxygen tables views listList a table's saved views.
oxygen tables views updateUpdate a saved view.writes
oxygen tables webhook createCreate a direct webhook endpoint that writes inbound JSON into a table (600 requests/60s per endpoint and sender IP; 429 returns Retry-After).writes
oxygen tables webhook deliveriesList direct table webhook deliveries and auto-run enqueue status.
oxygen tables webhook getGet one direct table webhook by endpoint id.
oxygen tables webhook listList direct table webhooks.
oxygen tables webhook updateUpdate a direct table webhook endpoint.writes

tags

CommandWhat it doesNotes
oxygen tags createDeclare a tag before anything carries it, with an optional description, color, and pin. Idempotent: run it on a tag already in use to annotate it — carriers are never touched.writes
oxygen tags deleteDelete one or more tags: strips them from EVERY carrier (archived and finished items included) and removes their declaration.writes
oxygen tags getEverything carrying one tag — publishing posts, knowledge pages, sequences, tables, workflows, recipes, inbox conversations, CRM records, mailboxes, sender accounts, sending domains, projects…
oxygen tags listList every workspace tag with per-primitive counts, most-used first.
oxygen tags mergeMerge one or more tags into a single target, EVERYWHERE they appear (archived rows included).writes
oxygen tags renameRename one tag EVERYWHERE it appears (every primitive, archived rows included).writes
oxygen tags updateChange a tag's description, color, or pin. Only the flags you pass change; use the --clear-* flags to remove a value. To change the LABEL use tags rename.writes

tools

CommandWhat it doesNotes
oxygen tools enums getFetch the accepted values for one provider enum catalog. Use this before drafting payloads with enumRef fields.
oxygen tools enums listList enum catalogs for a provider (or all providers).
oxygen tools getGet a tool descriptor.
oxygen tools runRun an executable Oxygen tool through the HTTPS API.paid writes
oxygen tools searchSearch a bounded, compact provider-operation catalog; hydrate one result with tools get.

update

CommandWhat it doesNotes
oxygen updateUpdate the Oxygen CLI from npm.writes

verify

CommandWhat it doesNotes
oxygen verify emailVerify one or more email addresses.paid

viewers

CommandWhat it doesNotes
oxygen viewers importStart (or re-arm) a durable profile-viewers (WVMP) import.writes
oxygen viewers statusShow durable profile-viewers (WVMP) import progress (per-sender drip status, viewers ingested, last error, the preserved privacy ceiling note) plus a preview of the viewers table and a deep-link…

voice

CommandWhat it doesNotes
oxygen voice numbers listList the org's phone numbers with warm-up state, daily cap, and what each one costs per month. Optional --tag narrows to one campaign's numbers.
oxygen voice numbers releaseGive a number back to the carrier and stop its monthly charge.paid
oxygen voice numbers tagReplace a phone number's workspace tags (whole set; --tags "" clears) — e.g. pool the numbers dialing one campaign behind its tag. See oxygen tags list for the vocabulary.writes
oxygen voice tasks claimTake the next due call task, or a specific one with --task.
oxygen voice tasks completeRecord the outcome of a claimed call. Lease-guarded: a lease reclaimed mid-call fails with 409 rather than overwriting the new holder's outcome.
oxygen voice tasks extendRenew a claimed task's 15-minute lease. Completing needs a live lease, so a longer call must heartbeat or its outcome and notes are rejected as stale.
oxygen voice tasks listList the call queue, best-first (highest priority, then earliest due). Defaults to every status; filter with --status.
oxygen voice tasks overrideWaive a guardrail for ONE lead — the exception path for a prospect who asked to be called outside their window, or one whose timezone you know you do not have.
oxygen voice tasks queuePut a lead INTO the call queue.
oxygen voice tasks skipDrop a task out of the queue without dialing (bad data, a rep pass, a guardrail block). Needs no lease — the guardrail gate skips tasks it never claimed.

whatsapp

CommandWhat it doesNotes
oxygen whatsapp accountsList connected WhatsApp accounts with health status, warm-up ramp state, limits, and today's usage.
oxygen whatsapp chat-actionAct on one WhatsApp chat: read/mute/archive/pin state, labels, group membership, or the group invite link.paid writes
oxygen whatsapp connectGet a Unipile hosted-auth URL to connect a new WhatsApp account by scanning a QR in WhatsApp → Linked Devices (or reconnect with --reconnect). Newly connected accounts start a mandatory warm-up ramp.writes
oxygen whatsapp disconnectDisconnect a WhatsApp account so it stops sending. <id> accepts an account id, connection id, or Unipile account id.writes
oxygen whatsapp forwardForward an existing WhatsApp message into another chat. This delivers a new message, so it spends send budget and is approval-gated: omit --approved for a preview.paid writes
oxygen whatsapp getGet one WhatsApp account with limits, warm-up ramp state (account age + today's effective send floor), daily-reset timezone, and usage. <id> accepts an account id, connection id, or Unipile…
oxygen whatsapp historyBackfill one WhatsApp conversation's full message history.writes
oxygen whatsapp limits getShow current WhatsApp limits, the warm-up ramp state, daily-reset timezone, defaults, and safe maximums. <id> accepts an account id, connection id, or Unipile account id.
oxygen whatsapp limits setAdjust per-account WhatsApp daily limits and the daily-reset timezone.writes
oxygen whatsapp profile editEdit the connected number's WhatsApp profile. Every contact who has the number sees the change, so this is approval-gated: omit --approved for a preview.paid writes
oxygen whatsapp profile showShow the connected number's WhatsApp profile.
oxygen whatsapp syncRefresh WhatsApp account state (status) from Unipile. Pass --connection-id to sync one account, or omit to sync all.writes
oxygen whatsapp warm-sendSend ONE warm WhatsApp message into an EXISTING conversation (warm-only; a cold phone number with no prior conversation is rejected).paid writes

whoami

CommandWhat it doesNotes
oxygen whoamiShow the current Oxygen CLI identity.

worker

CommandWhat it doesNotes
oxygen worker failuresList failed background action and ingestion items.
oxygen worker queue-statsShow background action and ingestion queue health.
oxygen worker repairRepair stale background action, ingestion, and workflow queue state.
oxygen worker run-onceCompatibility alias for worker repair; repairs Postgres-backed worker state for the current organization.writes alias

workflows

CommandWhat it doesNotes
oxygen workflows applyCompile and publish a workflow definition. Apply costs 0 credits, calls no graph nodes, creates no run, and preserves disabled status; call or enable separately to execute.paid writes
oxygen workflows approvalsList workflow runs awaiting a human approval decision (the mid-run approval inbox).
oxygen workflows callEnqueue a workflow run asynchronously through its API trigger. Follow the returned run_id with oxygen workflows tail <run_id>.paid writes
oxygen workflows cancelCancel a queued or running workflow run.writes
oxygen workflows deletePreview or permanently delete one or more workflow automations.writes
oxygen workflows disableDisable one or more workflow automations and their current triggers.writes
oxygen workflows duplicateDuplicate a workflow automation as a disabled copy by default.writes
oxygen workflows enableEnable one or more workflow automations and their current triggers.paid writes
oxygen workflows events emitEmit a normalized workflow event and enqueue matching event-triggered workflows.paid writes
oxygen workflows events getGet one curated workspace-event preset and its ready-to-copy trigger object.
oxygen workflows events listSearch and filter every app-native and connected event this workspace can use as a workflow trigger.
oxygen workflows exportExport one graph-native workflow as a portable, editable definition with source account ids and trigger authority removed.
oxygen workflows failuresList failed workflow runs and trigger scheduler failures.
oxygen workflows getGet one workflow automation.
oxygen workflows importPreflight or install a portable workflow definition. Imports are create-only and always disabled.writes
oxygen workflows initCreate a local editable workflow graph. Use --format recipe only for the legacy durable-recipe authoring path.
oxygen workflows lintCompile and lint a workflow file without saving it.
oxygen workflows listList workflow automations.
oxygen workflows mcp disableUnpublish a workflow's MCP tool. The workflow stays active and callable via oxygen workflows call.writes
oxygen workflows mcp enablePublish an active workflow as a callable MCP tool so any MCP client can run it. The published tool appears to MCP clients as oxygen_workflow_<slug>.writes
oxygen workflows mcp listList workflows currently published as MCP tools.
oxygen workflows renameRename a workflow automation's display name only — its id and slug are unchanged, and the next workflows apply from source overwrites the name.writes
oxygen workflows resumeApprove or reject a paused mid-run workflow approval, resuming the run.writes
oxygen workflows retryPreview retrying a failed run from its first failed step. Completed steps stay preserved; ambiguous external writes are refused.paid writes
oxygen workflows revisionsPublished version history for one workflow, newest first — every save cuts a revision, and this is how you find the one to go back to.
oxygen workflows revisions restoreRe-publish an earlier version as the newest one.paid writes
oxygen workflows runGet one workflow run, including waiting and awaiting_approval pause state.writes
oxygen workflows runsList workflow runs.
oxygen workflows schemaPrint workflow JSON schemas.
oxygen workflows tagReplace a workflow's workspace tags (Tags primitive; "" clears).writes
oxygen workflows tailPoll until a workflow finishes or parks in waiting/awaiting_approval; clock waits resume automatically.
oxygen workflows templates applyDeprecated alias for oxygen blueprints apply. Creates a disabled workflow (plus its tables, columns, and prompts) from a blueprint.paid writes deprecated
oxygen workflows templates describeDeprecated alias for oxygen blueprints describe.deprecated
oxygen workflows templates preflightDeprecated alias for oxygen blueprints preflight. Validates inputs and previews effects without running.paid deprecated
oxygen workflows templates runRemoved: returns a typed 410 deprecation. Use oxygen blueprints apply <slug> then oxygen workflows call <workflow>.paid writes deprecated
oxygen workflows templates searchDeprecated alias for oxygen blueprints list. Searches Oxygen blueprints (seed templates plus saved blueprints).deprecated
oxygen workflows webhooks deliveriesList workflow webhook deliveries: what arrived, whether it verified, and the run it started.

On this page