Skip to content
Outflare
Open source24 of 25 v1 steps shipped

The cold email engine your agents can run.

Connect hundreds of Google Workspace and Microsoft 365 inboxes in one upload, warm them up, run sequences and answer replies. Every send passes one policy check, and everything in the app is in the API.

Self-host on GitHub

Questions, or want help setting it up? Get in touch

  • AGPL-3.0
  • Go + Postgres
  • OpenAPI 3.1
  • MCP server
  • No per-mailbox fees
outflare.yourcompany.com
Overview: sends in the last day and week, reply and bounce rates, mailbox health and outreach totalsOverview: sends in the last day and week, reply and bounce rates, mailbox health and outreach totals

The real app, running on demo data. Every screen is also an API endpoint.

Works with the inboxes and agents you already use

  • Google Workspace
  • Microsoft 365
  • Any SMTP + IMAP
  • Claude
  • Cursor
  • Any MCP client

01 / Product

Everything a sending team needs. One binary and a Postgres.

Built for teams running hundreds of reseller inboxes, and for the agents working alongside them.

Connect 200 inboxes in one upload

Drop the CSV your reseller sends. Google and Microsoft are detected, SMTP and IMAP sign-in is checked, and passwords are encrypted at rest.

inboxes.csv · 200 rows200 created · 0 errors
MailboxStatusLimit
alex@trynorthwind.comSending40/day
sam@trynorthwind.comSending40/day
jordan@northwindhq.comSending50/day
riley@getnorthwind.ioSending30/day

One policy check on every send

Run by the engine right before SMTP. No sequence, script or agent can send around it.

  • Suppression list
  • Unsubscribes and bounces
  • Mailbox and domain daily limits
  • Sending window
  • Blocked: dana@acme.com is on the suppression list

Domain health, checked daily

SPF, DKIM, DMARC, MX and blocklists for every sending domain, with the exact record to fix.

  • trynorthwind.com✓ SPF✓ DKIM✓ DMARC
  • northwindhq.com✓ SPF✓ DKIM✓ DMARC
  • getnorthwind.io✓ SPF✓ DKIM! DMARC

Built-in warm-up

Your mailboxes warm each other up on a daily ramp, with spam rescue.

95%
inbox · 7d

Every reply in one inbox

Replies stop the sequence. Opt-outs are suppressed. Answer from the same mailbox and thread.

  • Zoe OkaforDoes it work with our Google inboxes?
  • Theo HaddadYes, keen to chat this week.
  • Owen PatelAsked to be removed

Scoped tokens, everything audited

Tokens are bound to one workspace and never outrank the person who made them. Every change is logged under who did it.

  • 12:04token: sdr-agentsequence.started
  • 11:58token: sdr-agentleads.imported 240 rows
  • 11:41maya@northwind.devmailbox.paused

Preview every email before it sends

Steps are rendered for real leads, and a lead missing a variable with no fallback is held back, not sent.

template
Hi {{first_name}}, saw {{company}} just raised.
zoe.okafor@vercel.com
Hi Zoe, saw Vercel just raised.

3 leads heldmissing company

02 / Quickstart

Running on your machine in three commands.

Docker Compose starts the engine and Postgres. The web app, API and OpenAPI spec are all on port 8080.

Full quickstart →
  1. 01Clone
    $ git clone https://github.com/outflareai/outflare
    $ cd outflare
  2. 02Configure
    $ cp deploy/.env.example deploy/.env
    $ echo "OUTFLARE_SECRET_KEY=$(openssl rand -base64 32)" >> deploy/.env
  3. 03Run
    $ docker compose -f deploy/docker-compose.yml up -d
    # open http://localhost:8080

03 / API and agents

Your agents get a real API, not a browser.

The web app has no private endpoints. Whatever it does, your scripts and agents can do through the same documented API, with limits they can't talk their way past.

MCP server
159 tools for Claude, Cursor and any MCP client, with a read-only mode.
OpenAPI 3.1
One contract, served by every instance at /v1/openapi.yaml.
Typed SDK
An Apache-2.0 TypeScript client generated from the contract.
Attributed
Every action lands in the audit log under the token's name.
Connect an agent →
# Give Claude Code a workspace, held to the token's scopes
$ claude mcp add outflare \
    -e OUTFLARE_URL=https://outflare.example.com \
    -e OUTFLARE_TOKEN=oft_... \
    -e OUTFLARE_WORKSPACE=<workspace id> \
    -- node ./outflare/mcp/dist/index.js

# Then just ask
> Which mailboxes are under 90% inbox placement?
> Import leads.csv and preview step 1 for 3 leads.

04 / Send path

Every email goes through the same gate.

Whether a sequence, a person or an agent asked for it, the engine checks the send right before SMTP, and records why when it blocks one.

05 / Open source

The tool that holds your mailboxes should be one you can read.

You own the data
Mailboxes, leads, every send and every reply live in your Postgres.
You can read the send path
Deliverability and compliance depend on what the sender does. Here the code is public.
No pricing page to outgrow
Your hundredth inbox costs what the inbox costs.
Build on it freely
The SDK is Apache-2.0, so integrations carry no copyleft.
CompareTypical hosted sequencerOutflare
Your data lives inThe vendor's databaseYour Postgres
PricingPer seat, mailbox or contactFree to self-host
Send logicClosedOpen source, one policy check
APIVaries by planEverything, OpenAPI 3.1
Agent accessOne key per accountScoped, audited tokens + MCP
If you outgrow itExport and migrateFork it
How the licensing works →

06 / Roadmap

What works today, and what's next.

Each step ships as its own pull request. Planned features are marked as planned, everywhere.

v1 progress24 / 25
  1. Step 1Shipped
    Foundation

    Go engine, Postgres schema and job queue, API skeleton, OpenAPI contract, Docker Compose, CI.

  2. Step 2Shipped
    Workspace and access

    Sign-in, workspaces, members and roles, invites, scoped API tokens, audit log.

  3. Step 3Shipped
    Mailboxes

    Bulk CSV import, SMTP and IMAP sign-in checks, SPF/DKIM/DMARC health, pools, daily limits, encrypted credentials.

  4. Step 4Shipped
    Leads and suppression

    Fast lead CSV import with dedupe and custom fields, lists, a suppression list of emails and domains, and the recipient policy check.

  5. Step 5Shipped
    Sequences and sending

    Sequence builder, scheduler, the policy check, SMTP sending, mailbox rotation, unsubscribe and bounce handling.

  6. Step 6Shipped
    Inbox

    IMAP sync, unified inbox, threads, replies, stop on reply, replies sorted by meaning, assign, snooze, done and labels.

  7. Step 7Shipped
    Cheap Inboxes, Google and Microsoft

    OAuth and admin-level authorisation for Google Workspace and Microsoft 365; Cheap Inboxes import and sync by API key, with Google app passwords paced for you.

  8. Step 8Next up
    Web app polish and TypeScript SDK

    Workspace overview, URL routing and mobile layout; @outflare/sdk with ok() errors, installed from the repository.

  9. Step 9Shipped
    MCP server for agents

    Claude, Cursor and other MCP clients run a workspace through 48 tools over the API, held to the token's scopes and the send policy.

  10. Step 10Shipped
    Sending domains

    Every sending domain with daily DNS and blocklist checks, issues with the exact fix, sending stats, and pause and daily caps enforced by the policy check.

  11. Step 11Shipped
    Warm-up

    Mailboxes warm each other up with a daily ramp, spam rescue and replies, and every mailbox and domain gets an inbox placement score.

  12. Step 12Shipped
    Mailbox allocation

    Each active sequence gets enough ready mailboxes for its daily target, from its own team first, with follow-ups kept on their mailbox, teams and senders, suggestions or automatic changes, and sending limits for agent tokens.

  13. Step 13Shipped
    Campaigns in other sequencers

    EmailBison, Instantly and Smartlead campaigns share the same mailbox allocation: Outflare reads each account every 5 minutes and adds or removes mailboxes there, after you review the first plan. Mailboxes also connected in Apollo are flagged.

  14. Step 14Shipped
    Projects

    One go-to-market motion per project: a versioned brief people and agents work from, the domains, mailboxes, lead lists and sequences that run it, one pause switch, one daily limit, and API tokens that stay inside it.

  15. Step 15Shipped
    Infrastructure plans

    Ask for domains and mailboxes by a date and get one plan: approve it once and Outflare buys or waits for you, checks DNS, connects and warms the mailboxes, and moves each one through warming, ready, resting and retired.

  16. Step 16Shipped
    Agent missions

    Type a goal and Claude drafts the mission, then Outflare's own agent runs it with your key, or give the goal to your own agent: it reads the brief, rehearses in a dry run, sends its plan for approval, asks for the tools it needs, and works within send and spend limits, with every call logged and changes held for approval when you choose.

  17. Step 17Shipped
    Sending servers

    Mailboxes from SMTP vendors or your own mail server, grouped by the IPs they share, with daily IP blocklist checks, automatic pause and a shared daily limit.

  18. Step 18Shipped
    Lead lists from data providers

    Search the customer's own Apollo or People Data Labs account into a lead list, find emails through a waterfall of providers with a cache and credit caps, score fit against the project's ideal customer, leave out anyone suppressed or already contacted, and refresh on a schedule.

  19. Step 19Shipped
    Outcomes and cost

    Meetings from Google Calendar, Outlook, Calendly, Cal.com and HubSpot, deals from HubSpot, a spend ledger tagged by project and by who spent it, and cost per meeting by project and sequence, with warehouse export.

  20. Step 20Shipped
    Connectors, verification, switching, health and reports

    One connectors framework (API key or OAuth, connect links so agents never see keys), eight verification services, Instantly and Smartlead importers, mailbox health from every signal, and reports by any dimension.

  21. Step 21Shipped
    Agencies and tracking domains

    A workspace per client with an agency team, agency-wide agent tokens and white label; optional tracking domain, click tracking and unsubscribe header settings.

  22. Step 22Shipped
    Usage stats and update checks

    An anonymous daily report from self-hosted servers (off on the first-run form, in Settings or with OUTFLARE_TELEMETRY=off) that also brings update and security notices.

  23. Step 23Shipped
    Analytics connectors

    Read Google Analytics, Search Console, Bing Webmaster Tools, PostHog, Plausible, Fathom, Matomo, Umami, Mixpanel, Amplitude, Cloudflare, Simple Analytics, Clarity and Vercel through the same five reports, on an Analytics page, the API and MCP.

  24. Step 24Shipped
    SEO connectors

    DataForSEO and Ahrefs for domain rating, backlinks, keyword rankings, competitors and site audit, with a monthly budget per connection, every call costed in Outcomes and weekly snapshots shown next to each website.

  25. Step 25Shipped
    Analytics for agents

    One call says what changed on each website: headlines with their tool and dates, period on period, top movers, unusual days, SEO moves and the connector that fills each gap; a catalog of what can be asked, MCP prompts and compact answers.

  26. After v1After v1

    CLI, more CRMs, provider marketplace, Cloud

    A CLI for scripting, Salesforce, Pipedrive and Attio, and a marketplace for data, model and mailbox providers.

Run it yourself today.

Two containers, one settings file, and your first mailboxes connected in about five minutes.

$ docker compose -f deploy/docker-compose.yml up -d