Skip to main content
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. 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.
Use the dashboard (oneshot-gtm ui) for ad-hoc discovery, review and sending.

Options

oneshot-gtm direct-mail

Review and approve individual physical mailpieces

Options

oneshot-gtm direct-mail list

List direct-mail pieces

Options

oneshot-gtm direct-mail upload

Upload artwork for a mailpiece

Arguments

Options

oneshot-gtm direct-mail preview

Prepare a configured direct-mail cadence step; JSON contains to, from, artwork asset IDs

Arguments

Options

oneshot-gtm direct-mail refresh

Refresh a mailpiece’s quote, or its order status once submitted

Arguments

Options

oneshot-gtm direct-mail approve

Approve a reviewed mailpiece and its price

Arguments

Options

oneshot-gtm direct-mail send

Send an approved mailpiece (paid)

Arguments

Options

oneshot-gtm direct-mail cancel

Cancel a mailpiece

Arguments

Options

oneshot-gtm direct-mail skip

Skip the pending letter and continue the cadence with its next step

Arguments

Options

oneshot-gtm init

First-run setup wizard

Options

oneshot-gtm doctor

Check setup health

Options

oneshot-gtm compact-receipts

Shrink the local data file by trimming old receipt payloads

Options

oneshot-gtm ui

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

Options

oneshot-gtm demo

Seed and run a self-contained demo install

Options

oneshot-gtm demo seed

Build a populated demo ledger, config and fixtures

Options

oneshot-gtm demo ui

Open the dashboard against the demo install

Options

oneshot-gtm demo reset

Delete a seeded demo install

Options

oneshot-gtm workspace

Named isolated installs, one per product you’re selling

Options

oneshot-gtm workspace list

Show every workspace, the current and the default

Options

oneshot-gtm workspace create

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

Arguments

Options

oneshot-gtm workspace use

Make a workspace the default for runs without —workspace

Arguments

Options

oneshot-gtm workspace current

Print the active workspace name and home

Options

oneshot-gtm workspace path

Print a workspace’s home dir (for ONESHOT_GTM_HOME=$(…) scripting)

Arguments

Options

oneshot-gtm workspace remove

Forget a workspace (files are left in place)

Arguments

Options

oneshot-gtm config

Configure providers and profile

Options

oneshot-gtm config llm

Pick LLM provider and model

Options

oneshot-gtm config founder

Set founder name, email, product one-liner

Options

oneshot-gtm config keys

Set or update API keys (LLM + OneShot wallet + X/Twitter). Saved to the workspace’s .env with chmod 600

Options

oneshot-gtm config telemetry

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

Arguments

Options

oneshot-gtm config x-engine

Show or switch the x-reposters data source (xapi or twitterapiio)

Arguments

Options

oneshot-gtm config linkedin-session

Connect your LinkedIn session to a OneShot browser profile so person research can read live profiles

Options

oneshot-gtm config slack-webhook

Show, set, or clear the Slack incoming-webhook URL for reply/bounce/daily-summary notifications

Arguments

Options

oneshot-gtm config voice

Show, draft (from your own writing), or clear the founder voice card every email draft writes in

Options

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

Options

oneshot-gtm config linkedin-invites

Show or set this workspace’s share of the LinkedIn account’s daily invite cap (positive integer per UTC day; ‘off’ clears it)

Arguments

Options

oneshot-gtm linkedin

LinkedIn outreach safety

Options

oneshot-gtm linkedin invites

List every LinkedIn invite sent, with the state GTM detects, to compare with LinkedIn. Read-only.

Options

oneshot-gtm linkedin import-touched

Record profiles already contacted on LinkedIn (CSV or JSON of profile URLs) so no invite goes to them; —from-ledgers copies the invites every workspace has sent. Sends nothing.

Arguments

Options

oneshot-gtm gmail

Gmail / Google Workspace send path (alternate email provider)

Options

oneshot-gtm gmail auth

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

Options

oneshot-gtm gmail placement

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

Options

oneshot-gtm smartlead

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

Options

oneshot-gtm smartlead connect

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

Options

oneshot-gtm sends

Check recent sends against their mailbox’s Sent folder (read-only)

Options

oneshot-gtm sends check

Count each Smartlead/Gmail send’s copies in Sent: expected 1, observed N (duplicates = provider retries)

Options

oneshot-gtm identities

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

Options

oneshot-gtm identities list

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

Options

oneshot-gtm identities add

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

Options

oneshot-gtm identities remove

Remove an identity from the pool (e.g. oneshot:[email protected])

Arguments

Options

oneshot-gtm identities send-via

How a Smartlead mailbox sends: provider (Smartlead API, default) or smtp (its own SMTP, one fixed Message-ID per email)

Arguments

Options

oneshot-gtm identities test-send

Send one test email through a Smartlead mailbox’s own SMTP (keyed, confirmed in Sent)

Arguments

Options

oneshot-gtm domains

Manage the wallet’s provisioned OneShot sending-domain pool

Options

oneshot-gtm domains list

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

Options

oneshot-gtm domains resume

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

Arguments

Options

oneshot-gtm domains pause

Pause a sending domain (stop sending from it)

Arguments

Options

oneshot-gtm find

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

Options

oneshot-gtm find import

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

Options

oneshot-gtm find watch

Daemon: continuously poll registered triggers and enqueue new candidates

Options

oneshot-gtm find drain

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

Arguments

Options

oneshot-gtm find enrich-linkedin

Backfill missing LinkedIn URLs onto existing prospects

Options

oneshot-gtm find research-prospects

Backfill person research onto existing prospects: current role, company facts, ICP re-judge

Options

oneshot-gtm find research-queue

Backfill person research onto live queue rows: current role from the LinkedIn history, company facts, ICP re-judge

Options

oneshot-gtm find rederive

Re-derive this workspace’s edge, ICP verdict and fit reason for rows moved in from another workspace (at most two small model calls per row; never changes status)

Options

oneshot-gtm find rejudge-github

Re-judge live github-stars queue rows on their public GitHub evidence (bio, site, own repos, profile README); no paid research

Options

oneshot-gtm find research-products

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

Options

oneshot-gtm find synthesize-angles

Backfill per-prospect angles (dossier + live GitHub + reply history → evidence-cited synthesis)

Options

oneshot-gtm find score-prospects

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

Options

oneshot-gtm find backfill-fit-reason

Backfill the row’s ICP-fit sentence onto pending/approved queue rows (free sources first; model spend capped)

Options

oneshot-gtm find calibrate

Calibrate priority scores against recorded outcomes. Runs only when enough outcomes exist.

Options

oneshot-gtm cadence

Manage follow-up sequences

Options

oneshot-gtm cadence advance

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

Options

oneshot-gtm motion

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

Options

oneshot-gtm motion post-funding

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

Options

oneshot-gtm motion concierge

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

Options

oneshot-gtm motion demo-no-show

Same-day SMS + email recovery for demo no-shows; a day-3 follow-up is scheduled

Options

oneshot-gtm motion competitor-switch

Migration-honesty pitch when prospect uses a known competitor (optionally collects public evidence)

Options

oneshot-gtm motion hiring-signal

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

Options

oneshot-gtm motion podcast-guest

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

Options

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

oneshot-gtm motion free-pilot

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

Options

oneshot-gtm motion breakup-revive

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

Options

oneshot-gtm discover

Find your people, prove they want it

Options

oneshot-gtm discover icp

ICP discovery loop

Options

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

Options

oneshot-gtm discover icp synthesize

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

Arguments

Options

oneshot-gtm discover pmf

Product-market-fit measurement and classification

Options

oneshot-gtm discover pmf classify

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

Options

oneshot-gtm discover pmf survey

Build a 5-question PMF survey page and email it to a cohort (paid).

Options

oneshot-gtm discover pmf survey-collect

Collect inbound replies and synthesize a Sean Ellis report

Options

oneshot-gtm measure

This workspace’s sends by play and LinkedIn funnel; compare with the cohort

Options

oneshot-gtm measure benchmark

Compare this install with the anonymous telemetry cohort (needs telemetry on)

Options

oneshot-gtm intel

LLM-powered intelligence layer

Options

oneshot-gtm intel advise

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

Options

oneshot-gtm intel weekly-review

Generate a paste-able Monday narrative review

Options

oneshot-gtm intel triage-replies

Classify and draft responses for inbound replies

Options

oneshot-gtm intel backfill-intent

Classify intent on older replies that have none. Labels only; never triggers follow-ups or opt-outs.

Options

oneshot-gtm intel personalize

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

Options

oneshot-gtm handoff

PMF→scale graduation gates

Options

oneshot-gtm handoff readiness

Six-signal scorecard: are you ready to systematize?

Options

oneshot-gtm handoff templatize

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

Options

oneshot-gtm handoff first-ae

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

Options