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 gets its own Claude Code session in its own terminal, so there is no shared state and 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 panel and it keeps running; click the card to reconnect.
- Live status on every card. Busy, Awaiting input, Stopped, Exited or Error, with a bell when one needs you. Where an issue runs several sessions, the card aggregates them and 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 one and Lanes passes --resume, so the previous run's conversation history carries over.
One issue can also host several named sessions, sharing the issue's worktree while each keeps its own transcript, status and metrics. A common split is one to plan, one to implement, one to review.
Each card opens into a detail panel: the terminal on the left, 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 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.