Outbound sales expertise for AI agents, as plain markdown skills.
Teach your agent how to run real outbound: shape an audience, launch a campaign, work the replies, read the numbers honestly — with guardrails that protect your domain and explicit approval gates before anything reaches a real person.
Skills are in the open Agent Skills format, so they work in Claude
Code, Codex, Cursor, Antigravity and any SKILL.md-compatible host.
The SDR expertise is independent of any product. Reply.io execution is a separate, replaceable pack. Install what you need:
| Pack | What it gives you | Requires |
|---|---|---|
ai-sdr-core |
The vendor-neutral core: an operation contract of 325 SDR business operations in 21 families, 30 of them core — discovery and contacts, audiences and imports, campaigns, steps and enrolment, messages and conversations, tasks and meetings, consent and suppression, sending capability, oversight and measurement. Each operation says what it reaches, whether it can be undone, what approval it needs, what to read before repeating it and what it costs. Plus outbound strategy and playbooks, and the guardrails — sending limits, channel limits, approval boundaries. Works with any provider, or none. | — |
reply-adapter |
Executes that core against Reply.io: the reply CLI, API v3, the MCP server, auth and scopes, error translation — and states, operation by operation, what Reply performs directly, what it performs only in part, and what it does not perform at all. |
ai-sdr-core + a Reply.io account |
agentic-runtime |
Durable multi-session work: goals, plans, work items, checkpoints, resumability, reports, user memory. Skip it if your orchestrator already does this. | ai-sdr-core |
ai-sdr-core and agentic-runtime are useful without Reply.io and without the Reply CLI.
Only reply-adapter needs an execution provider — see Execution requirements.
Reply's agentic toolkit is three pieces. They are complementary, not alternatives:
| What it is | When you want it | |
|---|---|---|
| reply CLI | npm i -g reply-cli — authenticated access to every v3 endpoint via reply api |
Your agent has a shell. This is the complete surface. |
| Reply MCP | A curated tool catalog over mcp.reply.io |
Your client speaks MCP and has no shell — desktop apps, hosted assistants. |
| reply-skills (this repo) | Outbound expertise as markdown skills: what to do, in what order, with what guardrails | Your agent knows how to call things but not what to run. |
MCP gives your agent tools. Skills give it judgement. Most setups want both; a shell-capable agent can do everything through the CLI alone.
The shortest path that works: install the CLI, reply auth login, reply skills install, then
talk to your agent in plain words. MCP is optional — add it when your client has no shell.
The reply CLI detects the assistants on your machine and installs the packs into each one, dependencies resolved:
npm install -g reply-cli # needs Node.js 20 or newer
reply skills install✓ detected Claude Code, Codex
✓ Claude Code · ai-sdr-core, reply-adapter, agentic-runtime installed
✓ Codex · ai-sdr-core, reply-adapter, agentic-runtime installed
Start a new session in each assistant so the skills load.
Install a subset — dependencies come along, so adapter pulls core:
reply skills install core
reply skills install adapter runtime
reply skills install --agent codex # only this assistant
reply skills install --project # into this repository, not your homereply skills list shows what is installed where, reply skills update brings packs to the
latest version, and reply skills remove takes them out. Add --dry-run to any of them to
see the plan without changing anything.
Claude Code, Codex, Cursor, Windsurf, Antigravity and GitHub Copilot are the hosts this is verified against. The per-host sections below are the manual equivalents, for when you would rather not install the CLI.
Everything, in three terminal commands:
claude plugin marketplace add reply-team/reply-skills
claude plugin install reply-adapter@reply-skills
claude plugin install agentic-runtime@reply-skillsai-sdr-core is installed automatically as a dependency of either pack — Claude Code resolves
it for you and reports (+ 1 dependency: ai-sdr-core).
Selective installs, if you want less:
# Just the vendor-neutral SDR expertise — no provider, no runtime
claude plugin install ai-sdr-core@reply-skills
# Core + Reply execution, no durable-work runtime
claude plugin install reply-adapter@reply-skills
# Core + durable work, driven by your own orchestrator, no Reply
claude plugin install agentic-runtime@reply-skillsSkills appear namespaced per pack — ai-sdr-core:campaign-launch,
reply-adapter:reply-cli — so they never collide with skills you wrote yourself.
Start a new session for newly installed skills to be picked up.
npx skills is the ecosystem's package manager for
Agent Skills, with a directory entry at
skills.sh/reply-team/reply-skills. Use it to
reach the long tail of hosts we do not package for individually, or to try these skills quickly
in whatever agent you already run.
# Everything — asks where to install, or installs all 18 when a coding agent invokes it
npx skills add reply-team/reply-skills
# Everything, no prompts, into one named agent
npx skills add reply-team/reply-skills --skill '*' --agent claude-code -y
# See what the repository offers without installing anything
npx skills add reply-team/reply-skills --listVerified with skills CLI 1.5.21 (Windows, Claude Code 2.1.220): --list reports
Found 18 skills, and a full install places all 18 — with their references/ and templates/
files — in the host's skills directory (.claude/skills/ for a project-scoped Claude Code
install), recording provenance in skills-lock.json so npx skills update works later. Invoked
by an agent rather than a person it prints Agent detected — installing non-interactively and
installs all 18, so it is safe to script.
This channel has no pack model. It installs individual skills by name: no packs, no namespacing, no dependency resolution. Install all 18 — that is the only shape supported here. A
--skillsubset is your own responsibility, because the CLI will installreply-operations-mappingordurable-workwithoutsdr-operationsand say nothing about it, leaving a skill whose declared dependency is simply absent.
If you want dependencies resolved for you, use the Claude Code marketplace above, where
installing reply-adapter pulls in ai-sdr-core automatically.
Codex has its own plugin mechanism and reads this repository as a marketplace:
codex plugin marketplace add reply-team/reply-skills
# ai-sdr-core FIRST — Codex resolves no dependencies, see below
codex plugin add ai-sdr-core@reply-skills
codex plugin add reply-adapter@reply-skills
codex plugin add agentic-runtime@reply-skillsSkills appear namespaced per pack — ai-sdr-core:campaign-launch, reply-adapter:reply-cli —
so they never collide with skills you wrote yourself. Start a new session for newly
installed skills to be picked up.
Install order matters here. The Codex plugin format has no dependency field at all, so nothing installs
ai-sdr-corefor you. Addingreply-adapteron its own gives you five skills whose guidance is missing. Install the core first, or install all three.
Managing them:
codex plugin list # installed
codex plugin list --available # what the marketplace offers
codex plugin remove reply-adapter@reply-skills # remove one pack
codex plugin marketplace upgrade # pull a newer snapshot of this repoVerified with codex-cli 0.146.0-alpha.3.1: all three packs install, and all 18 skills
reach the model — 9 + 5 + 4, confirmed via codex debug prompt-input. Re-running
codex plugin add upgrades in place: it does not duplicate the config entry or the cache.
On Windows the codex binary is not on PATH — it ships with the desktop app at
%LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\codex.exe. Call it by full path, and note that
tooling which detects Codex with which codex will wrongly report it as missing.
Verified on Cursor, Windsurf, Antigravity and GitHub Copilot. These hosts are installed to by copying a pack's skills directory. Cursor is confirmed — Cursor 3.14.27 and cursor-agent 2026.08.04-aaa8809, with
reply skills install --agent cursorwriting to~/.cursor/skills, or to.agents/skillswith--project. Windsurf is confirmed as well — it ships as Devin 3.6.27 with the devin CLI 3000.3.27, andreply skills install --agent windsurfwrites to~/.codeium/windsurf/skills, or to.windsurf/skillswith--project. Antigravity 2.0.1 is confirmed at~/.gemini/config/skills, or.agents/skillswith--project; it is the one host that needs no new session, re-reading its skills every turn. The CLI decides that host is present by looking for~/.gemini/antigravity, which is not the directory it writes to — if your install goes undetected, that is the one to check. GitHub Copilot is confirmed with Copilot CLI 1.0.80 at~/.copilot/skills, or.agents/skillswith--project, andcopilot skill listnames every skill it loaded and where from. Its VS Code agent host reads the same~/.copilot/skills, but scans it once per window, so reload the window there.
reply skills install (above) does this copying for you, to the same paths. These manual steps
are the equivalent by hand.
No plugin mechanism means no dependency resolution, so install the core yourself — every other pack needs it:
git clone https://github.com/reply-team/reply-skills /tmp/reply-skills
# ai-sdr-core is required by the others — copy it first
cp -r /tmp/reply-skills/plugins/ai-sdr-core/skills/* <host skills dir>/
cp -r /tmp/reply-skills/plugins/reply-adapter/skills/* <host skills dir>/
cp -r /tmp/reply-skills/plugins/agentic-runtime/skills/* <host skills dir>/Omit the packs you do not want — but never copy reply-adapter or agentic-runtime without
ai-sdr-core, or their skills will reference guidance that is not there. Start a new session
afterwards — except on Antigravity, which picks them up in a conversation already open.
A command in this README is part of the product contract, so each row below says which version it was tested against. A row without one has instructions that are a reasonable starting point, not a promise.
| Channel | Installs | Dependency handling | Layout on disk | Verified |
|---|---|---|---|---|
reply skills install |
Packs | Resolved by the installer on every host | Whatever the channel it drives produces | reply CLI 0.4.0 — Claude Code and Codex; reply CLI 0.5.1 — Cursor and Windsurf; the release adding --agent antigravity — Antigravity and GitHub Copilot |
| Claude Code plugin marketplace | Packs | Resolved by the host — reply-adapter pulls ai-sdr-core |
Namespaced per pack | Claude Code 2.1.220 |
npx skills / skills.sh |
Individual skills | None — install all 18 yourself | Flat, no namespacing | skills CLI 1.5.21 |
| Codex plugin marketplace | Packs | Manual — install ai-sdr-core first; the format has no dependency field |
Namespaced per pack | codex-cli 0.146.0-alpha.3.1 |
| Cursor (directory copy) | Skills, by copying | Manual — copy ai-sdr-core first |
Flat, ~/.cursor/skills or .agents/skills |
Cursor 3.14.27, cursor-agent 2026.08.04-aaa8809 |
| Windsurf (directory copy) | Skills, by copying | Manual — copy ai-sdr-core first |
Flat, ~/.codeium/windsurf/skills or .windsurf/skills |
Devin 3.6.27, devin CLI 3000.3.27 |
| Antigravity (directory copy) | Skills, by copying | Manual — copy ai-sdr-core first |
Flat, ~/.gemini/config/skills or .agents/skills |
Antigravity 2.0.1 |
| GitHub Copilot (directory copy) | Skills, by copying | Manual — copy ai-sdr-core first |
Flat, ~/.copilot/skills or .agents/skills |
Copilot CLI 1.0.80 |
The first two channels resolve the ai-sdr-core dependency for you. On the rest, installing a
pack without the core is something you have to avoid deliberately.
Several of the directory-copy rows overlap, which the table does not show: Windsurf also reads
.agents/skills, the directory Cursor, Codex, Antigravity and GitHub Copilot use for
--project — Codex's plugin mechanism is user-scoped, so a project-scope install falls back to
copying there. Copying skills into it for one of them makes them visible in the others, and
removing them for one changes what the others see. Use the per-host user directory when you want
a host's skills to itself.
Installing skills is not the same as configuring a provider. The core and runtime packs need
nothing. reply-adapter needs at least one Reply.io execution surface — the CLI, the MCP server,
or the API directly; Where this fits says which to pick, and the
reply CLI repository is the source of truth for
installing and authenticating it. To drive the API on its own, the full surface is the
v3 reference — agents should start at
llms.txt.
If the CLI is already installed, this confirms the adapter has something to drive:
reply auth whoamiSee INDEX.md for the full catalog — every skill, its pack, maturity and version. Agents: fetch that first; each skill's frontmatter is its contract.
Some business and protection content ships as honest skeletons marked TODO(expert):
structure and safety posture are final, the numbers await validation by domain experts. A visible
gap is deliberate — invented expertise would be worse.
The operation contract is honest in a second way, with a second marker. It carries 21 open questions: forks where two readings are defensible, we took one, and taking the other would change an operation rather than the prose around it. An operation left unsettled by one of them says so, and names the fork.
Skills never let an agent start a campaign, send a message, or delete data without your explicit confirmation in the conversation. A message composed for one named person requires you to approve its literal text. An operation that carries a set is one decision, and it shows a preview that names the people it would reach — never a bare count, which is a number you can neither check nor refuse.
Two kinds of operation are the exception, and both run first and tell you immediately. Stopping — pausing a campaign that is burning your domain, holding outbound, clearing a queue — because waiting is the destructive choice. And recording something that already happened outside our control, such as somebody's request to stop, because delaying that is the only way to get it wrong. Starting anything back up is never in that set.
The rules live in one place — the approval-boundaries skill — and ship inside ai-sdr-core, so
no selective install can leave them out. They are additionally bound mechanically by
scoped API keys: grant an agent only the
scopes its workflows need.
claude plugin list # what's installed
claude plugin details ai-sdr-core # its skills and their token cost
claude plugin update reply-adapter # update one pack (restart to apply)
claude plugin uninstall reply-adapter # remove a pack
claude plugin prune # drop dependencies nothing needs any moreSkills are the product here — they are reviewed like code, because they run like code. Start with CONTRIBUTING.md, then:
- docs/packs.md — the layer model, the three packs, and the invariants CI enforces
- docs/skill-contract.md — the contract every skill follows
- docs/conventions.md — layout, categories, governance
- docs/adr/ — why the big decisions were made
- docs/roadmap.md — where the knowledge system is going
npm run build && npm run check # regenerate manifests and catalogs, then verify everythingMIT © Reply.io