sellbird is a free, open source crm & sales project written in Python and released under AGPL-3.0. It has 4,775 GitHub stars, 1,013 forks and 30 open issues, and was last pushed 9 hours ago. On this registry it ranks #3 of 13 tracked projects in CRM & Sales, with 5 head-to-head comparisons available.

What is sellbird?

Sellbird, formerly Harvey, is an open-source cold-outreach platform for solo sellers and small sales teams who want to find prospect companies and decision makers, verify their email addresses, write and send personal cold email, and handle the replies — all running on their own machine on top of a Claude or ChatGPT subscription they already pay for.

What it is

Sellbird is a Python application, licensed AGPL-3.0, that implements an entire outbound prospecting pipeline as a single runnable loop. It discovers companies that match your customer, reads their websites for buying signals, identifies the owner or manager named on their own pages, learns the company's email pattern and verifies an address, writes a short personalised sequence per person, sends it from your own mailbox, and then reads and drafts answers to the replies. It runs locally, and by default nothing leaves the machine until you approve it.

The concrete problem it solves is the assembly of a cold-outreach stack out of separate paid data and sequencing products. Sellbird explicitly does without third-party prospecting data: there is no Apollo, ZoomInfo, Clearbit or Clay in the loop. Discovery runs free on OpenStreetMap by default, or on a paid source you choose, and every paid search shows its cost before it runs. Model work is routed through the Claude Code CLI on a Claude Pro or Max plan, or through Codex on a ChatGPT plan, so there is no API key and no per-token billing.

Key capabilities

  • A full pipeline invoked with sellbird run, which cycles through discovery, enrichment, verification, writing, sending and reply handling, and can be stopped after any step.
  • Company discovery that is free on OpenStreetMap by default, or runs against a paid source of your choosing with the cost displayed before the search executes.
  • Buying-signal detection by reading each company's own website — three HTTP requests per company, no model calls and no cost — for signals such as missing online booking, running ads or a role being hired for.
  • Decision-maker enrichment that finds the owner or manager named on the company's own pages, capped at two people per company.
  • Email verification that learns the company's pattern and marks every address verified, risky, guess or invalid, with only deliverable addresses ever sent to.
  • Sending from a Gmail, Microsoft 365 or SMTP mailbox inside your daily limit and the recipient's office hours, with drafts held in an outbox for approval by default.
  • Reply handling that drafts an answer, sets auto-replies aside, honours opt-outs immediately and escalates anything it should not answer alone, plus sellbird export for a sequencer-ready CSV when only the list is wanted.

Who uses it and how

  • Solo sellers and small teams who already hold a Claude Pro or Max plan, or a ChatGPT plan with Codex, and want outreach without a per-token API bill.
  • Operators who want a human in the loop: the default configuration holds every drafted email in the outbox until it is approved.
  • Teams that only need prospecting — the pipeline can be stopped after verification and the results exported as a CSV for an existing sequencer.
  • Self-hosters running it on their own machine, with a hosted alternative at sellbird.ai in early access that supplies sending domains, inboxes and warmup.
  • Teams deliberately avoiding commercial data brokers, since no Apollo, ZoomInfo, Clearbit or Clay subscription is involved.

Getting started

You need Python 3.11 or newer and either Claude Pro or Max with the CLI signed in via claude login, or a ChatGPT plan with the Codex CLI, after which sellbird run starts the loop. A hosted version with sending domains and inboxes configured for you is available at sellbird.ai in early access.

How it compares

Against paid prospecting platforms such as Apollo, ZoomInfo, Clearbit and Clay, Sellbird is AGPL-3.0 open source and self-hosted, so prospect data stays on your own machine rather than in a vendor's warehouse. Its cost model is the Claude or ChatGPT subscription you already hold plus a mailbox — roughly $7 a month for Google Workspace — instead of per-seat or per-credit data licensing.

When to use it — and when not to

Choose it if you are comfortable operating a Python 3.11+ environment, a sending mailbox and a signed-in Claude or Codex CLI, and if you want approval over every outgoing message. Do not choose it if you have no Claude or ChatGPT subscription, since there is no API-key path, or if you need a fully managed service today — the hosted option is still in early access. The AGPL-3.0 licence also matters if you intend to redistribute or build a hosted product on the code.

project readme (upstream, from github) — read inline

The open-source outreach platform that runs on your Claude or ChatGPT plan.

Sellbird finds companies that need what you sell, finds the person who decides, checks their email address, writes each one a personal cold email, sends it and handles the replies. It runs on your own machine, and by default nothing goes out until you approve it.

GitHub stars Tests License: AGPL-3.0 Python 3.11+ Hosted at sellbird.ai Formerly Harvey

Harvey is now Sellbird. Same project, same history, new name. Already running Harvey? Your setup carries over: see Upgrading from Harvey.

Prefer not to run it yourself? sellbird.ai is the hosted version, with sending domains, inboxes and warmup set up for you. It's in early access.

Sellbird's dashboard: the Today screen, a conversation that needs you, approving a drafted reply in the Outbox, the signals to confirm, searching contacts, then dark mode

The demo data is invented: "Bookwell" selling online booking to roofers, dental practices and HVAC shops, on .test domains.

What it does

Sellbird is a pipeline you can run end to end, or stop at any step.

What happens More
Find companies Searches for businesses that match your customer: free on OpenStreetMap, or on a paid source you pick. Every paid search shows its cost before it runs. Discovery
Learn why they'd buy Reads each company's own website for the buying signals you confirmed, like no online booking, ads running or a role they're hiring for. No model calls, no cost. Signals
Find who decides Finds the owner or manager named on the company's own pages, two people per company at most. Enrich
Check the address Learns the company's email pattern and verifies one address. Every address is marked verified, risky, guess or invalid, and only deliverable ones are ever sent to. Verify
Write and send Writes a short sequence for each person from what it found, then sends from your Gmail, Microsoft 365 or SMTP mailbox inside your daily limit and their office hours. Sending
Handle replies Reads every reply, drafts an answer, sets auto-replies aside, honours opt-outs at once, and hands you anything it shouldn't answer alone. Dashboard

Only want the list? Stop after verifying and run sellbird export for a sequencer-ready CSV of everything it found.

$ sellbird run

============================================================
Sellbird is online.
============================================================
Checking pipeline state...
Decision: write_campaign (3 new prospects with no drafts)
  handler   → Elena Park, Harbor Dental Studio     interested, answer drafted
  handler   → Priya Nair, Highline Roofing         objection, answer drafted
  writer    → 2-email sequence: Phoenix HVAC hiring a dispatcher
  outbox    → 5 emails waiting for your approval
Cycle complete. Sleeping for 15 minutes.

No model API bill

Sellbird thinks through the Claude Code CLI on your Claude Pro or Max plan, or through Codex on a ChatGPT plan. There's no API key and no per-token billing, and Sellbird throttles itself to leave room for your own work.

Claude Pro or Max, or a ChatGPT plan with Codex the subscription you already have
Finding businesses $0 on the default source, or about $0.37 per 1,000 on the cheapest paid one
Reading their websites $0: three HTTP requests each, no model call
Writing and sending your subscription and a mailbox (about $7 a month for Google Workspace)
Prospecting tools None. No Apollo, ZoomInfo, Clearbit or Clay.

How the loop, the budget and the isolation work: How Sellbird works.

Quick start

You need:

  • Python 3.11 or newer. macOS ships 3.9, so run brew install python@3.13 first if python3 --version says so.
  • Claude Pro or Max with the CLI signed in (claude login), or a ChatGPT plan with the Codex CLI (Codex setup).
  • A mailbox to send from, ideally Google Workspace on a separate sending domain. Microsoft 365 and SMTP work too.
  • Warmup on that mailbox. We recommend TrulyInbox: it warms a new mailbox before cold email and keeps it out of spam after, and Sellbird reads its inbox rate to tell you when you're ready.

Let Claude set it up

git clone https://github.com/ethanplusai/sellbird.git
cd sellbird
claude

Then say "set up Sellbird for me". The repo's CLAUDE.md turns Claude Code into the setup guide: it checks where you are, installs what's missing, asks what it needs and trains Sellbird on your product.

Or do it yourself

# 1. Install. Use python3.13, not python3: on macOS bare python3 is 3.9.
python3.13 -m venv .venv && source .venv/bin/activate && pip install -e .

# 2. Add credentials. Every variable is documented inline.
cp .env.example .env && $EDITOR .env

# 3. Learn your product from your website (writes sellbird.local.yaml).
sellbird train https://your-company.com

# 4. Confirm what makes a good prospect.
sellbird signals --confirm free

# 5. Find businesses. The default source is free and needs no account.
sellbird discover

# 6. Open the dashboard and start the loop.
sellbird dashboard          # prints a private link to http://127.0.0.1:5555
sellbird run

On Linux you can also run it with Docker.

Nothing sends without you

Every outgoing email waits in the Outbox for your approval until you turn on autopilot yourself. Before anything leaves, a pre-send check with no model involved rejects unfilled merge tags, banned phrases, overlong emails, extra links and undeliverable addresses. Autopilot still holds back any email that links to a domain that isn't yours or quotes Sellbird's own instructions. sellbird sending pause stops everything at once.

Details: Approval and sending and Legal and deliverability.

Upgrading from Harvey

Harvey was renamed Sellbird in 0.4.0. Your configuration, data and dashboard sign-in carry over:

git pull
pip install -e .        # once, to get the new `sellbird` command
sellbird dashboard
  • On first run Sellbird renames harvey.local.yaml to sellbird.local.yaml and data/harvey.db (and its log) to data/sellbird.*. It never overwrites a file that already exists under the new name, and waits if a Harvey process is still running from the folder. Stop that first.
  • HARVEY_* environment variables still work when the SELLBIRD_* one isn't set; rename them when convenient.
  • The harvey command and python -m harvey still work for now and say they moved. They will be removed in a later release.
  • If you edited the tracked harvey.yaml directly, git pull stops with "your local changes would be overwritten". Run git stash, git pull, then git stash pop. Git carries your edits into sellbird.yaml. If it reports a conflict there, keep your lines, delete the conflict markers, and run git stash drop. Better still, put your settings in sellbird.local.yaml, which git never touches.
  • Docker: the service is now sellbird. Run docker compose down, git pull, docker compose build, then docker compose up -d. HARVEY_UID/HARVEY_GID are still read.

Links to github.com/ethanplusai/harvey keep working: GitHub redirects them here.

Where your files live

Your config, knowledge and data live in one home folder. Which one, first match wins:

  1. SELLBIRD_HOME, if you set it (the Docker image sets it to /app).
  2. A checkout: the checkout folder itself, as before.
  3. Otherwise, for an installed package (pip or pipx), your user data folder:
Home folder
macOS ~/Library/Application Support/sellbird
Windows %APPDATA%\sellbird
Linux ~/.local/share/sellbird (or $XDG_DATA_HOME/sellbird)

Inside it are sellbird.yaml (and sellbird.local.yaml once you train), .env, prompts/ and skills/, all yours to edit. An installed package copies the defaults in on first run and never overwrites them, so your edits survive upgrades. data/ holds the database, the logs and the dashboard token.

Documentation

Guide What's in it
How Sellbird works The heartbeat loop, the subscription budget, project structure and the ideas behind it
Signals and the prospecting pipeline The 29 signals, cohorts, and the discover, profile, enrich and verify stages
Skills and sub-agents The editable sales playbooks and which agent uses which
Approval and sending The Outbox, autopilot, office hours and email signatures
The dashboard and the data Every screen, how sign-in works, and how the data is stored
Configuration and commands .env, sellbird.yaml and every command
Using a ChatGPT plan (Codex) Running on Codex instead of Claude
Legal and deliverability The rules you're sending under, and warmup
Microsoft 365 · Precleared Provider setup guides
Docker · Troubleshooting · Roadmap Running, fixing and what's next

Contributing

Pull requests are welcome. Read CONTRIBUTING.md first: it covers keeping real contact data out of the repo, test email, and signing off your commits. Found a security problem? Follow SECURITY.md instead of opening an issue.

See CHANGELOG.md for what changed in each release.

License

Sellbird is licensed under the GNU Affero General Public License v3.0. Harvey releases up to 0.3.x were released under MIT, and that code keeps its MIT notice in NOTICE.

TrulyInbox links in this project are affiliate links: the maintainer may earn a commission, at no extra cost to you.

Frequently asked questions

Is sellbird free to use?

sellbird is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does sellbird do?

Sellbird (formerly Harvey): the open-source outreach platform that runs on your Claude or ChatGPT plan. Finds companies and decision makers, verifies emails, wr

What is sellbird written in?

sellbird is primarily written in Python. Its source is publicly available at https://github.com/ethanplusai/sellbird, and it has 4,775 GitHub stars.