<- all tokdocs

Harvey's 75-word email rule lives in a Markdown file, and the only cap its code enforces is 220 words

Watch on TikTok

View on TikTok ->

A 57-second vertical clip at 720x1280, posted 2026-10-01 at 18:30 UTC by @jgoldieseo (channel name "Julian The AI Expert"), carrying 765 views, 54 likes, 1 comment, 26 reposts and 53 saves at capture, over the creator's own audio track "original sound - Julian The AI Expert". I analyzed 29 extracted frames at 2-second intervals and a 184-word transcript. The frames alternate between a talking-head lower half and an upper-half screen recording: the GitHub repo page for ethanplusai/harvey showing the folders docs, harvey, prompts, skills, tests, .env.example and .gitignore; the repo README header reading "An autonomous sales agent that runs on your Claude Code subscription" with an MIT license tab; a terminal block from that README printing $ harvey run, "Harvey is online. Always Be Closing.", discover → 41 businesses in Portland, OR, profile → 41 sites read, 288 observations, scout → 12 scored against your ICP, writer → 3-email sequence for Cascade Landscaping, outbox → 12 emails waiting for your approval and "Cycle complete. Sleeping for 15 minutes."; and the local dashboard at localhost:5555 with tabs Signals, Discover, Companies, Contacts, Campaigns, Outbox, Conversations, Activity, Usage, Settings. The Discover tab shows a provider menu with OpenStreetMap (Overpass) marked ready and free, DataForSEO Business Listings marked needs a key at $0.372 per 1,000 businesses ($0.012/query + $0.00036 each), and DataForSEO SERP at $0.0006 per search. The Outbox shows two drafted emails signed "Ethan", one to nadia@cascadelandscaping.com and one to rortega@rosecitygrounds.com, each with Approve and Reject buttons. Two full-screen caption cards are caught mid count-up animation and display wrong numbers: one reads "every 8" while the subtitle says "Then every 15", and one reads "<29" while the subtitle says "every email is" (under 75 words).

The repo is real, it is MIT-licensed, and it is not the Harvey you have heard of

The video points at ethanplusai/harvey on GitHub, visible in frames 1, 4, 28 and 29, with an on-screen call to action reading "SEARCH: HARVEY CLAUDE CODE". That repo exists: github.com/ethanplusai/harvey, owned by a user with the display name "Ethan+" and the bio "You can just build things." It is Python, MIT-licensed, and carried 97 stars and 16 forks when I checked. The README headline matches the frame exactly: "An autonomous sales agent that runs on your Claude Code subscription."

This is a different Harvey from the one most readers will think of. Harvey the legal-AI company announced a $550 million raise at a $15.5 billion valuation on 2026-09-09, co-led by Diffusion and Lightspeed Venture Partners, and says 80% of Am Law 100 firms use it. The two share a name and nothing else. The GitHub project has no company, no funding and no homepage.

The video's framing of newness is off. The on-screen badge says "NEW" and the voiceover opens with "Someone just built." The repo's first commit, "Initial commit: Harvey — autonomous AI sales agent", landed 2026-03-12 at 01:28 UTC, roughly six and a half months before the video posted. What is actually recent is release 0.2.0, pushed 2026-09-13, which the project's own changelog calls "the release that made Harvey worth running" because the previous version "could not reliably find anyone to send it to." The folder timestamps visible in frames 28 and 29 line up with this: prompts at 3 months, tests at 2 months, docs, harvey and skills at 3 weeks.

The 75-word claim is a prompt instruction, not an enforced limit

The voiceover says "every email is under 75 words" and the on-screen card freezes mid-animation at "<29" on its way to 75. The 75 is in the project, but it is softer than the video implies, and the repo contradicts itself on the other two emails.

The README's sub-agent table says the Writer produces "Email 1 under 75 words, email 2 under 75, email 3 under 40." The actual prompt file it points to, skills/email_frameworks.md, says something different on line 63: "Under 75 words for email 1. Under 60 for emails 2 and 3. Count them. If you're over, cut." A later section suggests "Under 40 words if possible" for the breakup email specifically. So the README and the file it describes disagree about email 2, and neither one matches "every email is under 75 words" as a rule of the system.

More to the point, these are instructions to a language model. The only word count the code enforces sits in harvey/gate.py, the deterministic pre-send gate, and it is MAX_BODY_WORDS = 220, annotated in the source as "hard ceiling; sequences aim far lower." An email of 180 words would violate every prompt rule in the repo and still pass the gate. The file's own docstring is honest about this: "LLM instructions are a floor, not a guarantee."

The two sample emails the video shows do come in short. The Cascade Landscaping draft runs 37 words and the Rose City draft runs 32, both well inside any of the stated caps. Both also open with an em dash ("Nadia — you're running Google Ads", "Ruben — your site has no schema markup") and sign off with one, which email_frameworks.md lists first in its banned patterns: "Em dashes: Dead giveaway of AI writing. Never use them." The gate's BANNED_PHRASES tuple checks for 28 literal strings including "i hope this finds you well", "as an ai" and "game-changer". It does not check for em dashes. The showcase emails break the project's own top style rule, and nothing in code catches it.

Subscription billing is real, the mechanism is documented, and "Max" is too narrow

The voiceover says Harvey "runs on your Claude Max subscription, so there's no extra AI bill." The mechanism checks out. harvey/brain.py builds its subprocess call at lines 60 to 63 as claude, -p, the prompt, --output-format json, --dangerously-skip-permissions. All three flags are real and documented: -p runs Claude Code non-interactively per the headless docs, --output-format json returns structured JSON with result and session metadata, and --dangerously-skip-permissions is listed in the CLI reference as equivalent to --permission-mode bypassPermissions. A -p run that is not in bare mode uses the subscription login rather than an API key, which is exactly what the README is claiming.

The video narrows the plan requirement incorrectly. The README, the prerequisites list and the repo description all say Claude Pro or Max. Claude's pricing page lists Pro at $20 per month billed monthly, $17 per month billed annually, and Max starting at $100 per month, and states that Claude Code is included in all paid plans. A viewer who takes the video literally would conclude they need the $100 tier when the $20 tier is the stated minimum.

"No extra AI bill" is also narrower than "free." The README's own cost table lists a mailbox at roughly $7 a month on Google Workspace and, if you move off the free discovery source, paid data. The code's throttle is max_daily_claude_percent: float = 80.0 in harvey/config.py, which stops Harvey from eating your own interactive rate limit rather than your wallet.

The on-screen pricing checks out, except where the repo disagrees with DataForSEO

The Discover tab in frame 23 shows DataForSEO Business Listings at "$0.372 per 1,000 businesses ($0.012/query + $0.00036 each)". The arithmetic is right and so is the source. DataForSEO's Business Listings pricing publishes $0.012 per task and $0.00036 per item, with a worked example of 1,000 tasks plus 1,000,000 items equalling $372. One task returning 1,000 listings costs $0.012 + $0.36 = $0.372.

The same frame shows DataForSEO SERP at "$0.0006 per search". That matches DataForSEO's published SERP pricing, where Standard queue is $0.0006 per SERP, Priority is $0.0012 and Live is $0.002. The repo's README, however, lists DataForSEO SERP at "$0.0018 / search", which matches none of the three published tiers. The dashboard the video shows is the accurate surface; the README table is not.

The README's two supporting claims about why depth matters are both verifiable. Google did remove the &num=100 parameter in September 2025, around September 11, which is why requesting 100 results is now billed as roughly ten pages. And on the compliance side, the README's "$53,088 per email" figure is correct: the FTC's 2025 inflation adjustment raised the maximum civil penalty for FTC Act Section 5 violations from $51,744 to $53,088, effective January 17, 2025.

Voiceover and screen disagree on whether Harvey sends anything by itself

At 0:08 the voiceover says Harvey "writes them a personalized cold email, and sends it." The terminal output filling the top half of the frame at that moment reads outbox → 12 emails waiting for your approval. The video resolves this twelve seconds later with "you approve every email before it goes out," but the first claim is what the hook leads with.

The approval behavior is the default, not a property of the system. harvey/config.py sets require_approval: bool = True and max_daily_sends: int = 50. The README says plainly: "When you trust it, set channels.email.require_approval: false for full autopilot." So the correct statement is that Harvey ships gated and can be ungated in one config line.

The 15-minute heartbeat the video cites is accurate and comes from the same file: heartbeat_interval_minutes: int = 15, matching the README's "Every 15 minutes by default" and the terminal's "Sleeping for 15 minutes." The count-up card showing "every 8" is an animation artifact, not a competing figure.

One other on-screen number worth reading: the Signals tab in frame 10 displays the counters 20, 3 and 0. The README says Harvey knows 23 signals and that harvey signals --confirm free confirms the 21 that cost nothing. The 20 and 3 sum to the 23-signal catalog, which is consistent, though it does not split 21 free against 2 paid. The video never mentions the signal confirmation gate at all, which is the part of Harvey that actually decides what gets collected.

Key Takeaways

  • The repo is github.com/ethanplusai/harvey: MIT-licensed, Python, 97 stars and 16 forks at capture. It is unrelated to Harvey the legal-AI company, which raised $550M at a $15.5B valuation on 2026-09-09.
  • Correction: the video's "NEW" badge and "someone just built" are wrong on timing. First commit was 2026-03-12, about six and a half months before the 2026-10-01 post. Release 0.2.0 shipped 2026-09-13.
  • Correction: "every email is under 75 words" describes a prompt instruction, not an enforced rule. skills/email_frameworks.md line 63 says 75 words for email 1 and 60 for emails 2 and 3, while the README's table says 75/75/40. The only cap in code is MAX_BODY_WORDS = 220 in harvey/gate.py.
  • Correction: the video says Claude Max. The README, prerequisites and repo description all say Claude Pro or Max. Pro is $20 per month monthly or $17 annually; Max starts at $100 per month; Claude Code is included in all paid plans.
  • The subscription mechanism is exactly as described: brain.py lines 60-63 shell out to claude -p <prompt> --output-format json --dangerously-skip-permissions, all three documented Claude Code flags.
  • The two sample emails on screen run 37 and 32 words. Both open and close with em dashes, which email_frameworks.md bans as the first entry in its banned-patterns list, and which the 28-string BANNED_PHRASES tuple in gate.py does not check for.
  • On-screen DataForSEO pricing is correct: $0.012 per task plus $0.00036 per listing equals $0.372 per 1,000, and SERP Standard queue is $0.0006 per request. The README's own "$0.0018 / search" for SERP matches no published DataForSEO tier.
  • Approval is a default, not a guarantee: require_approval: bool = True and max_daily_sends: int = 50 in config.py, with the README documenting require_approval: false as the autopilot switch. The voiceover's "and sends it" plays over a frame reading "12 emails waiting for your approval".
  • The README's compliance figure is right: FTC's 2025 adjustment set the Section 5 maximum civil penalty at $53,088, up from $51,744, effective January 17, 2025.
  • Unverified: the README's claim that OpenStreetMap holds "under 2,000 roofers and under 2,300 plumbers in the entire US"; the "2026 reply-rate data" cited inside email_frameworks.md; Serper's "2,500 free, no card" tier; and the README's reading of Anthropic's terms as permitting personal automation of your own subscription, which the repo itself flags as "a grey area worth understanding for yourself."

Resources

  • ethanplusai/harvey on GitHub — confirms the repo exists, is MIT-licensed Python, created 2026-03-12, last pushed 2026-09-13, 97 stars and 16 forks at capture.
  • harvey/gate.py — confirms MAX_BODY_WORDS = 220, MAX_SUBJECT_LEN = 90, MAX_LINKS = 1, and the 28-entry BANNED_PHRASES tuple with no em-dash check.
  • skills/email_frameworks.md — 301 lines; confirms the em-dash ban and the "under 75 for email 1, under 60 for emails 2 and 3" rule that contradicts the README table.
  • harvey/brain.py — confirms the exact Claude CLI invocation and the per-agent skill map.
  • harvey/config.py — confirms heartbeat_interval_minutes: 15, require_approval: True, max_daily_sends: 50, max_daily_claude_percent: 80.0.
  • Claude Code CLI reference — confirms --dangerously-skip-permissions equals --permission-mode bypassPermissions, and --output-format options.
  • Claude Code headless docs — confirms -p non-interactive mode and that a non-bare -p run uses the subscription login rather than an API key.
  • Claude pricing — confirms Pro at $20/month ($17 annual), Max from $100/month, and Claude Code included in all paid plans.
  • DataForSEO Business Listings pricing — confirms $0.012 per task and $0.00036 per item, and the $372-per-million worked example.
  • DataForSEO SERP API — confirms Standard $0.0006, Priority $0.0012, Live $0.002 per SERP.
  • FTC inflation-adjusted civil penalty amounts for 2025 — confirms the $51,744 to $53,088 increase effective January 17, 2025.
  • Harvey raises $550M at a $15.5B valuation — confirms the legal-AI Harvey is a separate company, raise dated 2026-09-09, co-led by Diffusion and Lightspeed.

Published October 1, 2026. Writeup generated from a favorited TikTok.