Skip to main content
reply-skills packages Reply.io’s outbound expertise as plain-markdown Agent Skills: 18 skills across three independently installable packs. A skill is a folder containing a SKILL.md — a description your agent’s router matches on, plus the guidance it loads when the description matches. No runtime, no code, nothing to host. Skills use the open Agent Skills format, so they load in Claude Code, Codex, and any other SKILL.md-compatible host.
MCP gives your agent tools. Skills give it judgement. MCP and the CLI are execution surfaces — individual operations your agent can call. Skills are procedure: which operations to compose, in what order, what to verify, and where to stop and ask. See Choose your interface.

The three packs

The packs split along a clean line: the SDR methodology, the Reply.io execution layer, and the durable-work runtime each install on their own, so you take the pieces your setup calls for.
ai-sdr-core has no dependencies of its own, and reply-adapter and agentic-runtime never depend on each other — either can be absent. Guardrails and approval boundaries ship inside ai-sdr-core, so no selective install can leave safe operation out.
reply-adapter is the pack that connects to Reply.io — install it when you want your agent operating the platform. The other two carry the methodology and the runtime, and depend only on ai-sdr-core.
Every skill, with its pack, category, and maturity: Skill catalog.

Install

The Reply CLI detects the assistants on your machine and installs all three packs into each one, resolving dependencies itself:
Install a subset — dependencies come along, so adapter pulls core:
Full command surface and flags: Reply CLI → Skills.

Claude Code — plugin marketplace

ai-sdr-core is resolved automatically as a dependency of either pack — Claude Code reports (+ 1 dependency: ai-sdr-core). Install it alone if you want the vendor-neutral expertise only:
Skills arrive namespaced per pack — ai-sdr-core:campaign-launch, reply-adapter:reply-cli — so they never collide with skills you wrote yourself.

Codex — plugin marketplace

Install order matters on Codex. The Codex plugin format has no dependency field, so nothing installs ai-sdr-core for you. Adding reply-adapter on its own gives you five skills whose guidance is missing. Install the core first, or install all three.
Skills are namespaced per pack here too. Re-running codex plugin add upgrades in place rather than duplicating the entry.

Any host — the skills ecosystem CLI

npx skills is the ecosystem package manager for Agent Skills, with a directory entry at skills.sh/reply-team/reply-skills. Use it to reach hosts Reply does not package for individually.
This channel has no pack model. It installs individual skills by name — no packs, no namespacing, no dependency resolution. Install all 18. A --skill subset is your own responsibility: the CLI will install reply-operations-mapping or durable-work without sdr-operations and say nothing about it, leaving a skill whose declared dependency is absent.
Provenance is recorded in skills-lock.json, so npx skills update works later.

Cursor, Windsurf, Gemini CLI, GitHub Copilot — directory copy

These hosts have no plugin mechanism, so a pack is installed by copying its skills directory. That works because a pack is just a directory of skills.
reply skills install does this copying for you, to the same paths. Never copy reply-adapter or agentic-runtime without ai-sdr-core, or their skills will reference guidance that is not there.

Install channels compared

Each row states the version it was verified against. Rows marked not verified have instructions that are a reasonable starting point, not a promise. Only the first two channels resolve the ai-sdr-core dependency for you.

Where the files land

reply skills install writes to your user directory by default, or to the current repository with --project. On Claude Code and Codex the packs go through the assistant’s own plugin mechanism, so they keep updating through it. Other SKILL.md hosts receive the skills as files.
“Not yet” means the skills directory came from that assistant’s documentation and has not been confirmed by a verification run. The install works; what is unconfirmed is whether the assistant reads from where the files were put. Those hosts are marked (paths not yet verified) in the report and carry "verified": false in --json output.

Verify the install

On Claude Code you can also ask the host directly:
Start a new session in each assistant — newly installed skills are picked up at session start, not mid-conversation.

Connect an execution surface

Installing skills is a separate step from connecting Reply.io. reply-adapter is the pack that calls the platform, so it needs at least one Reply.io execution surface configured: If the CLI is installed, this confirms the adapter has something to drive:
Agents driving the API directly should start at llms.txt — see Machine-readable.

Run your first skill

Once installed, ask your agent in plain language — the host routes to a skill by matching its description:
  • “Import this CSV as a new list and tell me about the duplicates”audience-building
  • “Plan an outbound campaign to book ten meetings with fintech founders”campaign-planning
  • “What sending limits should I respect on a brand-new domain?”sending-guardrails
  • “Show me the interested replies from this week”inbox-triage
  • “Which campaigns are underperforming, and what should I fix?”performance-analysis
  • “Turn this goal into a plan I can resume tomorrow”durable-work

Safety model

Skills never let an agent start a sequence, send a message, or delete data without your explicit confirmation in the conversation. Anything that sends content requires you to approve the literal text first. Bulk operations show their plan and their counts before running. Protective actions are the one exception: pausing a campaign that is burning your domain happens first and tells you immediately, because waiting is the destructive choice. The rules live in one skill — approval-boundaries — and ship inside ai-sdr-core, so no selective install can omit them. Bound them mechanically as well, with scoped API keys: grant an agent only the scopes its work needs. See Agent safety rules.

Manage installed packs

Add --dry-run to any of them to see the plan without changing anything. Removing a pack that another installed pack depends on is refused — remove both, or run reply skills remove with no pack. Through Claude Code’s own plugin mechanism:

Troubleshooting

Skills load at session start. Start a new session in the assistant, then ask something that matches a skill description — hosts route on the description field, so a vague prompt may match nothing. Confirm the install first with reply skills list.
A pack was installed without ai-sdr-core. Only reply skills install and the Claude Code marketplace resolve that dependency; on Codex, npx skills, and directory copies it is your job. Install the core and start a new session.
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. Tooling that detects Codex with which codex will wrongly report it as absent.
reply-adapter needs a working Reply.io credential. Run reply auth whoami; if it fails, run reply auth login. For 401/403 on a specific call, check the key’s scopes against Authentication.
Expected for Cursor, Windsurf, Gemini CLI, and GitHub Copilot. The files were written to the path that host documents, but Reply has not confirmed the host reads them. Check the host’s own skills directory and consult its documentation.

Maturity and honest gaps

Each skill carries a maturity level — draft, reviewed, validated, or production. Some business and protection content ships as honest skeletons marked TODO(expert): the structure and safety posture are final, the specific numbers await validation by domain experts. A visible gap is deliberate; invented expertise would be worse. Per-skill maturity is in the Skill catalog.