# Switching from another tool

import { Callout } from "nextra/components";

Coming from Conductor, Superset, Claude Squad, or your own `git worktree` setup? You don't have to start over. Pane can take over worktrees that already exist, read your old project scripts, and pick up an agent's conversation where you left off.

## 1. Add your repo

Add the main repository to Pane first. Click **+** in the sidebar, or run:

```bash
runpane repos add --path /path/to/my-app --yes --json
```

## 2. Keep your project scripts

If your repo has a `conductor.json`, Pane reads it. Its setup, run and archive scripts work in Pane without changes. Pane checks for config in this order: `pane.json`, then `conductor.json`, then `.gitpod.yml`, then `devcontainer.json`. See [Configuration](/docs/configuration).

## 3. Adopt your existing worktrees

`runpane panes adopt` turns a worktree you already have into a pane:

```bash
runpane panes adopt \
  --repo active \
  --path /absolute/path/to/existing-worktree \
  --name existing-work \
  --agent codex \
  --yes --json
```

1. Run it with `--dry-run` first. Pane checks the path without changing anything.
2. The worktree has to belong to the repo you added. Pane refuses anything else.
3. Add `--folder <name>` to put the pane in a sidebar folder.

The new pane shows up in the sidebar with an **External** label.

### Pick up the conversation

Pass the agent's session ID with `--resume <id>`. Pane types the agent's resume command into the terminal and waits for you to press Enter. Add `--launch` to run it right away.

<Callout type="warning">
  Don't drive the same conversation from two apps at once. Both write to the same transcript.
</Callout>

## What "External" means

Pane didn't create an adopted worktree, so Pane doesn't own it:

- Pane never deletes, rebuilds or re-copies files into it.
- Archiving the pane only removes it from Pane. The folder stays.
- Want Pane to remove it anyway? Run `runpane panes archive --pane <id> --remove-worktree`. Pane runs the same safety check as always: uncommitted, untracked or unpushed work blocks it unless you add `--force`. Your local branch is kept.

## Moving many worktrees

There's no one-click "import everything from Conductor" yet. Until there is, list your old tool's worktrees with `git worktree list` and adopt each one. Or ask a [Session](/docs/sessions) to do it for you:

> Adopt every worktree of this repo that isn't in Pane yet, and resume each one with Claude Code.

## Related

- [Panes & Worktrees](/docs/panes-and-worktrees)
- [runpane CLI](/docs/runpane-cli)
- [Configuration](/docs/configuration)
