AUTOMATION · SALES

Harvey: An Open-Source AI Sales Agent on Claude Code, How It Works and How to Run It

Automations · October 19, 2026 · Evgenia Skakunova · 14 min read

Two requests today, none tomorrow. In the evening after your main work, you open a spreadsheet of companies that could use your services and write to the first addressee. Then the second. By the fifth email the text is being copied with small tweaks, and you yourself don't believe anyone will reply.

Contents
  1. What Harvey is and what it does
  2. How Harvey works: steps from search to email
  3. What you need to run it
  4. How much it costs
  5. How to set up Harvey through Claude Code
  6. How to set up Harvey manually
  7. Limitations to know before launch
  8. Cold emails: rules and a separate domain
  9. Who Harvey suits and who it doesn't
  10. Checklist
  11. FAQ
  12. Sources

That's how finding clients by hand eats your evenings and still comes in waves. One week you write every day, the next two weeks you don't write at all because you have no energy left. The companies you could help never hear about you, and sales rest on chance referrals.

Part of this work can be handed to a helper while you keep the decisions. In this article we'll look at Harvey: an open-source AI sales agent that finds companies, reads their websites, and prepares emails. What it does, what you need to run it, how to set it up, and where its limits are. The description is built on the project's README (it states version 0.2.1, and GitHub already has a 0.3.0 release, so the description may be out of date). I haven't tested Harvey's actual work yet.

What Harvey is and what it does

Harvey is an open project on GitHub. The description says it's an autonomous sales agent that runs on your Claude Code or Codex subscription. It finds companies worth selling to and learns something specific about each one.

Then it writes an email referring to that detail, sends it, reads the replies, and steers the conversation toward a meeting. It runs on your computer and repeats the cycle on its own.

What stands out is that you don't pay separately for calls to the model. Harvey uses the subscription you already pay for: Claude Pro or Max through Claude Code, or ChatGPT through Codex. The project license is MIT, which means the code is open and can be modified.

The author's idea of autonomy is telling too: control stays with you. The agent has quiet hours, a cap on subscription usage, a ceiling on sends, an approval queue, and an emergency stop. Before spending money and before sending an email, Harvey asks you, until you decide otherwise.

How Harvey works: steps from search to email

Inside, Harvey works in a loop. It wakes up, checks limits and quiet hours, decides what matters most right now, does it, and goes back to sleep. By default the loop repeats every 15 minutes.

It decides by a simple order, without calling the model. Replies to emails come first, followed by sending campaigns, then writing emails and finding new companies, and analysis in spare time.

Work on one batch of companies looks like this.

  1. Training. You give the address of your website, and Harvey reads it to understand what you sell, to whom, and how you're useful.
  2. Signal confirmation. Harvey can collect 23 signals about a company, for example whether it has online booking, whether ads are running, and when the blog was last updated. Until you confirm, it collects none. 21 signals are free, and they can be confirmed with one command.
  3. Finding companies. By default the source is the OpenStreetMap map, which is free. Paid sources exist too, but before launch Harvey shows a cost estimate and calls nothing until you press "go."
  4. Reading websites. For each company it makes three ordinary requests to the site and pulls out facts: which agency maintains the site, whether there's advertising, whether the blog is abandoned. The model isn't called at this step, so the step is free.
  5. Finding contacts and verifying addresses. The agent identifies who makes decisions and verifies the address. Emails go only to addresses that passed verification.
  6. Emails. For each company a chain of three emails is prepared. The first and second are up to 75 words, the third up to 40. There's a list of banned phrases that give away AI.
  7. Approval and sending. Every email waits for your decision. Before sending, code with no model involved checks it: no unfilled fields, no extra links, no banned phrases.
  8. Replies. Harvey reads replies, determines what the other person wants, and prepares the next message. It goes through the same approval queue.

There's a side benefit too. If you don't want to send emails at all, the harvey export command will dump the found companies with verified addresses into a CSV file. The author states directly that Harvey is worth running in this mode too.

What you need to run it

The list is short.

  1. Python 3.11 or newer. You can check the version with python3 --version. On a Mac, version 3.9 is often installed out of the box, and Harvey won't run on it. The README advises installing python@3.13 via brew.
  2. A subscription. An active Claude Pro or Max, with Claude Code installed on the computer and signed in. Instead, you can use a ChatGPT plan with Codex, but that option is enabled separately and works on macOS and Linux.
  3. A mailbox. Sending requires a mailbox: Gmail or Google Workspace is recommended, and Microsoft 365 or ordinary SMTP mail also works. It's better to set up the mailbox on a separate secondary domain (more in the section on cold email rules).
  4. Time to review. You'll have to approve emails yourself and warm up the mailbox, more on that below.

If you choose a ChatGPT subscription, note that for Codex the project requires an exact version of the Codex CLI program. The README names version 0.159.3, and Harvey doesn't accept others, including newer ones. The Codex option isn't supported on Windows; you need Claude there.

How much it costs

There's no separate fee for the model; it's your regular subscription. The rest, per the README's table, looks like this.

WhatHow much
Claude Pro or Max, or ChatGPT with CodexYour current subscription
Finding companiesfree on the default source; the cheapest paid one costs about $0.37 per 1,000
Reading websitesfree
Emails and sendingsubscription and a mailbox; the README names Google Workspace at about $7 a month when billed yearly, more month to month

Service prices change, so check them on the providers' sites before launch. In addition, subscriptions have limits. Harvey reads the remainder itself and slows down to leave headroom for your own work, but checking the terms of your chosen plan is up to you.

How to set up Harvey through Claude Code

This is the simplest path, and it's meant for people who find the command line awkward. The README lists it first.

  1. Download the project: in the terminal run git clone https://github.com/ethanplusai/harvey.git, then go into the harvey folder.
  2. Start Claude Code with the command claude.
  3. Type to it: set up Harvey for me.

The repository contains a CLAUDE.md file that turns Claude Code into an installation wizard. It checks which stage you're at, installs what's missing, asks questions, and trains Harvey on your product. It asks questions as it goes, so it's better to prepare the answers in advance. You'll need the website address Harvey will use to understand your product, a profile of the companies you're useful to, and a mailbox on a separate domain.

How to set up Harvey manually

For those used to the terminal, the README has six steps.

python3.13 -m venv .venv && source .venv/bin/activate && pip install -e .
cp .env.example .env
harvey train https://your-company.com
harvey signals --confirm free
harvey discover
harvey dashboard
harvey run

What each command does.

  • The first line creates a virtual environment and installs the project. The README stresses that on a Mac you need exactly python3.13, not just python3, otherwise the environment will be built from the old version 3.9.
  • .env is the file with credentials. You need to open and fill it in; every variable inside has an explanation. Only the mail settings are required, the rest is optional.
  • harvey train reads your website and teaches the agent. Instead of the example address, enter your own.
  • harvey signals --confirm free confirms the free signals. Without this step, the search finds nothing.
  • harvey discover looks for companies. Before it you can run harvey discover --estimate to see the cost estimate.
  • harvey dashboard opens a panel on your computer at localhost:5555, where you can see companies, the email queue, and replies.
  • harvey run starts the loop.

You can stop Harvey at any moment. The Ctrl+C shortcut shuts the loop down, and the harvey sending pause command stops only sending. The state is kept in a local database, so work resumes without losses.

Limitations to know before launch

Some limitations are stated in the README directly. Here are the main ones.

  • Companies only. Harvey looks for businesses and writes to them. Private individuals aren't in the search.
  • Emails wait for approval. By default nothing goes out without your "yes." The setting can be turned off, but it's better to leave it on at first: that way you'll see exactly what goes out in your name.
  • No auto-booking into a calendar. Calendar integration for automatic meeting booking is listed in the project's roadmap. For now the agent steers the conversation toward a meeting but doesn't book it.
  • Everything is in English. The instructions and email templates are designed for English. How Harvey writes and understands replies in Russian isn't stated.
  • Russia isn't tested. The legal section describes the US, the EU, and the UK. How the agent works with Russian companies and whether they can be found in the data source is unknown.
  • The free source's coverage is uneven. OpenStreetMap describes premises, so companies without a visible office or shop are scarce there. The author admits this himself.
  • The subscription isn't unlimited. Your plan has limits, and the agent accounts for them, as it does for quiet hours. When a limit is used up, Harvey slows down and waits.

If you need something from the list above, test on a small volume first before building a sales process on the agent.

Cold emails: rules and a separate domain

*This is not legal advice. Below are the recommendations from the project description, retold. They don't replace the law of your country.*

The sender of the emails is you, not Harvey: it only automates the outreach. A cold email, according to the project's text, is legal in most places if you do everything right, and costs a lot if you do it wrong. For the US, an example is given of a fine of up to $53,088 per email for violations of the CAN-SPAM law.

For the EU and the UK, it says that emailing a company requires a justified legitimate interest. The offer must be relevant to that specific person, and you must know where the address came from.

The description says nothing about Russia. Requirements for outreach, advertising, and personal data processing differ in each country, so you need to study them yourself before launch or ask a lawyer. If you plan outreach at large volume or in a regulated industry, the project also advises talking to a lawyer.

Practical rules from the same source:

  1. Set up a separate domain for outreach. Don't send cold emails from your main domain. For example, for acme.com people take a secondary getacme.com.
  2. Set up SPF, DKIM, and DMARC: three records in the domain settings that confirm the emails are really sent by you. Without all three, Gmail will send your emails to spam.
  3. Warm up the mailbox for 2-4 weeks. If you send everything at once from day one, the emails land in spam, and restoring the domain's reputation afterward takes a long time.
  4. Start small. The advice is 10-20 emails a day per mailbox and growth of about 5 a day. The default limit of 50 emails a day in the settings is an upper bound, not a target.
  5. Watch bounces. If undelivered emails exceed roughly 3%, stop and fix the address list.

For the US, conditions are listed: an honest subject line, a working unsubscribe, and a physical mailing address in the signature, which must be set up before the first campaign. If the other person asks whether they're talking to an AI, Harvey by its instructions answers honestly. The project author asks not to change this behavior.

Who Harvey suits and who it doesn't

It suits you if you sell services to companies and have a clear client profile: industry, size, city. That covers studios, agencies, freelancers with B2B services, and automation specialists. It also suits those who like to check everything themselves: the approval queue leaves the last word to you.

It's convenient if you already work in Claude Code and are ready to spend an evening on installation, the domain, and mail. It's also a decent way to see how a sales agent is built from the inside: its instructions are plain text files, and you can edit them for yourself.

It doesn't suit you if your clients are private individuals: a psychologist, coach, or tutor. The agent looks for companies and writes to them. It also doesn't suit those who need ready Russian emails and coverage of Russian companies out of the box: that hasn't been tested. Pass on it too if you're not ready to deal with the domain, mail, and warm-up, because without them the emails will land in spam.

Finally, Harvey doesn't replace a conversation with a live client. It prepares the ground and carries the correspondence, while the meeting, the price, and the decision to work together are yours to discuss.

If related tasks interest you, take a look at the breakdown of a free tool for building a company database, ScrapeGraphAI, and the roundup 5 MCP Servers for Claude Code.

SAVE THIS

Checklist

  • Harvey finds companies, reads their websites, and writes each one its own email. The decision on every email stays with you.
  • To run it you need Python 3.11 or newer, a Claude Pro or Max subscription (or ChatGPT with Codex), and a mailbox on a separate domain.
  • The easiest way is to open the project folder in Claude Code and type "set up Harvey for me." Manual setup takes six steps.
  • Harvey works only with companies; it doesn't write to private individuals.
  • By default every email waits for approval. Turn on automatic sending only after you've checked how it works.
  • Auto-booking meetings in a calendar is still on the project's roadmap. For now the agent steers the conversation toward a meeting but doesn't book one.
  • The project and its instructions are in English. How it handles Russian or Russian companies hasn't been tested.
  • Cold email rules differ by country. Learn them before launch and send from a separate domain; warm-up takes 2-4 weeks.

FAQ

What is Harvey?

An open-source AI sales agent that runs on your computer. It finds companies, reads their websites, writes emails, reads replies, and steers the conversation toward a meeting. The code is on GitHub under the MIT license.

Do I need an API key and pay for each request?

According to the README, there is no separate API key and no per-request payment. The agent uses your Claude Pro or Max subscription through Claude Code, or a ChatGPT subscription through Codex. The subscription has its own limits, and Harvey takes them into account.

Does Harvey send emails without my knowledge?

Not by default. Every email waits for your approval. Automatic sending can be turned on in the settings, but it's better to start with manual approval.

Does Harvey book meetings?

Not yet. It steers the conversation toward a meeting, and auto-booking into a calendar is listed in the project's roadmap.

Is Harvey suitable for Russian companies and emails in Russian?

This hasn't been tested. The project and its instructions are in English, and the legal section of the description covers the US, the EU, and the UK. Before relying on it in Russia, run a small test and learn the requirements for email outreach.

Can I use Harvey if I work with private clients?

Probably not. The agent looks for companies and writes to them. It doesn't suit a psychologist or coach whose clients are private individuals.

Do I need a separate domain for emails?

The project advises sending cold emails from a separate secondary domain, setting up SPF, DKIM, and DMARC, and warming up the mailbox for 2-4 weeks. This protects your main domain from landing in spam.

Sources

  1. Harvey, README (the README states version 0.2.1; as of 2026-10-19 the repository has a v0.3.0 release)accessed: 2026-10-19
  2. Harvey, MIT licenseaccessed: 2026-10-19

Want a system like this for your niche?

Book a free review: I'll show you what can come off your plate in content and sales.

Book a review →