Privacy

Earlyman never stores or sends
your prompts.

It keeps an eye on how you use Claude Code: how many tokens, which tools, what failed. Here is what that means for you, in plain words. Every line is checked against the code.

  • Runs on your computer

    Earlyman is a program on your own computer. There is no Earlyman account and no Earlyman server.

  • Sees counts, not conversations

    It reads numbers like tokens, times and which tools ran. It never stores or sends your prompts or Claude's replies. Optional local content mode, off by default, reads text only on your Mac and never sends it.

  • Nothing goes to us

    Earlyman's makers receive nothing from you: no usage data, no crash reports. There is no code that could send it.

  • You choose what connects

    Billing checks, alerts and the AI analyst only run once you set them up, or when you press a button.

  • Turn anything off

    Every connection has its own off switch. They are all listed below.

What leaves your computer, and when

Only these. Each one starts because you set it up or asked for it.

Billing checks you set up

If you keep a key for RunPod, OpenAI, Anthropic, OpenRouter, Firecrawl or another usage service on this computer, or add a usage address of your own, Earlyman uses it to ask that service for your usage and spend. Only the key and the question are sent.

To stopRemove the key, or delete that billing check.

AI analyst, only if you turn it on

It is off until you turn it on. Then, about once an hour, it sends counts and labels to Claude through your own Claude Code login, never your conversations. Pressing Explain on a failed step sends what kind of failure it was and how often, never the error text.

To stopLeave it off, or turn it back off. Don't press Explain.

Alerts you configure

If you connect Slack, a webhook or your own script, each new alert and the daily summary go there: what kind of alert it is, the numbers and a suggested fix. Never your conversations.

To stopRemove the channel, or switch alerts off.

Things you start yourself

Pushing a change you approved to your own git repository, checking a hand-off with another AI tool, sending daily totals to your own monitoring system, or the optional relay that passes Claude Code's own traffic through unchanged.

To stopDon't start them. Each one stops when you stop it.

Earlyman's makers

Never. There is no Earlyman server to send anything to.

To stopNothing to turn off.

Last reviewed 2026-10-20 against the code · Free, Apache-2.0, no meter

Technical detailsWhat it reads, what can leave, how long it keeps things, and the leak test
The leak test
  1. Put a fake secret in a Claude Code session log.
  2. Render every page and every answer Earlyman gives.
  3. Fail if the secret shows up anywhere. PASS
A

What Earlyman reads

SourceUsesNever
Claude Code's session logs on this MacToken counts, model, timestamps, session and agent ids, tool, skill and agent-type names, byte lengths, a session name you set; for a failed tool call, its error class and exit codeYour prompts, Claude's replies, Agent descriptions, tool input and output, file contents
Local content mode off by defaultOnly once you turn it on: prompt and reply text, Agent descriptions and the first error line of a failed step, read on this Mac for Playbooks hints, task summaries, error lines on Traces and hand-off notes. Turning it off archives what it kept, on your Mac, and clears itSent anywhere, in either mode: every outbound payload below carries classes, codes, counts, sizes and names only
Claude Code's settings fileHook, status-line, plugin and model entriesChanged without a preview and your approval; setup keeps a byte-for-byte copy
Claude Code's list of MCP serversMCP server names and the address each one points toTheir settings, headers or arguments, where tokens live
Billing keys, only in the folder you chooseFile names; a key's value only to call the vendor it belongs toPrinted, logged or stored anywhere else
Model servers running on this MacTheir health, model list and metric names (Ollama, llama.cpp, LM Studio, vLLM)The requests you send them
Model folders you nameNames, sizes, file headers, eval score filesWeights past the header; nothing is moved or written there
Reliability and change eventsThe same session fields as Traces, plus a fingerprint of your Claude Code settings, project instructions and rules, the plugin and MCP server name lists and the Claude Code version, each time they changeThe content of those files, settings values, or MCP server settings
B

What can leave this machine

CallWhenWhat is sentTurn it off
AI analyst (Claude Haiku), to Anthropic through your own Claude Code loginoff by default About once an hour, only after you turn it on (a setting that is off by default); the Run now and Explain buttons when you click themUsage counts, tool and agent-type names. Explain adds the failing steps' error classes, exit codes and counts; never error text, Agent descriptions, prompts or repliesLeave it off, or turn it back off. A start-up switch keeps it off whatever the setting says
RunPod billing checkif a key is found Every minuteYour key and a question about your pods and spendRemove the key, or start Earlyman with billing checks off
Billing checks you add: OpenAI costs, Anthropic cost report, Firecrawl credits, an event-count service, or a usage address of your ownonly if you add one On that check's scheduleThat vendor's key and a date-range questionDelete the check in Spend, or start Earlyman with billing checks off
Provider usage reports: OpenAI, Anthropic, OpenRouteronly with an admin key file HourlyThe key and a usage questionRemove the key file
OTel export to your own monitoring systemon request Only when you run the export and give it an addressDaily token totals per modelRun the export without an address; it then writes a file only
Request proxyopt-in Only while you run it and point Claude Code at itClaude Code's own API traffic, forwarded byte for byte to its usual destination; Earlyman logs sizes onlyStop the proxy
Changes: Applyon approval After you approve a changeA git branch pushed to your repo's own remote, never mainDo not approve
Hand-off verifyon request When you run itThe hand-off file you wrote, to the AI tool you pick; any quoted prompts (local content mode only) are cut firstDo not run it
Alerts to your webhook, Slack or a command you nameonly if you add one When a new alert opens, at most once per cooldown (6 h default) per alertThe alert's kind, severity, a templated title, counts, the fix line, a dashboard link and the paste block. Never prompt or reply text, tool output, file contents or project names. Webhooks are signed with a secret you choose; addresses stay in a private file on your Mac and are never printedSwitch alerts off, remove the channel, or start Earlyman with alerts off
GitHub sign-in, on a shared Earlyman serveronly with sign-in on When someone signs in with GitHub, and only if the server's owner has turned on accountsA one-time sign-in code to GitHub, which returns that person's verified email and user nameLeave accounts off (the default); a single-user Earlyman on your Mac never calls GitHub
Earlyman's makersNeverNothing. There is no Earlyman server and no code path to one, so there is no toggle to findNothing to turn off
Retention

Everything Earlyman keeps stays on this machine for as long as your disk keeps it. It keeps per-request counts after Claude Code's 30-day log cleanup; you can set it to keep fewer days.

Check it yourself

The leak test ships with the source, so anyone can run it. The exact switches and settings for every row are in the docs.

Last reviewed 2026-10-20 against the code