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.
Run Claude Code, Codex, Devin, Grok, Antigravity or any CLI you configure in real terminals, across every project, from one Mac app.
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.
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.
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.
A close-up of the sidebar, where every session shows the state its CLI reported.
Caption: Status comes from each CLI’s own hooks.
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.
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.
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.
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.
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.
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.
The quick switcher: typing postgres finds the Postgres upgrade session and opens it.
Caption: ⌘K jumps to any session.
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.
The end card: the Lanes logo, “Local-first. Free. MIT licensed.” and getlanes.dev.
No caption
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.
~/.lanes/config.toml, which reloads on save.[profiles.gemini]
label = "Gemini"
command = "gemini"
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.
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.
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.
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.
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
perf/index-rebuild
feat/typo-tolerancecd to it.The picker ranks folders with zoxide's z, completes cd paths with Tab, and browses like Finder.
Start a session in its own git worktree and branch, so agents working in parallel each work in their own checkout.
maincheckout-api
fix/flaky-checkout
worktree ~/.lanes/docs/refund-webhooks
worktree ~/.lanes/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.
Jump to any session or project, or run a command, from the quick switcher.
Not in Lanes today. These are the next two things we're building.
Coming
A web app you add to your home screen, reaching your Mac over Tailscale, with push notifications when an agent needs you.
Coming
See what an agent changed and commit it without leaving Lanes.
Questions or feedback: hey@getlanes.dev