Use cases/Lanes Desktop/Manage multiple Claude Code sessions

Manage multiple Claude Code sessions

Run several Claude Code sessions at once, each on its own branch, tracked on one board instead of a wall of terminal tabs.

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:

Bash
brew install --cask lanes-sh/lanes/lanes && open -a Lanes

Then:

  1. Add a project. Point Lanes at the folder where your repos live.
  2. Create issues with Cmd+N. The instructions you write become the session's initial prompt.
  3. Start each one with Plan or Implement. Plan proposes an approach before any edits; Implement starts changing code right away.
  4. 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.

Five bare terminals give you no signal about which agent stalled twenty minutes ago; the tab that needs input looks exactly like the one that is busy. One card per session, live status, and the bell are what make five Claude Code sessions manageable from one window.

Further reading

Get Lanes Desktop or read the quick start.