Cold outreach from your own mailboxes. The owl delivers.
TypeScript
5
7 commits
updated Sep 30, 2026
Your B2B email campaigns, free and simplified.
Email sequences from the mailboxes you already own. You can control Hedwig and analyze your campaigns from Claude Code or Codex.
flyhedwig.com · Start · Self-host · Agent setup
A sequence is simple: a first email, a few follow-ups, and a stop the moment someone answers. What makes it work is where it is sent from and how carefully. Hedwig handles both, and lets your agent do the rest.
flowchart TB
subgraph sending ["Sending"]
direction LR
list["Your list<br/>CSV, Excel, or your agent's research"] --> campaign["Campaign<br/>up to 12 steps"]
campaign --> pace["Pace<br/>window, daily limits, ramp-up"]
pace --> mailbox["Your mailbox<br/>its own SMTP or Microsoft 365"]
end
subgraph replies ["Replies"]
direction LR
inbox["Inbox check<br/>every 2 minutes"] --> stop["Sequence stops"]
inbox --> agent["Reply agent<br/>label + draft"]
agent --> you["You press send"]
end
sending --> person(("Prospect"))
person -->|replies| replies
sequenceDiagram
participant H as Hedwig
participant M as Your mailbox
participant P as Prospect
H->>M: Day 0: step 1, inside the sending window
M->>P: Quick question about wholesale
H->>M: Day 3: step 2, in the same thread
M->>P: Re: Quick question about wholesale
P-->>M: Sure, send me your price list
M-->>H: Read within two minutes
Note over H,M: Stops the sequence, labels it Interested, drafts an answer for you
H--xP: Day 7: step 3 is never sent
Connect once:
# Claude Code: then type /mcp in a session to sign in
claude mcp add --transport http hedwig https://flyhedwig.com/mcp
# Codex
codex mcp add hedwig --url https://flyhedwig.com/mcp
codex mcp login hedwig
Running your own server? Use its address instead of flyhedwig.com. Then ask in plain words:
How is the roasters campaign doing? Which mailbox and which step get the most replies?
Who replied interested this week? Draft answers, I'll send them.
Pause the campaign, add these 200 contacts and show me step 2 for the first one.
| Area | What it can do |
|---|---|
| Campaigns | Create, edit, preview, test-send, start, pause, clone, statistics |
| Leads | Enroll, enrich, correct, requeue, remove |
| Research | Tables where each fact keeps its source |
| Inbox | Read threads, label, draft, send the replies you ask for |
| Mailboxes | Daily limit, timezone, ramp-up, DNS check |
| Workspace | Members, invitations, reply agents |
Starting a campaign and sending a reply are separate permissions you grant when you connect. Mailbox passwords never pass through the agent. More in docs/mcp.md.
Hosted. Sign up at flyhedwig.com.
On your own server. You need Docker.
git clone https://github.com/gabrilator/hedwig && cd hedwig
cp .env.example .env # set ORIGIN, HEDWIG_MASTER_KEY and the first user
docker compose up -d --build
Open the address you set as ORIGIN and sign in. Every setting, and Microsoft 365, is in
docs/self-hosting.md.
Then, either way:
{{firstName|there}} style variables.npm install, then npm run dev and npm run worker in two terminals. Run npm run check and npm test before a pull
request. The rules the code follows are in CLAUDE.md, so your coding agent follows them too.
MIT. See LICENSE.
Cold outreach from your own mailboxes. The owl delivers.
TypeScript
5
7 commits
updated Sep 30, 2026
Your B2B email campaigns, free and simplified.
Email sequences from the mailboxes you already own. You can control Hedwig and analyze your campaigns from Claude Code or Codex.
flyhedwig.com · Start · Self-host · Agent setup
A sequence is simple: a first email, a few follow-ups, and a stop the moment someone answers. What makes it work is where it is sent from and how carefully. Hedwig handles both, and lets your agent do the rest.
flowchart TB
subgraph sending ["Sending"]
direction LR
list["Your list<br/>CSV, Excel, or your agent's research"] --> campaign["Campaign<br/>up to 12 steps"]
campaign --> pace["Pace<br/>window, daily limits, ramp-up"]
pace --> mailbox["Your mailbox<br/>its own SMTP or Microsoft 365"]
end
subgraph replies ["Replies"]
direction LR
inbox["Inbox check<br/>every 2 minutes"] --> stop["Sequence stops"]
inbox --> agent["Reply agent<br/>label + draft"]
agent --> you["You press send"]
end
sending --> person(("Prospect"))
person -->|replies| replies
sequenceDiagram
participant H as Hedwig
participant M as Your mailbox
participant P as Prospect
H->>M: Day 0: step 1, inside the sending window
M->>P: Quick question about wholesale
H->>M: Day 3: step 2, in the same thread
M->>P: Re: Quick question about wholesale
P-->>M: Sure, send me your price list
M-->>H: Read within two minutes
Note over H,M: Stops the sequence, labels it Interested, drafts an answer for you
H--xP: Day 7: step 3 is never sent
Connect once:
# Claude Code: then type /mcp in a session to sign in
claude mcp add --transport http hedwig https://flyhedwig.com/mcp
# Codex
codex mcp add hedwig --url https://flyhedwig.com/mcp
codex mcp login hedwig
Running your own server? Use its address instead of flyhedwig.com. Then ask in plain words:
How is the roasters campaign doing? Which mailbox and which step get the most replies?
Who replied interested this week? Draft answers, I'll send them.
Pause the campaign, add these 200 contacts and show me step 2 for the first one.
| Area | What it can do |
|---|---|
| Campaigns | Create, edit, preview, test-send, start, pause, clone, statistics |
| Leads | Enroll, enrich, correct, requeue, remove |
| Research | Tables where each fact keeps its source |
| Inbox | Read threads, label, draft, send the replies you ask for |
| Mailboxes | Daily limit, timezone, ramp-up, DNS check |
| Workspace | Members, invitations, reply agents |
Starting a campaign and sending a reply are separate permissions you grant when you connect. Mailbox passwords never pass through the agent. More in docs/mcp.md.
Hosted. Sign up at flyhedwig.com.
On your own server. You need Docker.
git clone https://github.com/gabrilator/hedwig && cd hedwig
cp .env.example .env # set ORIGIN, HEDWIG_MASTER_KEY and the first user
docker compose up -d --build
Open the address you set as ORIGIN and sign in. Every setting, and Microsoft 365, is in
docs/self-hosting.md.
Then, either way:
{{firstName|there}} style variables.npm install, then npm run dev and npm run worker in two terminals. Run npm run check and npm test before a pull
request. The rules the code follows are in CLAUDE.md, so your coding agent follows them too.
MIT. See LICENSE.