Open Source

It learns how
you think

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

Not a task runner. A model of you.

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

TypeScriptSvelte 5BunReact Inkzod

Favours small modules, avoids classes. Explicit over DRY when readability suffers.

Values

ship fastminimal abstractionsno dead codetest what matters

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

> add retry with exponential backoff to the executor's claude -p calls. wrap the stream consumption in a try/catch, max 3 retries. don't retry on 4xx.

Generated from profile + workspace state. Not a template — a message in your voice.

How It Works

Each step sees what the last one did.

Traditional automation fires a batch and hopes. overnight predicts one message, executes it, reads the result, and decides what to do next.

01

Predict

Profile + workspace + previous results → next message

02

Execute

Run via claude -p with auto permissions

03

Observe

Read output, diff, test status, build result

04

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

safe — tests, docs, cleanup
normal — natural next steps
yolo — bold refactors, new features

Zero risk to main. Everything on overnight/{run-id}. Review in the morning. Merge what you like.

overnight

$ 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

Ship while you sleep

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