# Claude Code plugin

> claude-outreach runs your whole outbound from Claude Code, from the ideal customer profile to the replies, with Emelia as the engine. Install, keys, commands and updates.

Source: https://docs.emelia.io/docs/ai/claude-code-plugin

[claude-outreach](https://github.com/emelia-io/claude-outreach) is an open source plugin for Claude Code, MIT licensed. It packages a method: define who you target, build and clean the list, find and verify emails and phone numbers, write a sequence that does not read like a template, check deliverability, launch in Emelia, triage the replies, and read what worked.

[View on GitHub](https://github.com/emelia-io/claude-outreach)

## Install

### Add the plugin

In Claude Code:

```text
/plugin marketplace add emelia-io/claude-outreach
/plugin install claude-outreach@claude-outreach
```

From a terminal, the same with `claude plugin marketplace add emelia-io/claude-outreach` then `claude plugin install claude-outreach@claude-outreach`.

### Add your keys

The skills call the Emelia REST API with the key in your environment. In `~/.zshrc` or `~/.bashrc`:

```bash
export EMELIA_API_KEY="..."   # enrichment, contacts, campaigns, replies
export BASILE_API_KEY="..."   # optional, French B2B data
```

Open a new terminal, then start Claude Code from it: a variable exported in another terminal is not visible to it. Without a key, everything still runs in dry run: you get the list, the copy and the sequence as files, nothing is sent and nothing is charged.

### Connect the MCP server (optional)

> **The plugin does not configure the MCP server.** Installing the plugin adds skills and agents, not the MCP server. Some agents of the plugin use the Emelia MCP tools when the server is there: add it yourself, under the name `emelia`.

```bash
claude mcp add --transport http --scope user emelia https://mcp.emelia.io/mcp \
  --header "Authorization: YOUR_EMELIA_API_KEY"
```

Keep the name `emelia`: the agents look for tools named `mcp__emelia__*`. See [MCP server](https://docs.emelia.io/docs/ai/mcp.md).

**Manual install, without the plugin system**

```bash
git clone https://github.com/emelia-io/claude-outreach.git
cp -r claude-outreach/skills/* ~/.claude/skills/
cp -r claude-outreach/agents/* ~/.claude/agents/
```

On Windows PowerShell:

```powershell
git clone https://github.com/emelia-io/claude-outreach.git
Copy-Item -Recurse claude-outreach\skills\* $HOME\.claude\skills\
Copy-Item -Recurse claude-outreach\agents\* $HOME\.claude\agents\
```

With a manual install, the skill is called `/outreach` instead of `/claude-outreach:outreach`.

## Start

Skills of a plugin are called with the name of the plugin first:

```text
/claude-outreach:outreach pilot
```

A guided first campaign on 100 contacts, with a checkpoint at every step. It asks who you sell to, builds a small list, enriches it, writes the sequence with you, checks your deliverability, and launches only when you say so. Every step writes a file you keep, in an `outreach/` folder.

Once you trust it:

```text
/claude-outreach:outreach full "sell our API monitoring tool to CTOs of French SaaS companies, 20 to 200 people"
```

## Commands

Each command is `/claude-outreach:outreach <command>` (or `/outreach <command>` with a manual install).

| Command              | What it does                                                 |
| -------------------- | ------------------------------------------------------------ |
| `pilot`              | Guided first campaign on 100 contacts                        |
| `full <brief>`       | The complete pipeline, from targeting to analysis            |
| `offer <url>`        | Turn what you sell into an offer a competitor could not copy |
| `icp <brief>`        | Turn a vague brief into a targeting spec                     |
| `leads <query>`      | Build the list from Basile, LinkedIn or a CSV                |
| `filter <list>`      | Deduplicate, exclude customers and the blacklist, segment    |
| `find-email <list>`  | Find professional email addresses                            |
| `find-phone <list>`  | Find phone numbers                                           |
| `verify <list>`      | Verify the addresses you brought yourself                    |
| `enrich <list>`      | Find what is missing, verify only what needs it              |
| `write <angle>`      | Subjects, openers, follow ups, break up                      |
| `personalize <list>` | Icebreakers and AI variables per contact                     |
| `sequence <spec>`    | Steps, delays, conditions, A/B tests                         |
| `deliverability`     | SPF, DKIM, DMARC, warmup, volume, ramp plan                  |
| `campaign <spec>`    | Create and launch the campaign in Emelia                     |
| `replies`            | Triage replies, draft answers, handle opt outs               |
| `audit <campaign>`   | Rates per step and variant, against benchmarks               |

## What it will not do

* Spend credits, launch a campaign or reach a human without your confirmation.
* Launch when your deliverability is not ready: missing SPF, DKIM or DMARC, warmup off, or a volume above what your mailboxes can carry.
* Scrape LinkedIn outside the official Emelia integration.

## Stay up to date

Plugins from a third party marketplace do not update on their own. In Claude Code:

```text
/plugin marketplace update claude-outreach
```

or from a terminal, `claude plugin update claude-outreach@claude-outreach`. With a manual install from a git clone, run `git pull` in the clone, or `bash scripts/check-update.sh` to see how far behind you are.
