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

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.