Open source · MIT · macOS / Windows / Linux

Claude that works while you sleep.

Lea is a menu-bar app that watches your Claude usage and autonomously runs a to-do queue the moment your limit resets. Queue work before bed — wake up to it done.

Reset-aware retry loop Sandboxed by default on macOS Keeps your Mac awake overnight
Live demo — add a task and watch Claude work
Lea ready
02:14:30
until your limit resets
62% of window used~38.4k tok/h
Opus812k
Sonnet271k
Refactor the auth module
running~/projects/School
Read src/auth/session.ts
Edit src/auth/guard.ts
Running test suite…
Write integration tests for the API
queuedretries at reset
Security audit of RLS policies
done2:03 AM
For you to do
Apply the migration with supabase db push
Auto-run
The autonomous loop

Queue it tonight. Done by morning.

Lea reads your usage from Claude Code's local transcripts, runs the next task headlessly, and when the limit is hit it simply waits for the reset and picks up where it left off.

1

Queue your to-dos

Each task is just an instruction plus a project folder. Add as many as you like and leave Lea running.

2

It runs headlessly

The runner takes the first task and runs claude -p in an isolated sandbox while you have capacity.

3

Hits the limit? It waits

On a usage-limit, the task is requeued and Lea sleeps until the exact reset time — then retries automatically.

4

Wake up to results

Finished tasks move to Done with full logs, a change report, and a list of follow-ups for you.

Features

Everything you need to run Claude unattended.

Usage & reset tracking

Live token count, burn rate, value used, and a precise countdown to your next usage-window reset — read straight from your local Claude transcripts via ccusage.

Autonomous task queue

Line up a to-do list of instructions, each scoped to a project folder. Lea works through them one by one, no typing required.

Reset-aware retry

When a run hits the limit, the task goes back to the front of the queue and resumes at the real reset time — looping through your list overnight.

Sandboxed runs

Every run is isolated so an unattended mistake can't wreck your machine. macOS uses a built-in Seatbelt sandbox that confines writes to the project folder.

Keeps your computer awake

Prevents sleep — but only while tasks are pending — so overnight runs actually happen instead of stalling on a sleeping laptop.

Follow-ups for you

When a task needs something only you can do — push to a remote, apply a migration, rotate a key — Lea surfaces it and fires a desktop notification.

Per-task change reports

Each run writes a snapshot diff of what was added, modified, and deleted into Lea_Reports/ in your project — so you can review before trusting it.

Per-model breakdown

See exactly how your window is split across Opus, Sonnet, and Haiku, with live bars and token totals per model.

Chat & reply on a task

Pick up any finished task and keep going — Lea continues Claude's own session with --resume, so context is preserved.

Efficient "away" mode

Switch to a cheaper model when you're idle or asleep, plus live progress streaming so you can watch what Claude is doing in real time.

Download & install

Up and running in four commands.

Lea is open source. Clone it, install, and start — a small ring icon appears in your menu bar.

Terminal — install from source
# 1. Clone the repo
$ git clone https://github.com/bobby33400/Lea.git
$ cd Lea

# 2. Install dependencies
$ npm install

# 3. Launch the menu-bar app
$ npm start
Quick start. Download Lea, run claude, and Lea starts working. First time, you may need /login in the terminal with claude — then Lea runs normally.
Or let Claude install Lea for you. Open claude in any folder and paste this — it clones, installs, and launches for you.
Paste into Claude Code
# Paste this to the claude CLI
Clone https://github.com/bobby33400/Lea.git into this
folder, run npm install inside it, then start
the app with npm start. If anything fails,
fix it and try again.

Requirements

  • macOS, Windows, or Linux with Node 18+.
  • The claude CLI installed and logged in to your Claude subscription. Verify with claude --version and claude -p "hi".
  • Docker (optional) — only if you want sandboxed runs on Windows or Linux.
Lea uses your own Claude account and respects your own limits. It is not a separate subscription.
Prefer a prebuilt installer? Pushing a v* tag (or running the GitHub build workflow) produces a .dmg/.zip for macOS, an .exe for Windows, and an .AppImage for Linux. Or build one locally with npm run dist.
Windows: app won't start? Electron's npm package downloaded, but its actual program file (the Electron .exe) is missing or corrupted. Most likely cause: your project is inside OneDrive, which interferes with node_modules files.
Fix — reinstall Electron (run in your Lea folder):
npm.cmd uninstall electron
npm.cmd install electron
npm.cmd start
If it still fails, move the project out of OneDrive and reinstall:
Move-Item "<your-OneDrive-path>\ClaudeProjekte" "C:\Dev\ClaudeProjekte"
cd C:\Dev\ClaudeProjekte\LEA\Lea
npm.cmd install
npm.cmd start
Safety model

Unattended Claude is powerful — and risky.

Lea runs Claude with --permission-mode bypassPermissions so headless runs never block on a prompt. That's exactly why isolation matters — and why Lea defaults to the safest option for your platform.

macOS — Seatbelt sandbox (default)
Built in. Zero setup.

Each run is wrapped in sandbox-exec. File writes are confined to the task's project folder; ~/.ssh, ~/.aws, and Keychains are hard-blocked. Reads, network, and commands stay allowed so Claude's tools still work.

Windows / Linux — Docker opt-in
No lightweight built-in sandbox exists.

By default Lea runs Claude directly and shows a warning. For real isolation, enable the bundled Docker backend — it mounts only the project folder writable. Build the image with docker build -t lea-claude:latest docker/.

Please start small. Begin with low-stakes tasks and review the logs before trusting Lea with anything important. Use per-project git commits so every change is reversible.
Configuration

Tune it from the Settings panel.

Every default is adjustable — click any value to open it and choose from the options Lea gives you.

SettingDefaultWhat it does
Auto-run Master switch for autonomous execution
Sandbox backend Seatbelt on macOS, none elsewhere — or force Docker / none
Keep computer awake Prevent sleep while tasks are pending
Quiet hours Pause auto-run during a chosen time window
Default model Model used when a task doesn't specify one
Task timeout Kill a task that runs too long
Max retries Retries for non-limit errors
Token budget / block Pause after N tokens per usage window
↳ These mirror the in-app Settings — pick a value above to preview your choice.

Let Claude work the night shift.

Free, open source, and yours to inspect. Clone it and queue your first task tonight.