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 the projects, with three of them in an Acme group.

    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:20

    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:26

    The Acme board: every session in the client’s three projects as a tile. Claude asks again; its tile shows the keys and a reply box, a click on ⏎ answers it, and a click on another tile opens that session.

    Caption: One board per client. Answer from any tile.

  7. Play from 0:33

    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.

  8. Play from 0:39

    Grok’s pane is pulled by its header from the bottom right to the top left; the panes show where each will land, then swap.

    Caption: Drag a pane where you want it.

  9. Play from 0:44

    Codex is already making search typo-tolerant in search-service. Claude starts on a faster index rebuild in the same project, in a new worktree, and the two open side by side.

    Caption: Two agents, one project. Each in its own worktree.

  10. Play from 0:53

    The tabs layout: search-service is dragged to the front of the tab row, the green Acme group folds away and back like a Chrome tab group, and a session tab switches sessions.

    Caption: Tabs like a browser’s. Group, color, drag to sort.

  11. Play from 1:02

    The quick switcher: typing postgres finds the Postgres upgrade session and opens it.

    Caption: ⌘K jumps to any session.

  12. Play from 1:06

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

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

  13. Play from 1:11

    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. Tabs show it live: a moving line while an agent works, amber when it waits for you, a tick when it finishes.

  • 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.

Every client on one board.

Put a client's projects in a group and press ⌘.. Every session in them shows as a tile: the bottom of its screen, and whether it's working, waiting for you or done. Answer a prompt from its tile, or click it to flip in, like switching Chrome tabs. Tiles refresh as agents work, so a board stays light.

The Acme board: six sessions across checkout-api, dashboard and mobile-app as tiles showing each agent's latest output. The Flaky checkout test tile asks to approve a database migration and shows 1, 2, 3, Enter and Esc keys and a reply box.

Four projects, four agents, one screen.

Split the window into up to four panes, from any project and any provider. Pick a layout from the Layout button, ⌥-click a session to open it beside the one you're in, and drag a pane by its header to move it.

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.

Two agents, one project.

Put two agents to work in the same project, each on its own task. Each session gets its own git worktree and branch, so neither trips over the other's changes, and they run side by side.

search-service

Claude's pane, Faster index rebuild: it caches tokenised documents between runs and the rebuild drops from 54 to 13 seconds.
Claude perf/index-rebuild
Codex's pane, Typo-tolerant search: it matches each query word within one edit and keeps queries under 10 ms.
Codex feat/typo-tolerance

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

Tabs that work like a browser’s.

Group a client's projects the way Chrome groups tabs and fold the group away. Rename and color tabs, drag them into order, and see each agent working right on its tab. Prefer a sidebar? ⌘\ switches.

Lanes in the tabs layout: a green Acme group holding checkout-api, dashboard and mobile-app, a purple infra tab, and session tabs for Refund webhook docs, colored orange, and Flaky checkout test, which shows Claude working.

⌘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