Serial AI coding wastes the biggest advantage agents have: they can work while you do something else. The blocker is usually tooling, not the model. Running several agents by hand means juggling terminals and untangling branches, so most people give up and run one at a time.
Lanes makes parallel the default. It is a desktop workspace built around an issue board: you describe tasks as issues, start a real agent session on each, and every session runs on its own git branch so the work never collides. The board shows all of it at once.
How Lanes does it
- One agent per issue. Each task gets its own terminal running the official CLI. 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.
- Isolated by default. When an issue starts, Lanes creates a git worktree and branch for it under
.worktrees/in your project. Three agents on three issues means three working directories on three branches: no collisions, no merge conflicts mid-work. - One board. Every session's state is visible at once: busy, awaiting input, stopped, exited, or error. A bell rings when an agent has a question, so you answer when needed instead of babysitting terminals. See the issue board.
- Any agent. Sessions run the official CLIs, and you pick the CLI, model, and reasoning effort per session at launch. Switch a session between Claude Code and Codex whenever you want.
The workflow
Break work into issues, start a session on each, and let them run. Each issue carries its own instructions, and those instructions become the agent's initial prompt. Start in Plan mode when you want to see an approach before any edits, or Implement mode to let the agent start changing code immediately. The issue moves across the board (Planning, Implementation, Review, Done) as the work progresses.
While agents run, you stay in one window. Click a card to attach to its terminal, type to answer a question, then move on to the next card. When an agent finishes, review its changes with the inline diff, run your tests inside that issue's worktree, and merge. Completing the issue stops its sessions and removes the worktree automatically if it is clean; if anything is uncommitted, Lanes warns you first.
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. Press Cmd+N, give each task a title and instructions.
- Keep the worktree strategy on Create (the default for git repos) so each issue gets its own branch.
- Select an issue and press Plan or Implement. Repeat for as many tasks as you have.
The quick start walks through the whole first run in about two minutes.
Further reading
- Working with sessions: the session lifecycle, status indicators, and running several sessions on one issue.
- Worktree management: strategies, auto-creation, dirty-state warnings, and cleanup.
- The issue board: columns, bulk actions, and board tabs.
- Manage multiple Claude Code sessions: the same workflow, focused on Claude Code.
Get Lanes Desktop or read about sessions.