Running one Claude Code session is easy. Running five is where it falls apart: terminal tabs you cannot tell apart, agents waiting on input you never noticed, and branches quietly stepping on each other.
Lanes is built for exactly this. It runs the official claude CLI in a real terminal, one session per task, and puts them all on a single board so you can see what every agent is doing at a glance.
How Lanes does it
- One session per issue. Each task on the board gets its own Claude Code session in its own terminal. No shared state, no guessing which tab is which. A session is a real PTY attached to the issue, so the task, its output, and its results live in one place. Close the detail panel and the session keeps running in the background; click the card to reconnect.
- Live status on every card. See which agents are working, which are waiting for input, and which have stopped. A bell rings when one needs you. The full set of states is Busy, Awaiting input, Stopped, Exited, and Error, and when an issue runs several sessions the card aggregates them so the most active state wins.
- Isolated by default. Every session runs in its own git worktree on its own branch, so several agents can work the same repo without colliding. Lanes creates worktrees under
.worktrees/in your project automatically and removes them once the issue completes and the worktree is clean. - Your subscription, not a meter. Sessions run the real CLI, so they draw from the Claude plan you already pay for. No SDK wrapper, no separate meter; keep your Claude subscription has the full billing picture.
Sessions survive more than a panel close. Stop and restart a Claude Code session and Lanes passes --resume, so the conversation history from the previous run carries over. Since v0.41 one issue can also host several named sessions that share the issue's worktree while each keeps its own transcript, status, and metrics. A common split is one session to plan, one to implement, one to review.
Each card opens into a detail panel with the terminal on the left and the Issue and Meta tabs on the right, so instructions, tokens, cost, and runtime sit next to the live output. The terminal keeps roughly 50KB of scrollback, and dropping a file onto it injects the path when you want to point the agent at something specific.
When something goes wrong, the process manager shows every CLI process Lanes knows about: tracked sessions, orphans left over after a crash, and external claude processes it did not start. Stop Sessions winds down tracked sessions gracefully; Kill All clears the slate.
Try it
Create a few issues, start a Claude Code session on each, and watch them run side by side. Move a card to Done and Lanes cleans up its worktree for you.
Set it up
Install Lanes and open it:
brew install --cask lanes-sh/lanes/lanes && open -a LanesThen:
- Add a project. Point Lanes at the folder where your repos live.
- Create issues with Cmd+N. The instructions you write become the session's initial prompt.
- Start each one with Plan or Implement. Plan proposes an approach before any edits; Implement starts changing code right away.
- Answer the bell. Click a card when its agent is awaiting input, type in the terminal, move to the next card.
The quick start covers the whole first run in about two minutes.
Further reading
- Working with sessions: lifecycle, status states, resume behavior, and several sessions on one issue.
- Worktree management: isolation, dirty-state warnings, and auto-cleanup.
- Process manager: tracked sessions, orphans, and external agents in one dialog.
- Run AI coding agents in parallel: the same board applied to any agent CLI.
Get Lanes Desktop or read the quick start.