0The mental model
Two things in this app are both called by familiar names. Untangle them once and the rest is easy.
Table the data
A spreadsheet that lives in Archon: rows (one company/person each) ×
columns (enrichment steps). You build it and fill it in. The inherited-mess
table with a 3 badge = a table with 3 rows.
Campaign the robot
A full automated run driven by the gtm-orchestrator engine: find leads → enrich →
segment → write copy → launch. It pauses at checkpoints for your approval. The card
showing 04d-enrich-contact · IN-PROGRESS · $0.00 is a campaign mid-flight.
A column is a step, and its type decides what runs when you hit Run:
inputai tooltransform cloud
- input — data you typed or imported (company name, domain).
- ai — runs an LLM prompt per row (Claude / OpenAI / OpenRouter).
- tool — calls an enrichment API per row (find email, scrape site, Apollo…).
- transform — cheap local cleanup (first name, domain-from-email).
- cloud — offloads heavy work to the Trigger.dev cloud.
Every cell (row × column) goes pending → running → complete and accrues a
tiny cost. The dollar figure you see is the running total.
1The window, mapped
Three regions. Left = what you have. Center = what you're looking at. Right = how you drive.
↑ a Campaign card (the engine). Click a Table on the left to edit the grid instead.
Opus 4.8 (1M) · Claude Max
~/companion/…
2The one golden rule
Pick a client, then click a table — before you open the Terminal.
The table you select is what the Terminal acts on. When it
launches, Archon hands Claude Code the database path and the active table id
(ARCHON_DB + ARCHON_WORKFLOW), so archon context already
points at the right table. Switch tables in the UI and the Terminal re-attaches to the new one.
No table selected → the agent has nothing to read or write. So the first move, every session:
Clients ▾ → a Table.
AThe Terminal — how we drive Archon
The Terminal tab is not a bash prompt. It launches the Claude Code CLI
(claude) directly, running inside the gtm-orchestrator checkout and wired to the
table you have open. You talk to it in plain English; it does the work. This is the default way to
use Archon.
What's wired up for you
- Your selected table — the active table id is passed in (
ARCHON_WORKFLOW), soarchon contextalready targets it. Switch tables in the UI → the Terminal re-attaches. - The same database the app uses (
ARCHON_DB) — anything the agent writes shows up live in the center grid, and vice-versa. - The
archonCLI on PATH — the agent's tool for reading and writing the table, running enrichment, and clearing gates. Runarchon helpto see every verb. - The orchestrator playbook — the checkout's own
CLAUDE.md, skills, and slash-commands are loaded, so the full GTM workflow is available, not just table edits.
archon commands yourself —
you describe the outcome and Claude Code picks the calls, shows each one, and runs them. The verbs
below are what it uses under the hood (and what you'll see scroll past).The enrichment flow
However you phrase it, a run walks the same path. Either start from a recipe (columns pre-built) or have Claude design them with the plan flow, then run and clear any gate:
archon context— read the table: name, columns, row count, a sample. Always first.archon table create … --recipe company-enrichmentorarchon plan context→plan propose --json→plan apply— get the enrichment columns in place (the plan flow is the same engine as the old "Build columns" button).archon run --scope all --now— execute every cell.--scope sampletries a few first;estimateprices it before you commit.archon gate approve <file> --signature YOU— clear any checkpoint the engine raised.
The full archon surface
From archon help — the real verb list:
archon context # table, columns, row count, sample rows archon clients | client create --name N archon tables | table create --client <id> --name N [--recipe <id>] archon recipe list # company-enrichment, icp-scoring, competitor-scan, hiring-signal… archon rows list [--limit N] | rows read <rowId> | rows add --data '{"col":"v"}' archon cell write <rowId> <colId> <value> archon column add --name N --type input|function|tool [--tool id --params '{"p":"colId"}'] archon plan context | plan propose --json '<spec>' | plan apply <draftId> # design ai/tool/waterfall columns archon run [--scope all|pending|sample] [--n N] [--now] # the Run button archon estimate [--scope …] # pre-run cost in cents archon expand --source-col <id> --target <wf> --field-map '{item:col}' # JSON array → one row each archon tool list | tool add <file.json> | tool test <id> --params '{…}' archon gate list | gate show <file> | gate approve/reject <file> --signature YOU
column add is for simple
input/function/tool
steps. For ai or multi-provider waterfall
columns, use a --recipe or the plan flow — that's what wires the prompt,
model, and inputs correctly.BEnd-to-end: enrich inherited-mess
The table has 3 rows and one Company column. Goal: add a domain, a
one-line description, and a decision-maker email, then run it. You select the table in the UI,
open the Terminal, and say what you want — here's the conversation that follows:
> enrich this table: add each company's domain, a one-line description, and a decision-maker email — then run all 3 rows Reading the table first. ⏺ archon context ✓ "inherited-mess" · 3 rows · columns: Company I'll design the columns with the plan flow, then apply and run. ⏺ archon plan context # entity fields + the real tool ids ⏺ archon plan propose --json '{ "columns": [ … ] }' ✓ draft d1a2 — Domain (tool), Description (ai), Email (waterfall) · est $0.07 ⏺ archon plan apply d1a2 # instantiates the columns (expands the waterfall) Columns are in. Running every row now. ⏺ archon run --scope all --now ✓ 3 rows · 9 cells · complete · $0.07 Done. The engine raised a checkpoint for the contact stage — approve it? > yes, sign it Mitchell ⏺ archon gate approve .checkpoints/04d-enrich-contact.json --signature Mitchell ✓ gate cleared
You typed two English sentences; Claude Code did the rest. The grid in the center fills in live as each cell completes.
archon table create … --recipe company-enrichment then archon run.CThe Companion — the old panel legacy
The Companion is the same agent in a graphical panel instead of the Terminal. It still works, but we're standardizing on the Terminal — so reach for it only if you specifically want the GUI affordances below.
What the panel adds over the Terminal:
- Model picker —
Opus 4.8 · 1M(default),Sonnet 4.6,Haiku 4.5. - Approval modes —
Auto(hands-off) ·Approve writes & exec·Approve everything. - Build columns button → a Plan Review card with checkboxes; Apply adds the
columns and auto-runs the first 10 rows. (Same
plan propose/applyengine the Terminal uses.) - Permission cards — Allow · Allow always · Deny · Deny + tell agent — plus a live % context and $ spent readout.
Everything here is reachable from the Terminal by just asking — which is why it's the default now.
DWhich surface to use
| You want to… | Use |
|---|---|
| Enrich a list, design columns, run, clear gates — anything | Terminal — the default |
| The orchestrator's skills / slash-commands & full GTM workflow | Terminal (it's the gtm-orchestrator checkout) |
| Tweak one value, sort, or eyeball data | The center grid directly |
| Approve a running campaign's gate visually | Campaigns view → checkpoint card |
| See what feeds what before running | DAG tab |
| A GUI plan-review card / model & approval-mode dropdowns | Companion (legacy) |
ECheat sheet
Say it in the Terminal
- "What's in this table?"
- "Design columns to enrich these companies and run them."
- "Build this from the company-enrichment recipe, then run."
- "Find a [title] email for each row."
- "Score each row against our ICP and explain."
- "Estimate the cost before running."
- "Drop rows missing a website, then run the rest."
- "Approve the open gate, sign it [name]."
archon calls it runs for you
archon help lists them all — you'll see these scroll past:
archon context | inspect active table |
archon recipe list | starter column chains |
archon table create --recipe … | new table, columns pre-built |
archon plan propose/apply | design ai/tool/waterfall columns |
archon estimate | price a run first |
archon run --scope all --now | enrich everything |
archon gate approve … | clear a checkpoint |
archon acts on; the grid updates live;
every cell costs a little and estimate prices it before you commit.