> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI reference

> Commands, arguments, and options generated from the OneShot GTM CLI.

Run these commands with `bun run cli --` from the GTM checkout, or with `oneshot-gtm` after linking the CLI. The CLI is not published to npm.

Options below come from Commander. Runtime-dependent defaults are described in the help text. Use `--help` on any command for local help.

## oneshot-gtm

Open-source GTM agent for technical founders. Pay-per-result. Signed receipts.<br />The CLI is a thin headless layer; ad-hoc target discovery + review + send happens in the dashboard (oneshot-gtm ui).

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm init

First-run setup wizard

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm doctor

Check setup health

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --json                  | output as JSON                                      | —       | No       | doctor      |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm ui

Open the local dashboard at `http://127.0.0.1:<port>`

### Options

| Flag                    | Description                                                                              | Default        | Required | Defined on  |
| ----------------------- | ---------------------------------------------------------------------------------------- | -------------- | -------- | ----------- |
| --port \<n>             | port for the API server (default: the workspace's registered port; 3030 for \`default\`) | —              | No       | ui          |
| --no-browser            | do not auto-open the browser                                                             | true (enabled) | No       | ui          |
| --dev                   | use vite dev server (5173) + API server                                                  | false          | No       | ui          |
| -V, --version           | output the version number                                                                | —              | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                      | —              | No       | oneshot-gtm |

## oneshot-gtm demo

Seed and run a self-contained demo install (for screenshots and video)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm demo seed

Build a populated demo ledger, config and fixtures

### Options

| Flag                    | Description                                           | Default                | Required | Defined on  |
| ----------------------- | ----------------------------------------------------- | ---------------------- | -------- | ----------- |
| --home \<dir>           | where to build the demo install                       | "\~/.oneshot-gtm-demo" | No       | seed        |
| --now \<iso>            | anchor every timestamp to this instant (default: now) | —                      | No       | seed        |
| --force                 | overwrite a non-empty directory                       | false                  | No       | seed        |
| -V, --version           | output the version number                             | —                      | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)   | —                      | No       | oneshot-gtm |

## oneshot-gtm demo ui

Open the dashboard against the demo install

### Options

| Flag                    | Description                                         | Default                | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ---------------------- | -------- | ----------- |
| --home \<dir>           | the demo install to open                            | "\~/.oneshot-gtm-demo" | No       | ui          |
| --port \<n>             | port for the API server (default 3030)              | 3030                   | No       | ui          |
| --no-browser            | do not auto-open the browser                        | true (enabled)         | No       | ui          |
| --dev                   | use vite dev server (5173) + API server             | false                  | No       | ui          |
| -V, --version           | output the version number                           | —                      | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —                      | No       | oneshot-gtm |

## oneshot-gtm demo reset

Delete a seeded demo install

### Options

| Flag                    | Description                                         | Default                | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ---------------------- | -------- | ----------- |
| --home \<dir>           | the demo install to remove                          | "\~/.oneshot-gtm-demo" | No       | reset       |
| -V, --version           | output the version number                           | —                      | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —                      | No       | oneshot-gtm |

## oneshot-gtm workspace

Named isolated installs — one per product you're selling

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace list

Show every workspace, the current and the default

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --json                  | output as JSON                                      | —       | No       | list        |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace create

Create an empty workspace (then: --workspace \<name> init)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| name     | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace use

Make a workspace the default for runs without --workspace

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| name     | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace current

Print the active workspace name and home

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace path

Print a workspace's home dir (for ONESHOT\_GTM\_HOME=\$(…) scripting)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| name     | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm workspace remove

Forget a workspace (files are left in place)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| name     | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config

Configure providers and profile

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config llm

Pick LLM provider and model

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config founder

Set founder name, email, product one-liner

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config keys

Set or update API keys (LLM + OneShot wallet + X/Twitter) — saved chmod 600 to the workspace's .env

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config telemetry

Enable or disable opt-out telemetry (on|off)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| state    | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config x-engine

Show or switch the x-reposters data provider (xapi = first-party X API, twitterapiio = \~55x cheaper third-party)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| engine   | No       |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm config spend-ceiling

Show or set the install-wide daily USD spend ceiling (halts automated finder/drain runs once reached; 'off' clears it)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| amount   | No       |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm gmail

Gmail / Google Workspace send path (alternate email provider)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm gmail auth

Authorize Gmail via OAuth and store the refresh token (chmod 600, workspace .env)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm gmail placement

Send one real email between two authorized mailboxes and report inbox vs spam vs tab

### Options

| Flag                    | Description                                                  | Default | Required | Defined on  |
| ----------------------- | ------------------------------------------------------------ | ------- | -------- | ----------- |
| --from \<identityId>    | sending identity (default: first Gmail identity)             | —       | No       | placement   |
| --to \<identityId>      | receiving identity (default: first other Gmail identity)     | —       | No       | placement   |
| --play \<name>          | replay this play's most recent real email as the canary body | —       | No       | placement   |
| -y, --yes               | skip the send confirmation                                   | —       | No       | placement   |
| -V, --version           | output the version number                                    | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)          | —       | No       | oneshot-gtm |

## oneshot-gtm smartlead

Smartlead send path (send-only; replies stay in Smartlead's UI)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm smartlead connect

Store the Smartlead API key and add its mailboxes to the rotation pool

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm identities

Manage OneShot sending identities (domains + mailboxes) in the rotation pool

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm identities list

Show the rotation pool and the wallet's provisioned domain pool

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --json                  | output as JSON                                      | —       | No       | list        |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm identities add

Add an OneShot sending identity (wallet-owned domain + mailbox) to the pool

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm identities remove

Remove an identity from the pool (e.g. oneshot:[sales@acme.com](mailto:sales@acme.com))

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| id       | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm domains

Manage the wallet's provisioned OneShot sending-domain pool

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm domains list

Show provisioned domains with pool status, warmth, and daily usage

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --json                  | output as JSON                                      | —       | No       | list        |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm domains resume

Resume a paused sending domain (e.g. oneshotagents.com)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| domain   | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm domains pause

Pause a sending domain (stop sending from it)

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| domain   | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm find

Scheduled discovery (daemon + drain). Ad-hoc runs live in the dashboard.

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm find import

Import a CSV cohort through admission, ICP filtering, and queue dedupe

### Options

| Flag                    | Description                                                                | Default | Required | Defined on  |
| ----------------------- | -------------------------------------------------------------------------- | ------- | -------- | ----------- |
| --csv \<file>           | CSV file to import                                                         | —       | Yes      | import      |
| --play \<name>          | play to enqueue imported prospects into                                    | —       | Yes      | import      |
| --map \<column=field>   | override a header mapping (field: email, name, company, title); repeatable | \[]     | No       | import      |
| --dry-run               | print mapping and row count without ICP checks or enqueueing               | false   | No       | import      |
| --fail-on-empty         | exit 2 when zero rows are imported                                         | false   | No       | import      |
| --json                  | emit \{imported, skipped, errors\[]}                                       | —       | No       | import      |
| -V, --version           | output the version number                                                  | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                        | —       | No       | oneshot-gtm |

## oneshot-gtm find watch

Daemon: continuously poll registered triggers and enqueue new candidates

### Options

| Flag                    | Description                                                                                             | Default | Required | Defined on  |
| ----------------------- | ------------------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
| --once                  | run all due triggers once and exit (cron-friendly)                                                      | false   | No       | watch       |
| --quiet                 | log summary only, not per-trigger details                                                               | false   | No       | watch       |
| --json                  | output as JSON (with --once)                                                                            | —       | No       | watch       |
| --ignore-approval-rate  | run due finders even when their trailing approval rate is below threshold                               | false   | No       | watch       |
| --install-service       | print a launchd plist (macOS) / systemd user unit (Linux) that runs this daemon; doesn't start watching | false   | No       | watch       |
| --write                 | with --install-service: write the file to the platform-conventional path instead of stdout              | false   | No       | watch       |
| --fail-on-empty         | with --once: exit 2 (not 0) when the run queued no candidates, so cron can spot a dry run               | false   | No       | watch       |
| -V, --version           | output the version number                                                                               | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                                     | —       | No       | oneshot-gtm |

## oneshot-gtm find drain

Pull approved rows for a play and run the existing motion play on them

### Arguments

| Argument | Required | Description | Default |
| -------- | -------- | ----------- | ------- |
| play     | Yes      |             | —       |

### Options

| Flag                    | Description                                                             | Default | Required | Defined on  |
| ----------------------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
| --limit \<n>            | max approved rows to drain (default 10)                                 | —       | No       | drain       |
| --sender-cohort \<tag>  | REQUIRED for accelerator-batch (your cohort tag)                        | —       | No       | drain       |
| --offer \<text>         | free-for-cohort offer text (accelerator-batch only)                     | —       | No       | drain       |
| --dry-run               | preview drain; don't actually send                                      | false   | No       | drain       |
| --fail-on-empty         | exit 2 (not 0) when no approved rows were drained; 1 if any row errored | false   | No       | drain       |
| --json                  | output as JSON                                                          | —       | No       | drain       |
| -V, --version           | output the version number                                               | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                     | —       | No       | oneshot-gtm |

## oneshot-gtm find enrich-linkedin

Backfill missing LinkedIn URLs onto existing prospects (\~\$0.01 each)

### Options

| Flag                    | Description                                         | Default | Required | Defined on      |
| ----------------------- | --------------------------------------------------- | ------- | -------- | --------------- |
| --limit \<n>            | max prospects to search (default 500)               | 500     | No       | enrich-linkedin |
| --play \<name>          | only prospects sourced from this play               | —       | No       | enrich-linkedin |
| --concurrency \<n>      | parallel lookups (default 4)                        | —       | No       | enrich-linkedin |
| --skip-handles          | skip names that don't look like a real person       | false   | No       | enrich-linkedin |
| --dry-run               | list candidates and estimated cost; search nothing  | false   | No       | enrich-linkedin |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm     |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm     |

## oneshot-gtm find research-prospects

Backfill research dossiers onto existing prospects (\~\$0.05 each)

### Options

| Flag                    | Description                                                                    | Default | Required | Defined on         |
| ----------------------- | ------------------------------------------------------------------------------ | ------- | -------- | ------------------ |
| --limit \<n>            | max prospects to research (default 250)                                        | 250     | No       | research-prospects |
| --scope \<list>         | comma-separated: active,replied,unjudged,all (default active,replied,unjudged) | —       | No       | research-prospects |
| --concurrency \<n>      | parallel research calls (default 3)                                            | —       | No       | research-prospects |
| --refresh               | re-research prospects that already have a dossier                              | false   | No       | research-prospects |
| --id \<n>               | research one prospect by id, ignoring scope and dossier state                  | —       | No       | research-prospects |
| --max-cost-usd \<n>     | stop once this much has been billed this run                                   | —       | No       | research-prospects |
| --dry-run               | list candidates and estimated cost; research nothing                           | false   | No       | research-prospects |
| -V, --version           | output the version number                                                      | —       | No       | oneshot-gtm        |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                            | —       | No       | oneshot-gtm        |

## oneshot-gtm find research-products

Backfill product-aware dossiers onto live prospects and pending review rows

### Options

| Flag                    | Description                                                                      | Default        | Required | Defined on        |
| ----------------------- | -------------------------------------------------------------------------------- | -------------- | -------- | ----------------- |
| --limit \<n>            | max combined prospects and queue rows                                            | 250            | No       | research-products |
| --scope \<list>         | comma-separated: active,replied,unjudged,all (default active,replied,unjudged)   | —              | No       | research-products |
| --concurrency \<n>      | parallel research calls (default 3)                                              | —              | No       | research-products |
| --max-cost-usd \<n>     | stop starting calls after this spend target (default \$5; one call may cross it) | 5              | No       | research-products |
| --no-cost-limit         | run the full backfill without a spend ceiling                                    | true (enabled) | No       | research-products |
| --first-party-only      | skip external research and retain first-party evidence only                      | —              | No       | research-products |
| --refresh               | refresh rows that already have product research                                  | false          | No       | research-products |
| --no-include-pending    | exclude pending queue rows                                                       | true (enabled) | No       | research-products |
| --dry-run               | list candidates and estimated coverage; research nothing                         | false          | No       | research-products |
| -V, --version           | output the version number                                                        | —              | No       | oneshot-gtm       |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                              | —              | No       | oneshot-gtm       |

## oneshot-gtm find score-prospects

Backfill shadow-mode priority scores from stored payloads (free, resumable, no network)

### Options

| Flag                    | Description                                                                        | Default | Required | Defined on      |
| ----------------------- | ---------------------------------------------------------------------------------- | ------- | -------- | --------------- |
| --scope \<play\|all>    | score only this play's rows (default all)                                          | —       | No       | score-prospects |
| --limit \<n>            | max rows to score this run                                                         | —       | No       | score-prospects |
| --refresh               | re-score rows that already carry a current-version score                           | false   | No       | score-prospects |
| --dry-run               | report score distributions; write nothing                                          | false   | No       | score-prospects |
| --report                | print the per-finder shadow report (score buckets + human approval rate)           | false   | No       | score-prospects |
| --all-statuses          | widen from pending/approved to every row (sent/rejected/expired) — evaluation only | false   | No       | score-prospects |
| -V, --version           | output the version number                                                          | —       | No       | oneshot-gtm     |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                | —       | No       | oneshot-gtm     |

## oneshot-gtm find calibrate

Readiness-gated outcome calibration for priority scores (shadow only; no --force by design)

### Options

| Flag                    | Description                                             | Default | Required | Defined on  |
| ----------------------- | ------------------------------------------------------- | ------- | -------- | ----------- |
| --fit                   | fit finders that meet the floors and write the artifact | false   | No       | calibrate   |
| -V, --version           | output the version number                               | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)     | —       | No       | oneshot-gtm |

## oneshot-gtm cadence

Multi-touch sequence engine for in-flight prospects

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm cadence advance

Poll inbound for replies, then execute due follow-up steps for active cadences

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --dry-run               | preview which steps would fire without sending      | false   | No       | advance     |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm motion

Run a named GTM play (CLI-only plays; the rest live in /run)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm motion post-funding

Trigger play: prospect's company recently raised (send day 3+, not day 0)

### Options

| Flag                    | Description                                         | Default | Required | Defined on   |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ------------ |
| -t, --target \<file>    | JSON file with array of post-funding targets        | —       | Yes      | post-funding |
| --dry-run               | draft only, do not send                             | false   | No       | post-funding |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm  |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm  |

## oneshot-gtm motion concierge

Autonomous voice onboarding for new signups (with optional pre/post emails)

### Options

| Flag                    | Description                                                        | Default | Required | Defined on  |
| ----------------------- | ------------------------------------------------------------------ | ------- | -------- | ----------- |
| -t, --target \<file>    | JSON file: \{ name, email, phone, signupContext?, callWindow? }\[] | —       | Yes      | concierge   |
| --skip-prep             | skip the pre-call email                                            | false   | No       | concierge   |
| --skip-summary          | skip the post-call summary email                                   | false   | No       | concierge   |
| --dry-run               | preview without calling or sending                                 | false   | No       | concierge   |
| -V, --version           | output the version number                                          | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                | —       | No       | oneshot-gtm |

## oneshot-gtm motion demo-no-show

Same-day SMS + email recovery for demo no-shows; cadence engine handles day-3 follow-up

### Options

| Flag                    | Description                                                                                | Default | Required | Defined on   |
| ----------------------- | ------------------------------------------------------------------------------------------ | ------- | -------- | ------------ |
| -t, --target \<file>    | JSON file: \{ name, email, phone?, company, missedAt, rescheduleLink, whatTheyWanted? }\[] | —       | Yes      | demo-no-show |
| --skip-sms              | skip the same-day SMS even if phone is present                                             | false   | No       | demo-no-show |
| --dry-run               | preview without sending                                                                    | false   | No       | demo-no-show |
| -V, --version           | output the version number                                                                  | —       | No       | oneshot-gtm  |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                        | —       | No       | oneshot-gtm  |

## oneshot-gtm motion competitor-switch

Migration-honesty pitch when prospect uses a known competitor (with optional G2/BuiltWith scrape)

### Options

| Flag                    | Description                                                                                | Default | Required | Defined on        |
| ----------------------- | ------------------------------------------------------------------------------------------ | ------- | -------- | ----------------- |
| -t, --target \<file>    | JSON file: \{ name, email, company, competitor, evidenceUrl?, evidenceText?, yourEdge }\[] | —       | Yes      | competitor-switch |
| --skip-browser          | skip the browser-automation evidence scrape                                                | false   | No       | competitor-switch |
| --dry-run               | preview without sending                                                                    | false   | No       | competitor-switch |
| -V, --version           | output the version number                                                                  | —       | No       | oneshot-gtm       |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                        | —       | No       | oneshot-gtm       |

## oneshot-gtm motion hiring-signal

Trigger play: prospect's company hiring for a role your product compresses ramp time on

### Options

| Flag                    | Description                                                               | Default | Required | Defined on    |
| ----------------------- | ------------------------------------------------------------------------- | ------- | -------- | ------------- |
| -t, --target \<file>    | JSON file: \{ name, email, company, jobTitle, jobPostUrl?, yourClaim }\[] | —       | Yes      | hiring-signal |
| --skip-scrape           | skip the web-search/read of the job post                                  | false   | No       | hiring-signal |
| --dry-run               | preview without sending                                                   | false   | No       | hiring-signal |
| -V, --version           | output the version number                                                 | —       | No       | oneshot-gtm   |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                       | —       | No       | oneshot-gtm   |

## oneshot-gtm motion podcast-guest

Reference a SPECIFIC quote from a recent podcast appearance; one-touch

### Options

| Flag                    | Description                                                                        | Default | Required | Defined on    |
| ----------------------- | ---------------------------------------------------------------------------------- | ------- | -------- | ------------- |
| -t, --target \<file>    | JSON file: \{ name, email, company, podcast, episodeTitle, hookQuote, bridge? }\[] | —       | Yes      | podcast-guest |
| --skip-search           | skip the web-search dossier enrichment                                             | false   | No       | podcast-guest |
| --dry-run               | preview without sending                                                            | false   | No       | podcast-guest |
| -V, --version           | output the version number                                                          | —       | No       | oneshot-gtm   |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                                | —       | No       | oneshot-gtm   |

## oneshot-gtm motion discovery-interview

Main-street ask: ten minutes on how the owner-operator does this today. No pitch, no link, no price.

### Options

| Flag                    | Description                                                  | Default | Required | Defined on          |
| ----------------------- | ------------------------------------------------------------ | ------- | -------- | ------------------- |
| -t, --target \<file>    | JSON file: \{ name, email, company, businessType, topic }\[] | —       | Yes      | discovery-interview |
| --dry-run               | draft only, do not send                                      | false   | No       | discovery-interview |
| -V, --version           | output the version number                                    | —       | No       | oneshot-gtm         |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)          | —       | No       | oneshot-gtm         |

## oneshot-gtm motion free-pilot

Main-street close: set it up free for them, they keep it if it works

### Options

| Flag                    | Description                                                     | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------------------- | ------- | -------- | ----------- |
| -t, --target \<file>    | JSON file: \{ name, email, company, businessType, yourEdge }\[] | —       | Yes      | free-pilot  |
| --dry-run               | draft only, do not send                                         | false   | No       | free-pilot  |
| -V, --version           | output the version number                                       | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)             | —       | No       | oneshot-gtm |

## oneshot-gtm motion breakup-revive

Pattern-interrupt revive for cold leads in the ledger (60-90 days quiet)

### Options

| Flag                    | Description                                                      | Default | Required | Defined on     |
| ----------------------- | ---------------------------------------------------------------- | ------- | -------- | -------------- |
| --min-days \<n>         | min days since last activity (default 60)                        | —       | No       | breakup-revive |
| --max-days \<n>         | max days since last activity (default 90)                        | —       | No       | breakup-revive |
| --limit \<n>            | hard cap on prospects to revive (default 25)                     | —       | No       | breakup-revive |
| --value-drop \<text>    | optional value drop to lead with (e.g. a new feature, benchmark) | —       | No       | breakup-revive |
| --dry-run               | preview without sending                                          | false   | No       | breakup-revive |
| -V, --version           | output the version number                                        | —       | No       | oneshot-gtm    |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)              | —       | No       | oneshot-gtm    |

## oneshot-gtm discover

Find your people, prove they want it

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm discover icp

ICP discovery loop

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm discover icp interview-prep

Generate a Mom Test + JTBD interview script. Hypothesis can be an arg, a file, stdin, or interactive prompt.

### Arguments

| Argument   | Required | Description | Default |
| ---------- | -------- | ----------- | ------- |
| hypothesis | No       |             | —       |

### Options

| Flag                    | Description                                                     | Default | Required | Defined on     |
| ----------------------- | --------------------------------------------------------------- | ------- | -------- | -------------- |
| -o, --out \<path>       | write to file instead of stdout                                 | —       | No       | interview-prep |
| -f, --from-file \<path> | read hypothesis from a file (use this for long ones)            | —       | No       | interview-prep |
| --stdin                 | read hypothesis from stdin (e.g. echo '...' \| oneshot-gtm ...) | —       | No       | interview-prep |
| -V, --version           | output the version number                                       | —       | No       | oneshot-gtm    |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)             | —       | No       | oneshot-gtm    |

## oneshot-gtm discover icp synthesize

Extract JTBD, pain quotes, switch moment, ICP language from interview transcripts

### Arguments

| Argument      | Required | Description | Default |
| ------------- | -------- | ----------- | ------- |
| transcriptDir | Yes      |             | —       |

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm discover pmf

Product-market-fit measurement and classification

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm discover pmf classify

Sequoia Arc + Balfour Four Fits classifier (6 questions, no agent calls)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm discover pmf survey

Deploy a Superhuman 5-question PMF survey via SDK Build + Email

### Options

| Flag                          | Description                                           | Default | Required | Defined on  |
| ----------------------------- | ----------------------------------------------------- | ------- | -------- | ----------- |
| -c, --cohort \<file>          | file with cohort emails (one per line, or JSON array) | —       | Yes      | survey      |
| --product-name \<name>        | product name for the landing page                     | —       | No       | survey      |
| --product-description \<text> | 10-200 char description for the landing page          | —       | No       | survey      |
| --custom-survey-url \<url>    | skip the SDK Build step and use this URL instead      | —       | No       | survey      |
| --primary-color \<hex>        | brand primary color (e.g. #FF5733)                    | —       | No       | survey      |
| --dry-run                     | draft only; do not build site or send                 | false   | No       | survey      |
| -V, --version                 | output the version number                             | —       | No       | oneshot-gtm |
| -w, --workspace \<name>       | run against a named workspace (see: workspace list)   | —       | No       | oneshot-gtm |

## oneshot-gtm discover pmf survey-collect

Collect inbound replies and synthesize a Sean Ellis report

### Options

| Flag                    | Description                                         | Default | Required | Defined on     |
| ----------------------- | --------------------------------------------------- | ------- | -------- | -------------- |
| -s, --since-days \<n>   | collect inbound from the last N days                | —       | No       | survey-collect |
| -o, --out \<path>       | write analysis markdown to this file                | —       | No       | survey-collect |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm    |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm    |

## oneshot-gtm measure

Compare local GTM performance

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm measure benchmark

Compare this install with the opt-in telemetry cohort

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| --json                  | output as JSON                                      | —       | No       | benchmark   |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm intel

LLM-powered intelligence layer

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm intel advise

Interactive founder coach (loops with conversation memory; exit with 'exit' or ctrl-c)

### Options

| Flag                    | Description                                                         | Default | Required | Defined on  |
| ----------------------- | ------------------------------------------------------------------- | ------- | -------- | ----------- |
| --once                  | ask one question and exit (for scripting); default loops until exit | false   | No       | advise      |
| -V, --version           | output the version number                                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list)                 | —       | No       | oneshot-gtm |

## oneshot-gtm intel weekly-review

Generate a paste-able Monday narrative review

### Options

| Flag                    | Description                                         | Default | Required | Defined on    |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ------------- |
| -o, --out \<path>       | write to file instead of stdout                     | —       | No       | weekly-review |
| -c, --context \<text>   | extra free-text context to include                  | —       | No       | weekly-review |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm   |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm   |

## oneshot-gtm intel triage-replies

Classify and draft responses for inbound replies

### Options

| Flag                    | Description                                         | Default | Required | Defined on     |
| ----------------------- | --------------------------------------------------- | ------- | -------- | -------------- |
| -s, --since-days \<n>   | only triage replies from the last N days            | —       | No       | triage-replies |
| -l, --limit \<n>        | max replies to process                              | —       | No       | triage-replies |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm    |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm    |

## oneshot-gtm intel personalize

Generate one anti-slop founder-to-founder opener for a single prospect

### Options

| Flag                          | Description                                            | Default | Required | Defined on  |
| ----------------------------- | ------------------------------------------------------ | ------- | -------- | ----------- |
| --prospect-name \<name>       | prospect's first or full name                          | —       | Yes      | personalize |
| --prospect-company \<company> | prospect's company                                     | —       | Yes      | personalize |
| --trigger \<text>             | trigger context (Show HN post, funding, podcast, etc.) | —       | Yes      | personalize |
| --dossier \<text>             | free-text dossier to ground the opener                 | —       | No       | personalize |
| -V, --version                 | output the version number                              | —       | No       | oneshot-gtm |
| -w, --workspace \<name>       | run against a named workspace (see: workspace list)    | —       | No       | oneshot-gtm |

## oneshot-gtm handoff

PMF→scale graduation gates

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm handoff readiness

Six-signal scorecard: are you ready to systematize?

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm handoff templatize

Extract a reusable template from your top-converting hand-written emails (soft-gated)

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -i, --input \<file>     | JSON file: array of \{subject, body, outcome?}      | —       | Yes      | templatize  |
| --force                 | skip the 100-hand-sends pre-flight gate             | false   | No       | templatize  |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |

## oneshot-gtm handoff first-ae

Five-gate hire-readiness check from the Lemkin/Blond/Kazanjy canon

### Options

| Flag                    | Description                                         | Default | Required | Defined on  |
| ----------------------- | --------------------------------------------------- | ------- | -------- | ----------- |
| -V, --version           | output the version number                           | —       | No       | oneshot-gtm |
| -w, --workspace \<name> | run against a named workspace (see: workspace list) | —       | No       | oneshot-gtm |
