> ## Documentation Index
> Fetch the complete documentation index at: https://ade-app.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Lanes

> A lane is ADE's name for a git worktree — one isolated branch and working copy per task, so agents work in parallel without colliding.

A **lane** is ADE's name for a git worktree: an isolated branch and working copy for a single task. Each lane has its own files, branch, chat and terminal sessions, processes, diff, and PR — so several agents can work in the same repository at once without writing over each other or your main checkout.

![The Lanes tab with a lane selected](https://mintcdn.com/ade-ac1c6011/Mghbi7-G0yTaUGxT/media/current/lanes.jpg?fit=max\&auto=format\&n=Mghbi7-G0yTaUGxT\&q=85\&s=e5669a6b1bfe74167b72181ef6f9e3af)

Every task gets its own worktree, with its branch, PR, and checks in one place.

## The primary lane vs. your lanes

When you open a repository, your existing checkout — the repo root — becomes the **primary lane**. It always exists and can't be deleted. Agents *can* work in it, but it's your real working tree, so the safer habit is to leave the primary lane alone and do agent work in fresh lanes.

Everything else is a lane you create. Each new lane is its own git worktree under `.ade/worktrees/`, completely isolated from the primary checkout and from other lanes.

> [!NOTE]
>
> You don't pick a "lane type" — the primary lane is just your repo root, and every other lane is a worktree. What differs is **how** you bring a lane into being.

## Ways to create a lane

> [card] New worktree off a branch
>
> Branch a fresh worktree from your default branch — or any other branch. This is the default, and the safest place for agent work.

> [card] Import an existing branch
>
> Pull a branch you already have — local or remote — into a managed worktree, PR pills and all.

> [card] Attach an external worktree
>
> Already made a `git worktree` outside ADE? Attach its path and ADE tracks it without ever moving or cleaning it.

## The same lanes, everywhere

Lanes sync across every surface. Start one on the desktop, continue it in the terminal, check on it from your phone.

> [tab] Desktop
>
> ![Lanes on the desktop](https://mintcdn.com/ade-ac1c6011/Mghbi7-G0yTaUGxT/media/current/lanes.jpg?fit=max\&auto=format\&n=Mghbi7-G0yTaUGxT\&q=85\&s=e5669a6b1bfe74167b72181ef6f9e3af)
>
> The Lanes tab on macOS.

> [tab] iOS
>
> ![ADE on iPhone](https://mintcdn.com/ade-ac1c6011/m_EKJqJVzAE9PL2s/assets/readme/phone.webp?fit=max\&auto=format\&n=m_EKJqJVzAE9PL2s\&q=85\&s=6114c71777a38b667bd488a3b8107477)
>
> Lane status from the phone.

## What's isolated to a lane

A lane is more than a branch — it's a full parallel workspace.

> [card] Code & branch
>
> A dedicated worktree and branch. Stashes, rebases, and merges stay local to the lane.

> [card] Sessions
>
> Chats, terminals, and CLI sessions run scoped to the lane's worktree.

> [card] Processes & ports
>
> Dev servers and tests get their own port range and preview, so lanes don't fight over `3000`.

> [card] Diff & PR
>
> A clear diff, conflict risk, and a PR link — review and ship each lane on its own.

## The lane lifecycle

**1. Create**

Create a branch or work directly on an existing branch in a separate worktree.

**2. Work**

Open chat, terminals, Files, or Run — all scoped to the lane.

**3. Review**

Inspect the diff, tests, proof, History, and conflict risk.

**4. Ship**

Commit, push, open a PR, merge, then archive or delete the lane.

> [accordion] Manage lanes from the terminal
>
> Every lane action is also available from the `ade` CLI:
>
> ```bash theme={null}
> ade lanes list --text                 # list lanes in the active project
> ade lanes create --name fix-checkout-flow  # branch a new worktree lane
> ade lanes delete <lane-id> --force    # tear down a merged or abandoned lane
> ```
>
> Run `ade lanes --help` to see every flag.

## Repos, projects, and worktrees

ADE has one rule for organizing your work: **a repository is one project, and every working tree of that repository is a lane inside it.**

* The repository's main checkout is the project root. It becomes the **primary lane**, which always exists and is edit-protected.
* Lanes ADE creates for you live under `.ade/worktrees/` inside the project.
* Worktrees you created yourself with `git worktree add` can be attached as lanes too, wherever they live on disk.

This is why a worktree should not become its own project: it would split the same repository across two project entries, with separate lanes, chats, and state for what is really one codebase.

### Opening a worktree

If you point ADE at a directory that is a linked worktree, ADE recognizes it and shows you what it found:

* **Already a lane** — the folder is already attached to its project. ADE offers to open that project and jump straight to the lane, including its live status and any agents working in it.
* **Not a lane yet** — ADE offers to attach it as a lane in the owning project and take you there. This is the recommended path.
* **Owning repo not added yet** — ADE offers to add the main repository as the project and open the worktree as a lane in it, in one step.

You can still choose **Open as a separate project** if you really want the worktree to stand alone — for example, if your main clone is a bare repository and there is no primary checkout to open.

### Merging a stray worktree project

If you added a worktree as a standalone project in the past, ADE marks it in the recent projects list with a *worktree of …* badge. From that row you can merge it into the owning project as a lane.

> [!WARNING]
>
> Merging re-homes the folder as a lane and removes the standalone project entry. Chats and sessions created while it was a standalone project stay under that retired project — they remain searchable, but they do not move into the owning project.

### Bare repositories

Some workflows keep a bare clone plus a set of worktrees, with no main checkout at all. ADE cannot open a bare repository as a project today, so in that layout opening a worktree as its own project is the right call. ADE detects this case and skips the prompt.

> [card] [Create lanes](https://ade-app.dev/docs/lanes/creating.md)
>
> Every way to start a lane, in detail.

> [card] [Stacked pull requests](https://ade-app.dev/docs/tools/pull-requests.md)
>
> Review dependent branches with GitHub pull requests.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.