oneshot-gtm

MIT · Bun

Open source GTM agent

Your GTM tool wants you to send more. This one says not yet.

Most GTM tools assume you have product-market fit and optimize your sends. This one encodes the pre-PMF playbook instead, and soft-gates the scale moves until the signals earn them.

bunx oneshot-gtm-server

Dashboard, no clone. Bun required. The CLI is a git clone away.

rcpt_demo_00412signed
play_name
show-hn
call_type
email.send
settlement
USDC · base
value_tag
meeting booked
cost_usd$0.004

Every paid action prints one of these. The memo says why the call happened; the value tag is written back when the outcome lands.

  • 48 commands
  • 14 plays
  • 10 finders
  • 1,777 tests
  • Verified 2026-08-25

The receipt

Your real CAC, not a blended guess.

Every paid action settles per call in USDC on Base and returns a cryptographically signed receipt. The receipt carries a memo, the structured reasoning behind the call, and a goal id that groups a whole cadence’s spend.

When a reply or a closed deal lands, the value is tagged back onto the receipts that produced it. So the cost per meeting on the Measure page is attested and outcome-attributed. You can hand it to an investor.

What is in a receipt, and the CAC that falls out →

What a call costs

email.send
$0.004
email.verify
$0.008
web.search
$0.012
email.find
$0.020
enrich.profile
$0.050
research.person
$0.120

The real table out of the repo. Divide it into outcomes and CAC comes out in single dollars, which is the whole reason the receipts are worth signing.

Two surfaces

A terminal and a dashboard over one local ledger.

Both read and write the same SQLite file in your home directory. Nothing syncs anywhere. 48 commands on one side, 9 pages on the other, and no state in between them.

oneshot-gtm — the daily tick
oneshot-gtm find watch --once
scanned 31 · enqueued 3 · rejected 12 · $0.41
oneshot-gtm cadence advance
polled 4 inboxes · 2 replies · 1 bounce
3 follow-ups fired, 1 held (reply detected)
The Measure page: total spend $2.94, 44 sent, 8 replied, 2 won, and a CAC-by-play table built from signed receipts.
$ per reply, per meeting, per won.
The Receipts page: 147 signed receipts, most recent first, each with its play, call type, memo and cost.
Signed, most recent first.
The Today page: replies, sends and spend over seven days, above a live signal feed.
Signed, in ink.

The soft gates

It will tell you to stop.

Scaling a broken motion is the most documented way a startup dies, and every tool in this category is built to help you do it faster. So the scale moves here refuse by default.

handoff first-ae, handoff templatize and readiness all print a checklist and land on not yet until the signals earn the move. --force overrides, and it is your company.

handoff readiness — six-signal PMF to scale check

  • Sean Ellis 40%+ sustained for 2+ months?not yet
  • Inbound > outbound for the first time?trending
  • Same 3 discovery questions predict close?partial
  • Week-8 retention curve flat?not yet
  • 3-sentence pitch + customer self-identifies?yes
  • NRR > 100%?unknown
Verdict: redFix this first: retention.

The six questions are verbatim. The answers are one pre-PMF install, not a customer.

The catalogue

14 plays. 10 finders. Two of them on by default.

Plays default to founder-to-founder voice and 50 sends a day. Every draft passes a lint pass built on the Wikipedia signs-of-AI-writing canon before it is allowed out.

  1. show-hn

    on

    One-touch founder-to-founder reply to a recent Show HN post, referencing a specific comment thread.

  2. post-funding

    on

    Trigger: prospect's company announced a round. Day-3 congrats; day-9 follow-up; day-18 breakup.

  3. job-change

    Trigger: prospect started a new role at a target company. Day-0 send; day-5 follow-up; day-14 breakup.

  4. accelerator-batch

    Founder-to-founder outreach within or across accelerator batches (YC, OD, SPC, Antler, Techstars).

  5. hiring-signal

    Triggered by a job post at a target company. One-touch email to the hiring manager with your ramp-time claim.

  6. podcast-guest

    One-touch reply to a recent podcast guest referencing a specific moment from the episode.

  7. repo-interest

    Complementary intro to someone who starred an adjacent repo in your space. Fed by the github-stars finder.

  8. stack-consolidation

    Consolidation-honesty pitch for repos wiring up several API vendors. Fed by the github-topics finder.

  9. competitor-switch

    Migration-honesty pitch for prospects using a competing vendor. Optional G2 / BuiltWith scrape.

  10. luma-events

    Forward-looking pitch to publicly-visible attendees of upcoming Luma events whose topic and city overlap with your ICP.

  11. breakup-revive

    Pattern-interrupt for ledger cold leads at 60 to 90 days. Pulled from listColdProspects.

  12. concierge

    Autonomous voice onboarding for new signups. Pre-call email, voice call, post-call summary email.

  13. demo-no-show

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

  14. profile-intro

    Dashboard-driven intro from a profile you paste in, rather than from a finder.

Finders

  • show-hn
  • post-funding-auto
  • accelerator-batch
  • job-change
  • hiring-signal
  • podcast-guest
  • luma-events
  • github-topics
  • github-stars
  • breakup-revive

The eight opt-in finders stay off until you enable them per trigger, and five of those refuse to fire until you give them the config they need.

Against the category

Why not Apollo, Clay, Outreach, Smartlead.

Themoneshot-gtm
PricingSeat-based SaaS, per seat per monthPay per result, no subscription
Source visibilityClosed; you trust the dashboardMIT; read the prompts, fork the plays
CAC storyBlended, estimated, dashboard-shapedSigned per-call receipts, exportable
PMF postureAssumes PMF, optimizes sendsPre-PMF aware, soft-gates on scale moves
LLMBuilt in, opaqueBring your own key
StateVendor cloudLocal SQLite, chmod-600 dotfile

Scope

What it will never do.

Written down in the roadmap so it stays true. A tool that names its own limits is easier to trust with a mailbox than one that does not.

  • Run an SDR

    This helps you do founder-led sales. It refuses to advise a first-AE hire pre-PMF.

  • Manage SPF, DKIM, DMARC

    OneShot auto-provisions and warms sending domains.

  • Hold your customer data

    Local SQLite ledger only.

  • Lock you into our LLM

    Bring your own key, swap providers freely.

  • Auth, multi-user, hosted DB

    Local-first stays local.

  • Wrap itself in Electron

    bunx oneshot-gtm-server opens your browser. That is enough.

Questions

Before you point it at a mailbox.

Every answer here is the repo’s, including the last one. A tool that only lists what works is telling you half of what it knows.

What does bunx oneshot-gtm-server actually install?

The dashboard, published to npm at 0.7.0, no clone required. The 48-command CLI is not on npm: it needs a git clone, bun install, then bun link from apps/cli.

Do I need Bun, or will Node do?

Bun 1.3 or newer. bun:sqlite, Bun.serve and Bun.stdin are Bun-native, and a runtime check in dist/bin.mjs fails loudly under plain node rather than half working.

Where does my prospect data live?

A SQLite file in your home directory, beside a chmod-600 dotfile that holds the keys. Nothing syncs anywhere. Paid lookup caches and contact touches are shared across workspaces in ~/.oneshot-gtm-shared/shared.sqlite, which ONESHOT_GTM_SHARED relocates.

Which model does it use?

Yours. Bring your own key for OpenRouter, OpenAI or Anthropic, and swap providers whenever you like. There is no model built in and no prompt you cannot read.

What does it cost to run?

The software is MIT and free. Paid actions settle per call in USDC on Base, from $0.004 for an email send to $0.12 for a deep person research. No subscription, no seats, no minimum.

What is a signed receipt?

Every paid action returns a cryptographically signed receipt carrying a memo for why the call happened, the structured reasoning behind it, and a goal id grouping a whole cadence’s spend. When a reply or a closed deal lands, the value is tagged back onto the receipts that produced it. How the receipt works.

Will it stop me from scaling?

On the scale moves, yes. handoff templatize, handoff first-ae and handoff readiness each print a checklist and land on not yet until the signals earn the move. --force overrides every one of them, and it is your company.

How much of it runs out of the box?

Two finders: show-hn and post-funding-auto. The other eight are opt-in per trigger from /queue, and five of those return a 409 until you give them the config they need. github-stars is degraded by upstream as well, since GitHub restricted its stargazers endpoint to repo admins in July 2026.

What is not verified yet?

Seven surfaces. They are tested and typechecked, but have never made the round trip against the live OneShot API: motion concierge and motion demo-no-show, which both need a real phone number, discover pmf survey and survey-collect, intel triage-replies, bounce harvesting, and gmail placement. Assume everything else is green.

Read every prompt. Fork every play.

MIT, local-first, and 1,777 tests across 137 files. Nothing about your prospects leaves your machine.

bunx oneshot-gtm-server