Manage multiple, isolated AI coding sessions across VS Code, JetBrains IDEs, and the terminal.
Lanes uses Git Worktrees to give every agent session its own isolated file system and dedicated terminal. Supports Claude Code, Codex CLI, Gemini CLI, Cortex Code, and OpenCode out of the box. No more context contamination. No more half-finished files clashing with each other.
- True Isolation - Each session gets its own Git worktree and dedicated terminal
- Session Resume - Automatically resumes where you left off using
--resume - Real-Time Status - See which agents are working, waiting, or have errors
- Built-in Diff Viewer - Review all changes before merging back
- One-Click Cleanup - Delete the worktree when done, keep the branch for merging
- Workflow System - Optional MCP-based workflows guide agents through structured phases (plan → implement → test → review)
- Multi-Agent Support - Claude Code, Codex CLI, Gemini CLI, and Cortex Code with inline logo selector for easy switching
- File Attachments - Drag-and-drop files into the session form to include with your prompt
- Tmux Terminal Backend - Persistent tmux sessions via
lanes.terminalModesetting - Local Settings Propagation - Auto-propagate
.claude/settings.local.jsonand.gemini/settings.jsonto worktrees
Visit our website for more information.
| Platform | Status | Install |
|---|---|---|
| VS Code | Stable | Marketplace · Open VSX |
| JetBrains IDEs | Beta | From source |
| CLI | Stable | From source |
| Feature | VS Code | JetBrains (Beta) | CLI |
|---|---|---|---|
| Create / list / delete / open sessions | ✓ | ✓ | ✓ |
| Clear sessions | ✓ | ✓ | ✓ |
| Pin/protect sessions | ✓ | ✓ | — |
| View git diff | ✓ | ✓ | ✓ |
| Repair broken worktrees | ✓ | ✓ | ✓ |
| Claude Code / Codex / Gemini / Cortex / OpenCode | ✓ | ✓ | ✓ |
| Workflow templates (built-in + custom) | ✓ | ✓ | ✓ |
| MCP-based workflows | ✓ | ✓ | ✓ |
| Integrated terminal | ✓ | ✓ | N/A |
| Tmux backend | ✓ | ✓ | ✓ |
| File attachments | ✓ | — | — |
| Search in worktree | ✓ | — | — |
| Chime notifications | ✓ | — | — |
| Session insights | ✓ | — | ✓ |
| Status hooks | ✓ | ✓ | ✓ |
| Local settings propagation | ✓ | ✓ | ✓ |
- macOS - Fully supported
- Linux - Fully supported
- Windows - Not currently supported (WSL may work)
# Install Claude Code
npm install -g @anthropic-ai/claude-code
claude login
# Install jq (required for status tracking)
brew install jq # macOS
sudo apt-get install jq # Ubuntu/Debian
# Optional: Install Codex CLI for OpenAI agent support
npm install -g @openai/codex
# Optional: Install Gemini CLI for Google agent support
npm install -g @google/gemini-cli
geminiSearch for "Lanes" in the VS Code Extensions marketplace, or visit the VS Code Marketplace.
From Source:
git clone https://github.com/FilipeJesus/lanes.git
cd lanes && npm install
npm run compile && npx vsce package
# Then install the .vsix via "Extensions: Install from VSIX..."Or use the local install script: ./scripts/install-local.sh
git clone https://github.com/FilipeJesus/lanes.git
cd lanes && npm install && npm run compile
cd jetbrains-ide-plugin
./gradlew buildPlugin
# Install the plugin from jetbrains-ide-plugin/build/distributions/Supports IntelliJ IDEA, WebStorm, PyCharm, GoLand, and other JetBrains 2024.1+ IDEs.
git clone https://github.com/FilipeJesus/lanes.git
cd lanes && npm install && npm run compile
npm link
lanes --help- Open the Lanes sidebar (or tool window in JetBrains)
- Fill in Session Name and optionally a Starting Prompt
- Click Create Session
- A terminal opens with Claude running in an isolated worktree
Click any session to resume it. Click the trash icon to delete (branch is preserved for merging).
lanes create my-feature --prompt "Implement the login page"
lanes list
lanes open my-feature
lanes diff my-feature
lanes delete my-feature- Authentication: Configure your Gemini API key (e.g.,
GEMINI_API_KEY) before launching Gemini CLI sessions. - MCP workflows: Lanes writes MCP server config into
.gemini/settings.jsonwhen workflows are enabled. - Resume behavior: Lanes resumes Gemini sessions using
gemini --resumewithout an explicit session ID, which picks the most recent session for that project. If you run multiple Gemini sessions in the same worktree, the latest one is resumed. - Status tracking: Gemini CLI hooks update
working/waiting_for_user/idlestatus via.gemini/settings.json.
| Command | Description |
|---|---|
Lanes: Create Session |
Create a new isolated session |
Lanes: Open Session |
Open/focus an existing session's terminal |
Lanes: Delete Session |
Remove a session's worktree and terminal |
Lanes: Clear Session |
Reset session state while preserving the worktree |
Lanes: Show Git Changes |
Open the diff viewer for a session |
Lanes: Create Terminal |
Create an additional terminal for a session |
Lanes: Search in Worktree |
Open VS Code search scoped to a session's worktree |
Lanes: Repair Broken Worktrees |
Fix broken worktrees after container rebuilds |
Lanes: Setup Status Hooks |
Configure Claude hooks for status indicators |
| Command | Description |
|---|---|
lanes create <name> |
Create a new isolated session |
lanes list |
List all sessions |
lanes open <name> |
Open/resume a session |
lanes delete <name> |
Delete a session's worktree |
lanes clear <name> |
Reset session state, preserve worktree |
lanes diff <name> |
Show git diff for a session |
lanes repair |
Fix broken worktrees |
lanes insights <name> |
Show session insights |
lanes pin <name> |
Pin/protect a session |
lanes unpin <name> |
Unpin a session |
lanes status |
Show status of all sessions |
lanes workflow <name> |
Run a workflow template |
lanes config |
View/edit configuration |
- Claude Harness & Workflows - Structured task management and MCP-based workflow guides for long-running sessions
- Website - Full documentation and guides
- Session status indicators (idle, working, waiting)
- Session resume functionality
- Session templates for common workflows
- Multi-agent support (Claude Code + Codex CLI)
- File attachments in session form
- Tmux terminal backend
- Local settings propagation to worktrees
- Additional agent integrations
- JetBrains IDE plugin (beta)
- Standalone CLI
- Windows support
- Multi-repo support
Contributions are welcome!
git clone https://github.com/FilipeJesus/lanes.git
cd lanes
npm installPress F5 in VS Code to launch the Extension Development Host.
npm test # Run tests
npm run lint # Run ESLint
npm run compile # Compile TypeScript
npm run watch # Watch mode for development- Fork the repo and create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and ensure tests pass
- Commit with clear messages
- Push and open a Pull Request
Please ensure your PR:
- Passes all existing tests (
npm test) - Includes tests for new functionality
- Follows the existing code style (
npm run lint)
| File | Purpose |
|---|---|
src/extension.ts |
Main entry point, commands, terminal management |
src/AgentSessionProvider.ts |
Active sessions tree view |
src/PreviousSessionProvider.ts |
Previous sessions tree view |
src/SessionFormProvider.ts |
New session form webview |
src/GitChangesPanel.ts |
Git diff viewer panel |
src/gitService.ts |
Git operations (worktrees, branches) |
src/ProjectManagerService.ts |
Project Manager integration |
src/cli/ |
Standalone CLI entry point and commands |
src/codeAgents/ |
Agent abstraction (CodeAgent, ClaudeCodeAgent, CodexAgent, factory) |
src/services/TmuxService.ts |
Tmux terminal backend |
src/services/TerminalService.ts |
Terminal management abstraction |
src/services/SettingsFormatService.ts |
TOML/JSON settings format handling |
src/localSettings.ts |
Local settings propagation helper |
jetbrains-ide-plugin/ |
JetBrains IDE plugin (Kotlin/Gradle) |
src/test/*.test.ts |
Test suite |
package.json |
Extension manifest |
MIT - see LICENSE for details.
Enjoying Lanes? Consider supporting its development with a voluntary donation.