适用于技术创始人的 GTM 代理。按结果付费。签收凭证。两种界面:终端 CLI 和本地 Web 控制面板。
Open-source GTM agent for technical founders. Pay-per-result, signed receipts, founder-led discipline encoded. Terminal CLI + local web dashboard over one SQLite ledger.
oneshot-gtm.com · what a signed receipt is · docs
bunx oneshot-gtm-server # dashboard only — published, no clone
https://github.com/user-attachments/assets/bba2fb2d-35c3-4171-a358-fd3a987c24bc
OneShot is a pay-per-use API toolbox — email, SMS, voice, deep research, person enrichment, browser automation, website build — settled per call in USDC on Base, with a cryptographically signed receipt for every action.
oneshot-gtm is the strategy wrapper. It encodes the founder-led-sales playbook — Mom Test, Sean Ellis 40%, Predictable Revenue, do-things-that-don't-scale, multichannel cadence, signed-receipt CAC — as named plays you run from the terminal or the dashboard. Finders watch public signals, an ICP gate filters what they find, you approve rows in a queue, plays draft and send, cadences follow up, and every dollar lands in a receipt you can attribute to an outcome.
MIT, so you can read every prompt, fork every play, and trust what's running.
| Them | oneshot-gtm | |
|---|---|---|
| Pricing | Seat-based SaaS, $$/seat/mo | Pay-per-result, no subscription |
| Source visibility | Closed; you trust the dashboard | MIT; read the prompts, fork the plays |
| CAC story | Blended, estimated, dashboard-shaped | Signed per-call receipts, exportable |
| PMF posture | Assumes PMF, optimizes sends | Pre-PMF aware, soft-gates on scale moves |
| LLM | Built-in, opaque | BYO key (OpenRouter / OpenAI / Anthropic) |
| State | Vendor cloud | Local SQLite + chmod-600 dotfile |
Most GTM tools assume you have product-market fit and optimize sends. Most pre-PMF founders don't, and end up scaling a broken motion because the tool said "send more" — the Startup Genome Report's top documented cause of startup death. So the discipline is built in:
founderAdmission) is worked into roughly a third of first touches; leave it blank and the beat is skipped, never invented.handoff templatize, first-ae, readiness) print soft-gate checklists and default to "not yet, fix this first" until the signals earn the move. --force overrides.decisionContext, and a goalId grouping a cadence's spend. When a reply or deal outcome lands, that value is tagged back, so CAC and RoCS on the Measure page are attestable and outcome-attributed, not estimated.curl -fsSL https://bun.sh/install | bash # Bun is the required runtime
git clone https://github.com/oneshot-agent/oneshot-gtm
cd oneshot-gtm && bun install
bun run cli -- init # config + keys wizard
bun run cli -- doctor # sanity check
bun run --cwd apps/web build # one-time: build the SPA
bun run cli -- ui # http://127.0.0.1:3030
init asks for the founder profile the prompts draw on: background that builds trust, products you've shipped, notable partners or customers, and one true concession. All optional — a blank field skips the beat that uses it rather than improvising. Edit any of them later from /setup or config founder. What reaches the model, and when maps each field to the surfaces it shapes. A voice card adds how you write, in your words, to every email draft.
Some finders need keys init never asks about — most people want GITHUB_TOKEN (a classic token with no scopes) before enabling the GitHub finders. /setup and config keys store them; finders lists them.
To call it from anywhere: cd apps/cli && bun link && bun link oneshot-gtm && cd -. Prefer the dashboard without cloning? bunx oneshot-gtm-server downloads and boots it. Bun is still required — the bundle uses bun:sqlite and Bun.serve, and fails loudly under plain node. The CLI itself is not published to npm.
Both read and write the same ~/.oneshot-gtm/ledger.sqlite.
bun run cli -- intel advise # interactive coach
bun run cli -- find watch --once # poll due triggers, enqueue candidates
bun run cli -- find drain podcast-guest --dry-run # preview approved /queue rows
bun run cli -- cadence advance # daily tick: poll inbox, fire follow-ups
73 commands — bun run cli -- --help (or oneshot-gtm --help once linked) is the reference:
| Group | Commands |
|---|---|
init · doctor · ui |
setup wizard · health check · open the dashboard |
config |
llm · founder · keys · voice [--from ...] · linkedin-session · telemetry on|off · slack-webhook [url] · x-engine [engine] · spend-ceiling [amount|off] |
identities |
list · add · remove — the sender pool |
gmail |
auth (OAuth a sending account) · placement (inbox-placement canary) |
smartlead |
connect — API key + pick Smartlead mailboxes into the pool (send-only) |
domains |
list · pause · resume — provisioned OneShot domains |
find |
watch · drain · import --csv --play · enrich-linkedin · research-prospects · research-queue · research-products · synthesize-angles · score-prospects · backfill-fit-reason · calibrate — --fail-on-empty makes watch --once and drain exit 2 on a run that produced nothing |
motion |
post-funding concierge demo-no-show competitor-switch hiring-signal podcast-guest discovery-interview free-pilot — each takes --target ; breakup-revive reads the ledger |
cadence |
advance — poll inbound, fire due steps |
direct-mail |
list · upload · preview · refresh · approve · send · cancel · skip — individual physical-mail approvals |
discover |
icp interview-prep · icp synthesize · pmf classify · pmf survey · pmf survey-collect |
measure |
benchmark — compare this install's command activity with the opt-in telemetry cohort; supports --json |
intel |
advise · personalize · triage-replies · backfill-intent · weekly-review |
handoff |
readiness · templatize · first-ae |
暂无开放 Issues,或尚未同步最近议题。