Open Source
overnight reads your Claude Code sessions, builds a profile of how you code, and predicts what you'd type next — then executes it while you sleep.
The Profile
overnight analyses your Claude Code conversations and extracts a profile — your communication style, coding patterns, technical values, and current focus. This is what makes predictions sound like you, not a generic prompt.
Extracted from 47 conversations
Communication
Terse, imperative. Starts messages with verbs. Prefers 1-2 sentence instructions. Rarely explains motivation — just says what to do.
Stack
Favours small modules, avoids classes. Explicit over DRY when readability suffers.
Values
Focus
Interactive TUI — streaming, approval flow, error recovery. Refactoring executor for retry resilience.
The predictor never sees your raw conversations.
It receives three inputs: who you are (the profile above), where you're headed (direction extracted from recent work), and what exists (workspace — files, branches, tests). One output: the exact message you'd type next.
Example prediction
Generated from profile + workspace state. Not a template — a message in your voice.
How It Works
Traditional automation fires a batch and hopes. overnight predicts one message, executes it, reads the result, and decides what to do next.
Predict
Profile + workspace + previous results → next message
Execute
Run via claude -p with auto permissions
Observe
Read output, diff, test status, build result
Adapt
Feed results back. Tests failed? Fix them. Build broke? Course-correct. Done? Stop.
Run Modes
Stick to plan
One sprint. Hit the goals, then stop.
Don't stop
After goals: docs, tests, cleanup. Runs till morning.
Ambition
Zero risk to main. Everything on overnight/{run-id}. Review in the morning. Merge what you like.
$ overnight
Scanning ~/.claude/projects/ ...
Built profile from 47 conversations (234 turns)
Suggested plan:
"The executor has no retry logic and the error types are
incomplete. Want me to finish it tonight?"
Ambition: normal Mode: stick to plan
▸ Starting run overnight/run-a7f3
✓ 1 Add ExecutorError type + wrap stream calls
✓ 2 Add exponential backoff — max 3 retries
✓ 3 Write executor.test.ts — 12 test cases
✓ 4 Fix test — stream mock needed handler
✓ 5 All 12 tests passing. Committed.
Done — 5 steps, 4m 32s, $0.18
Describe what you want done. Wake up to a branch full of working code, committed in your style.
$ overnight # interactive TUI
$ overnight start "finish auth and add tests"
$ overnight log # morning review