Lanes

Your CLI. Your terminal. Still running.

Run Claude Code, Codex, Devin, Grok, Antigravity or any CLI you configure in real terminals, across every project, from one Mac app.

See it run

Recorded in the real Lanes interface. The agents in it are scripted stand-ins, so no real CLI ran for this video.
Transcript, shot by shot
  1. Play from 0:00

    Lanes, open on Claude fixing a flaky checkout test in checkout-api. The sidebar lists four projects and their sessions.

    Caption: Your CLI. Your terminal.

  2. Play from 0:04

    The Add project dialog: typing z sea finds search-service by its zoxide rank, and it joins the sidebar.

    Caption: Open projects with the tools you already use.

  3. Play from 0:09

    Codex, in a second checkout-api session, finishes documenting the refund webhooks and takes a follow-up prompt in its own terminal.

    Caption: Real coding CLIs in real terminals.

  4. Play from 0:15

    A close-up of the sidebar, where every session shows the state its CLI reported.

    Caption: Status comes from each CLI’s own hooks.

  5. Play from 0:21

    Claude stops to ask before running a database migration. Its session moves to the Needs-you list and a notification appears; opening it and answering y lets it carry on.

    Caption: See which agent needs you.

  6. Play from 0:27

    Four panes in a two-by-two split: Claude in checkout-api, Codex in dashboard, Devin in mobile-app and Grok in infra.

    Caption: Up to four agents, side by side.

  7. Play from 0:32

    The New session dialog in search-service: one title and prompt, with Run with a second agent ticked.

    Caption: Give two agents the same task.

  8. Play from 0:39

    Claude and Codex side by side, each on its own lanes/faster-index-rebuild branch: one caches tokenised documents, the other tokenises in a worker pool.

    Caption: Keep both approaches in view.

  9. Play from 0:45

    Lanes’ background service restarts. A Reconnecting bar shows, then the same two panes come back with both agents still running.

    Caption: Sessions keep running. Pick up exactly where you left off.

  10. Play from 0:50

    The end card: the Lanes logo, “Local-first. Free. MIT licensed.” and getlanes.dev.

    No caption

Each agent keeps its own interface.

Lanes doesn't put your agents behind a chat box. Each one runs in a real terminal, so slash commands, skills, hooks and every CLI's own interface work the way they always have.

  • Claude Code
  • Codex
  • Devin
  • Grok
  • Antigravity
Any other CLI is a short profile in ~/.lanes/config.toml, which reloads on save.
[profiles.gemini]
label   = "Gemini"
command = "gemini"

Quit Lanes. Your agents keep going.

Every agent lives in its own holder process. Quit the app, restart Lanes or install an update, and you come back to the exact screen you left, with every agent still running.

Know which agent is waiting on you.

Status comes from each CLI's own hooks, with an idle and bell fallback for the rest. When an agent needs you, it joins the Needs-you list, the Dock badge counts it and a native notification tells you. The session you're already looking at stays quiet.

  • Working
  • Needs you
  • Idle
The Lanes sidebar with a Needs you list at the top holding the Flaky checkout test session, and an in-app notification that it needs your input.

Four projects, four agents, one screen.

Split the window into up to four panes in a two-by-two grid, from any project and any provider. Say, the four repos you share with a teammate, a terminal each, side by side.

Lanes in split view: four panes in a two-by-two grid, with Claude in checkout-api, Codex in dashboard, Devin in mobile-app and Grok in infra.

Give two agents the same task.

Write one prompt and pick two agents. Each gets its own git worktree and branch, and they run side by side, so you can compare the two approaches before you keep one.

Speed up the search index rebuild

Claude's pane: it caches tokenised documents between runs, on its own branch.
Claude lanes/faster-index-rebuild-45f0-claude
Codex's pane: it tokenises in a worker pool and batches the writes, on its own branch.
Codex lanes/faster-index-rebuild-45f0-codex

Built around your projects.

Add a folder the way you'd cd to it.

The picker ranks folders with zoxide's z, completes cd paths with Tab, and browses like Finder.

The Add project dialog with z sea typed, listing search-service and search-ui from zoxide.

A worktree per session.

Start a session in its own git worktree and branch, so agents working in parallel each work in their own checkout.

Two sessions in checkout-api, each on its own branch from main, each in its own worktree:

maincheckout-api

  • fix/flaky-checkout worktree ~/.lanes/worktrees/checkout-api/fix-flaky-checkout
  • docs/refund-webhooks worktree ~/.lanes/worktrees/checkout-api/docs-refund-webhooks

Sidebar or tabs.

Keep projects in a sidebar, or as tabs along the top. ⌘\ switches.

Lanes in the tabs layout: projects as tabs along the top, then that project's sessions, then the selected session.

⌘K for the rest.

Jump to any session or project, or run a command, from the quick switcher.

The quick switcher, listing sessions with their project, agent and branch.

Local-first. Free. MIT licensed.

No account
Nothing to sign up for. Open the app and add a project.
No cloud relay
Your sessions never pass through a server of ours. Each CLI talks to its own provider, as it always has.
Free and open
MIT licensed. The source goes public soon.
A real Mac app
Signed and notarized for Apple Silicon, macOS 13.5 or later. It updates itself.

Coming next

Not in Lanes today. These are the next two things we're building.

Coming

Your sessions on your phone

A web app you add to your home screen, reaching your Mac over Tailscale, with push notifications when an agent needs you.

Coming

A diff and commit view

See what an agent changed and commit it without leaving Lanes.

Get Lanes for your Mac.

Coming soon for Apple Silicon Macs

  • Apple Silicon, macOS 13.5 or later
  • Signed and notarized, updates itself
  • Free, MIT licensed

Questions or feedback: hey@getlanes.dev