One config, four connected commands. Your whole early-pipeline GTM workflow, running in Claude Code or Codex.
No API keys. No dashboards. No 92-agent skill shelf to choose from. You describe what
you sell once; then score → enrich → outbound → prep share one set of account files
on your own machine.
Inside Claude Code, run:
/plugin marketplace add dan-sheehan/local-gtm
/plugin install gtm@local-gtm
Or paste this into a regular terminal instead (no slash commands needed):
claude plugin marketplace add dan-sheehan/local-gtm && claude plugin install gtm@local-gtm --scope userIf /plugin isn't recognized: your Claude Code is older than v2.1.154. Run
claude update, restart Claude Code, and paste again.
Paste this into a terminal:
codex plugin marketplace add dan-sheehan/local-gtm && codex plugin add gtm@local-gtmIf codex plugin isn't recognized, run codex update and try again. After the
install, start a new Codex session so its five skills are available.
In the Codex desktop app or IDE extension, you can use the same marketplace and
install gtm from Plugins instead.
- Make a folder for your GTM work and open Claude Code or Codex there. That folder is your workspace — the plugin reads and writes files in the directory you launch from.
- Run the
configskill —/gtm:configin Claude Code, or ask Codex to use thegtmplugin'sconfigskill. Paste your company's website and correct what it infers. About 3 minutes, ends with everything written togtm-profile.mdin plain markdown you can open and edit. - Run
score Acme Logistics—/gtm:score Acme Logisticsin Claude Code, or select thegtmplugin'sscoreskill in Codex — for your first ICP score.
From a fresh install to a first score should take under 15 minutes. If it doesn't, that's a bug — open an issue.
| Command | What it does | Writes |
|---|---|---|
/gtm:config |
Builds your GTM profile: product, value props, your own ICP scoring rubric, personas, tone, sender identity | ./gtm-profile.md |
/gtm:score <company> |
Researches the company per rubric dimension, then computes the score — deterministic arithmetic over auditable selections, with a per-dimension evidence table. QUALIFIED or DISQUALIFIED against your threshold | ## ICP Score in ./accounts/<company-slug>.md |
/gtm:enrich <company> |
Four-pass deep research: company & business model, product & technology, funding & growth, market position — ending in sourced strengths, risks, and why-it-matters sales implications for your product | ## Enrichment |
/gtm:outbound <company> |
Five-email sequence for a named prospect: opener (day 1), value drop (day 3), proof (day 7), direct ask (day 10), and breakup (day 17). Each touch stays under 100 words and follows one research-backed pain angle | ## Outbound Draft |
/gtm:prep <company> |
Discovery-call brief: snapshot, prospect background, openers, discovery questions, value hooks, watch-outs | ## Discovery Prep |
Every account is one markdown file. Every command edits only its own section, so you can re-run anything without losing the rest.
/gtm:outbound writes one threaded sequence around the strongest researched pain
point or trigger:
| Day | Job | |
|---|---|---|
| 1 | Opener | Lead with the problem and earn a reply with a soft question |
| 3 | Value Drop | Share a useful insight or framework without a hard ask |
| 7 | Proof | Show a verified result from a similar customer |
| 10 | Direct Ask | Ask for a 15-minute call and offer two times |
| 17 | Breakup | Close the loop with a useful resource and no hidden pitch |
Only the opener creates a subject; the other four emails stay in its thread. The plugin never invents customer metrics, resource links, or meeting times. When those inputs are unavailable, the draft leaves a clear bracketed placeholder for you.
Most AI scoring is a vibe. /gtm:score isn't: your rubric lives as editable YAML in
gtm-profile.md (weighted dimensions, scored options), research picks one option per
dimension with a line of evidence, and the number comes from running the arithmetic
in code. Same rubric + same facts = same score, and you can audit every row.
DISQUALIFIED stops enrich/outbound/prep before you spend effort on a bad-fit
account. The gate saves the downstream pipeline — the scoring research itself still
runs in full. (You can override the gate; the override is recorded in the account
file.)
- Claude Code with a Claude subscription (Pro or Max), or Codex. That's it.
- Web search happens through your coding agent's built-in search.
/gtm:configruns a test search so permission setup happens early; later searches may still require approval depending on your agent and workspace settings. - The plugin has no hosted backend, telemetry, or third-party data provider. Your coding agent processes the workspace and web searches under its own provider terms.
gtm-profile.md and accounts/ are plain markdown in your own folder. Edit them,
version them, delete them — the plugin itself stores no state anywhere else.