Leftoff

Leftoff

WTF was I working on?

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 -fsSL https://leftoff.dev/install | sh

Free. Runs on your Mac. Plain Markdown in ~/checkpoints.

Or install with npm · See how it works

The Leftoff board: a Needs you strip at the top, project chips, then a card per Claude Code session with what it was doing, where it stopped and what's next. The Leftoff board: a Needs you strip at the top, project chips, then a card per Claude Code session with what it was doing, where it stopped and what's next.

Want it on your phone?

Claim yourname.leftoff.dev and your board goes with you, end-to-end encrypted. Free while in beta.

3 to 30 letters, numbers or hyphens.

We email a link to lock it in. One name per email. Local Leftoff stays free.

By claiming you agree to the Terms and Privacy Policy.

Ask and Live

Ask your sessions. Talk to them from your phone.

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.

A session's checkpoints, newest first, each with Doing, Stopped at and Next. A session's checkpoints, newest first, each with Doing, Stopped at and Next.
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.

The Needs you strip: sessions waiting on a permission or a question, each with Allow once, Allow for this session and Deny buttons. The Needs you strip: sessions waiting on a permission or a question, each with Allow once, Allow for this session and Deny buttons.
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.

A session page: three to-dos the session handed back, with Copy buttons for their commands, then its Files: a claude.ai artifact, a plan, new and edited docs, and 5 code files changed. A session page: three to-dos the session handed back, with Copy buttons for their commands, then its Files: a claude.ai artifact, a plan, new and edited docs, and 5 code files changed.
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.

The board filtered to the Acme project: All projects, Acme and Tools chips, then Acme's sessions, each with its project chip next to the repo. The board filtered to the Acme project: All projects, Acme and Tools chips, then Acme's sessions, each with its project chip next to the repo.
⌘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.

The ⌘K palette searching “webhook”: the session, its PRs and its checkpoints, grouped. The ⌘K palette searching “webhook”: the session, its PRs and its checkpoints, grouped.
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.

The Leftoff board on an iPhone, showing a session that needs you with Allow buttons. The Leftoff board on an iPhone, showing a session that needs you with Allow buttons.
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.

The daily digest: sessions grouped under the Acme project, then What shipped: merged PRs and commits on main, per repo. The daily digest: sessions grouped under the Acme project, then What shipped: merged PRs and commits on main, per repo.
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

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.

curl -fsSL https://leftoff.dev/install | sh

Or with npm:

npm i -g @leftoff/cli && leftoff setup

Want it on your phone? Short names go first.

Claim yourname.leftoff.dev

No tracking, no spam.