sellbird README

The project's README from github.com/ethanplusai/sellbird. As one markdown file: README.md.

Sellbird

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:

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

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
Extensions Adding routes, heartbeat steps and commands from a separate package
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.

sellbird (ethanplusai/sellbird)

Searching Database…

这是什么?Harvey 是一个自主运行的 AI 销售代理:它会自己寻找潜在客户商家,研究每家的具体情况,撰写个性化的冷邮件并发送出去,阅读对方回复,一步步把对话推进到约定会议——整个过程在你的自己电脑上循环运行。
这是托管的 SaaS 服务,还是我自己运行的软件?它是一个自托管的 Python 程序:你在自己的电脑上用自己的账号运行,它提供的是 localhost:5555 上的本地网页控制台,而不是云端账号。
我怎么把它跑起来?安装 Python 3.11+,登录 Claude Code CLI(或者设置好 Codex),然后让 Claude Code 执行 'set up Harvey for me' —— 仓库里自带一份 CLAUDE.md,充当设置向导:检查你的环境状态、安装缺少的东西,并让 Harvey 学习你的产品。
运行它需要 Claude 或 OpenAI 的 API key 吗?不需要单独的 API key —— Harvey 默认通过 Claude Code CLI 使用你已有的 Claude Pro/Max 订阅,也可以选择通过 Codex 使用 ChatGPT 套餐(macOS/Linux 上可选启用),另外还需要一个邮箱(如 Gmail/Google Workspace)来实际发送邮件。
Harvey 会不会不经我确认就自己发冷邮件?不会 —— 该项目明确保证没有任何邮件会在你确认之前发出;写好的外联邮件会在控制台或终端里逐条经过你批准后才会发送。
Harvey 只能在 macOS 上用,还是 Linux 也行?Claude 提供方是默认选项,任何装了 Python 3.11+ 和 Claude Code CLI 的机器都能用;Codex(ChatGPT)提供方则明确支持在 macOS 和 Linux 上作为可选方案启用。
寻找潜在客户实际要花多少钱?默认的数据源 OpenStreetMap 免费、查询次数不限,但对没有网店的实体小商家覆盖比较薄;付费数据源如 DataForSEO 或 Serper,大约每次搜索或每 1000 条结果花费 $0.0018–$1。
Harvey 在决定瞄准谁之前会看哪些信号?它可以跟踪 23 种信号(没有网站、Google 商家信息未认领、正在投广告、博客长期没更新、缺少 schema 标记等等),但在你自己查看并确认清单之前,它一条都不会去采集。
我怎么改 Harvey 写邮件的方式?Harvey 的销售知识以普通 Markdown 文件的形式存放在 skills/ 目录里(比如 emailframeworks.md 或 objectionhandling.md);改了文件,下一个 15 分钟心跳周期就会生效,不需要重新训练或重启。
Harvey 为什么不用 Apollo 或 Clearbit 这类工具?它完全不使用付费的销售线索数据库,而是自己从免费来源搭建联系人和公司数据,对每家商家只发三个普通 HTTP 请求(主页、robots.txt、sitemap),而不是依赖订阅制的数据库服务商。
Size
17.1 MB
Stars
4.6K
Age
7mo
Commits · 90 Days