Your first session
Read what Home is telling you, connect the CLI, and create your first table without spending a credit.
Checkout drops you on /home. It is a standup, not a dashboard: what happened since you last looked, what is waiting on you, and everything your workspace has done.
Getting here ran sign-up → create organization → How did you hear about us? → Choose your plan → Try for 7 days → Stripe Checkout.
What the trial gives you
7 days and 20,000 credits, card on file. A bar sits at the top of every page while it runs: 12,400 of 20,000 trial credits left, then the date your card is charged (Starter starts Mar 14). Plan prices, included credits, and what each unit costs: pricing reference.
To stop before the charge, open Billing & credits (sidebar footer → Settings → /settings#/billing) or run oxygen billing cancel --json. The trial still runs to its last day, the card is never charged, and oxygen billing resume --json reverses it.
Reading Home
The headline sentence. On a new workspace: Nothing has gone out yet. Once sequences run it becomes the count that matters — Since yesterday Oxygen sent 240 emails. 6 people replied, 2 positively. — measured from your previous visit.
Needs you. Up to three chips under the headline, ordered by what it costs to ignore them: 1 sending inbox needs attention, 2 runs failed, 3 positive replies waiting on you. Each links to the screen that owns that queue. Zero-count rows are never drawn, so no chips means nothing is waiting.
Action timeline. One square per day; the header reads One square is one state-changing request. Four numbers above it: Actions, Current streak, Active days, Busiest day. Click a square and the Day recap lists that day's actions, each linking into Observability with its trace.
Same composition in the terminal, read-only and 0 credits:
oxygen home --jsonThe sidebar
| Group | Item | What it holds |
|---|---|---|
Home /home | The standup above. | |
| Data | CRM /crm | Companies, people, deals, and their timelines. |
| Data | Tables /tables | Working datasets — lists, enrichment, scoring. |
| Data | Unibox /unibox | Email, LinkedIn, and WhatsApp conversations in one inbox. |
| Action | Sequencer /sequencer | Outbound programs, sending accounts, analytics. |
| Action | Publishing /publishing | Scheduled posts and their engagement. |
| Action | Workflows /workflows | Deterministic multi-step automations. |
| External | Connections /connections | Provider accounts and API keys. |
| Knowledge | Tags /tags | Shared vocabulary across records, tables, and campaigns. |
| Knowledge | Observability /observability | Every run, its cost, and its provenance. |
Agents, Knowledge Graph, Recipes, and Approvals appear only once an organization turns on Beta features in Settings. Cmd-K opens a palette that jumps to any visible destination by name.
Where credits live
The sidebar footer holds the workspace switcher and a settings popover. Two entries there answer money questions: Billing & credits (/settings#/billing) for plan, top-ups, and cancellation, and Credit usage (/settings/credits) for where credits went — by feature, provider, and day. From the CLI, oxygen billing balance --json and oxygen billing usage --json.
Connect the CLI
Home's top bar has a CLI and MCP button (Home only — other pages give that space to their own actions). It opens the same setup block as the settings popover's CLI and MCP entry at /settings/cli.
npm install -g @oxygen-agent/cli
oxygen loginNeeds Node.js 22.22.0+ and npm 10.9.0+. oxygen login opens the browser and waits; check the confirmation code matches your terminal, then click Approve this terminal.
If the handoff never completes — no browser on that box, a network that blocks the wait — the terminal prints the manual path. On /settings/cli, click Create session and paste the oxygen login --token <token> line it shows into that terminal. The token is shown once.
Confirm you are connected, against the right workspace:
oxygen whoami --json
oxygen orgs list --json
oxygen orgs use <slug>A command that fails with cli_update_required means your CLI is older than the deployed API: run oxygen update and retry. oxygen status --json compares the two versions directly.
Using an MCP client instead of a terminal? The panel's MCP tab prints the endpoint and per-client steps; MCP setup has the full list.
A first action that costs nothing
Create a table and look at it.
Click Tables in the sidebar. An empty workspace opens the source picker straight away; otherwise click New table in the table rail (/tables/new). Pick Blank table: it creates a table named New table with one text column, Name, and opens the grid. Rename it in the breadcrumb. The grid's controls are New row, Import rows, Add column, and Export CSV.
The same thing from the terminal:
oxygen tables create "First list" \
--columns-json '[{"key":"company","label":"Company","dataType":"text"},{"key":"domain","label":"Domain","dataType":"text"}]' \
--json
oxygen tables list --json
oxygen tables preview <table-id-or-slug> --limit 10 --jsonThe create response carries a web_url. Open it and you are looking at the same grid.
Blank table and Import a CSV spend nothing. Every other card on that screen — the Total addressable market and Signals groups — runs a priced provider search, as do AI columns, enrichment columns, and sending. Those paths price the work first and wait for your approval: approvals, spend caps.