Leftoff keeps track of every Claude Code and Codex session you have open. When one goes quiet, it writes down where you left off, so ten tabs later you still know what each one was doing.
curl -fsSLhttps://leftoff.dev/install | sh
Free. Runs on your Mac. Plain Markdown in ~/checkpoints.
Type “what was I doing in the api last week?” on a project and get a short answer, with numbered sources that open the sessions, checkpoints and digests it used. Ask about a whole project, one session, or up to four at once.
Read-only: a separate Claude Code run on your Mac reads your notes, transcripts and git. It never types into your sessions. Like the answer? Start a session from this.
Live
Watch a running session and send it the next prompt from the board or your phone. It arrives in the terminal as Claude’s next prompt, and its permission asks land in Needs you.
Start one with leftoff live, or from the board.
Catch me up
Been away? A session’s Catch me up gives you its goal, what happened since you last looked, and what’s next. Or get one recap of every repo since Friday.
New session
Start a session from the board: pick a Mac and a repo, type the first prompt, and keep talking to it in Live.
From your phone or another Mac, it waits for a yes on that Mac unless you’ve allowed it there.
Codex too. Codex sessions show up on the board with a badge, with checkpoints, to-dos, the digest and Resume. Live and New session start Claude Code.
Checkpoints
Session gone quiet? It writes down where you were.
When a session sits idle, Leftoff writes a short checkpoint: what it was Doing, where it Stopped, and what's Next. Every checkpoint also keeps the command to resume that exact session.
Want one right now? Type /cp in the session.
Needs you
Claude is waiting on you. Now you know which one.
When a session stops for a permission prompt or a question, it jumps to the top of the board. Answer right there: Allow once, Allow for this session, or Deny with a note. Or hit Go and land in the right terminal tab.
Nothing is ever auto-allowed, and the terminal still works as usual. Answering from the board is off for other devices unless you turn it on.
To do and Files
What Claude handed back, in one place.
Sessions hand steps back to you: “add these DNS records”, “run npm login”. Leftoff catches them and lists them as to-dos, with the commands as Copy buttons.
Next to them: the docs, plans and claude.ai artifacts each session made. Tap a doc to read it, phone included.
Projects
Repos that ship together, together.
Real work spans repos: the API, the app that calls it, the database. Group them into a project and the board filters to it in one tap, every card wears its project, and the digest is grouped by it.
Add a repo from any card's ⋯ menu, or run leftoff project add acme . in it. Every machine sees the same projects.
⌘K
Jump to anything.
Press ⌘K and type. Sessions (open or closed), PRs, projects, to-dos, files and actions like Checkpoint now, in one list. Enter opens it.
On your phone it's the search button.
From anywhere
Every session, every Mac, on your phone.
The sessions you already have show up on their own, from every Mac. Pair your iPhone once with a QR code and your board lives at yourname.leftoff.dev. It's end-to-end encrypted: the relay passes along scrambled bytes and never sees your sessions.
No Tailscale, no SSH, no open ports. Nothing to keep open, either: Leftoff runs in the background on each Mac while it's awake. Answer and Go work between your Macs too.
Daily digest
A morning note from yesterday's you.
Every morning Leftoff builds a digest of where everything stands, across every repo and project. Read it with your coffee and pick up where you left off.
What shipped lists the PRs you merged and the commits that landed on main.
Local-first
Your sessions stay as Markdown on your machine.
Local Leftoff: no database, no account, no cloud. Every session and checkpoint is a plain file in a folder you can read, grep, sync or commit. A small background service on your own machine serves the board, and it rebuilds everything from those files when it starts, so a restart loses nothing.
Checkpoints can come from Claude in the session itself (no key needed), or a local model through Ollama or LM Studio.
# ~/checkpoints/sessions/<machine>/…/checkpoints/2026-10-09T214500Z.md---
session_title: auth refactor
repo: api
branch: auth-refactor
---Doing: moving session tokens to httpOnly cookies
Stopped at: refresh endpoint returns 401 in tests
Next: fix the cookie path, rerun auth tests
Resume: cd ~/src/api && claude --resume 7a1e0b…
And the little things
Go ↗Jumps you straight to the session's tab in Ghostty, iTerm2 or Terminal.app, each tab titled with what it's about.
leftoff ↗A link in Claude Code's status line opens the session's card in one click. /cp prints board links too.
PR bucketsYour review, Needs fix, Merge ready, Waiting on others. Merged and closed fold away.
Safe parking/cp-park locks the worktree, so Claude Code's exit cleanup can't delete it.
Read the docsOpen any Markdown file a session wrote, then Copy it or download it as Markdown or PDF.
RenameTap a title to rename it, or /cp-name --auto to retitle it from the latest messages.
ResumeClosed a session? It's one tap from coming back.
RestoreRebooted? Put all your sessions back, each in its own tab, in one go.
Any modelSessions run through Ollama show the real model, and resume through it.
Several MacsLeftoff sets up Syncthing so your Macs share one folder and one board, each Mac with its own emoji.
Mod or hooksRuns as a Claude Code plugin, or with plain settings hooks if you'd rather.
Light and darkThe board follows your system. So does this page, or pick one up top.
Local
Free forever
Everything above, for personal use on your own Macs, as plain files.
Hosted beta
Free beta
Hosted and team features will be paid later
Your board at yourname.leftoff.dev from any phone or browser, end-to-end encrypted.
Questions
What does it read?
The Claude Code and Codex transcripts on your Mac, and git in your repos. It writes plain Markdown into ~/checkpoints. It changes nothing in Codex.
What does it send, and where?
Nothing to us. A small service on your Mac (127.0.0.1) serves the board. Checkpoints are written by Claude inside the session, with your normal Claude Code login, or by a local model through Ollama or LM Studio. Ollama Cloud or an Anthropic API key only if you pick one. Ask runs Claude Code on your Mac with your login.
The hosted board at yourname.leftoff.dev is optional and end-to-end encrypted: the relay passes along bytes it can’t read.
Any analytics or telemetry?
None in the app. The only thing it fetches on its own is a daily check for a newer version, which you can turn off. If you use the hosted relay, it counts how many accounts have a Mac connected each day: a number, no content.
Mac only?
Mac-first. The background service also runs on Linux, but Go and Restore open tabs in Mac terminals (Ghostty, iTerm2, Terminal.app). Windows is untested.
What does it cost?
Free for personal use on your own Macs, forever. Hosted and team features will be paid. The hosted relay is free during beta, and you'll get notice before that changes.
How do I remove it?
leftoff uninstall removes its hooks and background service and keeps your ~/checkpoints folder. Add --purge to delete that too.
Get Leftoff
Run this on your Mac. A two-minute setup installs the Claude Code plugin and starts your board. Needs Node 20+ and Claude Code.