GTM Agents is a Claude Code plugin marketplace — 67 plugins covering sales prospecting, campaign orchestration, churn prediction, and 20-odd workflow orchestrators, all designed to be installed via /plugin install and invoked as slash commands.
Why I starred it
The pitch is mostly marketing copy ("Save 15+ hours per week"), but what's underneath is more interesting than the README makes it look. Someone built a full asset pipeline on top of Claude Code's plugin system: agents are .md files with YAML frontmatter, a Python validation suite runs as a pre-commit hook, and a generate_skills_index.py script compiles everything into a discoverable skills-index.json and available_skills.xml for injection into agent prompts.
That's not a vibe project — that's an actual content management system targeting Claude's context window.
How it works
Every plugin lives under plugins/<name>/ with three subdirectories: agents/, commands/, and skills/. Agents are .md files with a model field set to haiku or sonnet. Skills are folders with a SKILL.md using YAML frontmatter that follows the Agent Skills open standard.
The lead-researcher.md agent in plugins/sales-prospecting/agents/ is declared as a haiku agent. The orchestrators — like campaign-orchestration — are sonnet. The README calls this intentional:
58 Haiku agents — Fast execution for data processing and routine tasks
34 Sonnet agents — Complex reasoning for strategy and creative work
Orchestration patterns: Sonnet (strategy) → Haiku (execution) → Sonnet (optimization)
That cost-aware model selection is baked into every agent file's frontmatter — one field, enforced by scripts/validate_marketplace.py:
ALLOWED_AGENT_MODELS = {"haiku", "sonnet"}
The marketplace manifest at .claude-plugin/marketplace.json is the source of truth. validate_marketplace.py enforces semver versioning (SEMVER_PATTERN = re.compile(r"^\d+\.\d+\.\d+$")), at least 3 keyword slugs per plugin, and that every referenced file actually exists on disk. Husky runs this check plus a smoke test before every commit.
The smoke test in scripts/smoke_test_plugins.py is straightforward: iterate every plugin in the manifest, resolve each component path (with a compatibility shim for legacy ./plugins/ prefixes), read the file, and check that it has YAML frontmatter and at least one Markdown heading. Not a deep AST parse — just enough to catch empty stubs.
Skills use progressive disclosure. The cold outreach skill at plugins/sales-prospecting/skills/cold-outreach/SKILL.md is a good example: it's a compact SKILL.md with the framework compressed into bullet points, explicitly noting at the bottom:
*Progressive disclosure: load full templates/examples only when actively generating outreach copy.*
The generate_skills_index.py script walks plugins/*/skills/*/SKILL.md, parses each file's frontmatter with a hand-rolled parser (no external YAML library — just string splitting), and emits skills-index.json with per-skill metadata. It also generates available_skills.xml, which is the format for injecting the skill catalog into an agent's context.
The campaign orchestration command (plugins/campaign-orchestration/commands/launch-campaign.md) is the most elaborate thing here. It documents a multi-agent pipeline with an ASCII diagram, per-phase YAML task lists, a JSON success metrics structure, and error recovery tables. It reads like an infrastructure runbook written in Markdown.
Using it
# Add the marketplace
/plugin marketplace add gtmagents/gtm-agents
# Install what you need
/plugin install sales-prospecting
/plugin install campaign-orchestration
# Run a campaign
/campaign-orchestration:launch-campaign "Q1 Product Launch" --type product-launch --budget 100000 --timeline 8
# Or a targeted prospecting run
/sales-prospecting:build-sequence --industry saas --persona "VP Sales"
The skills also claim cross-tool portability to Codex, Cursor, and VS Code Copilot — you can copy plugins/*/skills/ into ~/.codex/skills/ and they load via the same Agent Skills spec.
Rough edges
The agents don't actually do anything without Claude Code executing them. The .md files are instructions, not code — there are no Python functions, no API integrations, no data pipelines. "Generate 100 qualified leads in 5 minutes" means Claude will try to do this research conversationally, which will vary wildly depending on what context and tools you've given it access to.
The model field in agents (model: haiku) declares intent, but I don't see where the plugin system enforces it. Whether Claude Code actually uses Haiku for a file declaring model: haiku or just reads it as advisory text is unclear from the source.
The validation suite has no integration tests. smoke_test_plugins.py checks for frontmatter presence and headings — it will pass for files that are structurally valid but semantically empty. There's a validate_marketplace.py checking schema and semver, but nothing that verifies the workflows described in command files are internally consistent.
The repo is also almost entirely documentation. scripts/ has 15 Python files totaling around 60KB. The rest — the bulk of the repo — is Markdown. If you're expecting to read source code, there isn't much.
Commit frequency dropped off after November 2025, picked up briefly in December, then two commits in April 2026. Not abandoned, but not actively developed.
Bottom line
Worth installing if you use Claude Code for GTM work and want pre-built slash commands for common workflows like email sequences, lead research, and campaign planning. The underlying validation tooling and model-routing conventions are the most technically interesting parts — the actual agent files are structured prompts, not code.
