# Configuration

Everything below is optional.

## pane.json

Drop a `pane.json` in your project root to automate setup, dev server, and cleanup.

```json
{
  "scripts": {
    "setup": "npm install",
    "run": "npm run dev",
    "archive": "npm run cleanup"
  }
}
```

- **setup**: runs once when a new worktree is created
- **run**: runs when you press Play, or <KeyCombo keys={["⌘", "⇧", "D"]} />
- **archive**: runs when you archive the pane, before Pane removes its worktree

<Toggle title="Other config formats (conductor.json, .gitpod.yml, devcontainer.json)">

Pane auto-detects config files in this priority order:

1. `pane.json`
2. `conductor.json` (`setup` → `start`)
3. `.gitpod.yml` (`init` → `command`)
4. `devcontainer.json` (`postCreateCommand` → `postStartCommand`)

</Toggle>

## Project Settings

Open the project's menu in the sidebar and choose **Project settings**.

- **Worktree Folder**: where this project's worktrees go. A folder name inside the repo (default `worktrees`) or a full path.
- **Open IDE Command**: the command Pane uses to open the worktree in your editor.
- **Build Script**, **Run Commands** and **Archive Script**: override `pane.json` from the UI. Pane shows which file each one came from.
- **Project System Prompt**: instructions added to every Claude Code pane in this project. Repo-specific rules, coding style, context.

You don't set a main branch. Pane reads your remote's default branch (`origin/HEAD`). If that isn't set, it tries `origin/main`, `origin/master`, `main` and `master`, in that order. Need a different base for one pane? Pick it in the **Base branch** dropdown when you create the pane.

## Notifications

On by default. You get alerted the moment an agent finishes or needs input.

In **Settings → Notifications**:

- **Desktop notifications**: tells you when an agent finishes or needs input, while Pane is in the background.
- **Play notification sounds**: adds a sound.
- A button to turn on and test notification permission for your OS.

## Worktree File Sync

Gitignored files like `.env` are automatically copied into every new worktree. Your pane is ready to run the moment it's created — no missing credentials, no manual copying.

<FileSyncPreview />

<Toggle title="Sync details">

Out of the box, Pane copies these into every new worktree:

- `.env*` files
- agent config folders: `.claude`, `.codex`, `.cursor`, `.continue`, `.windsurf`, `.amazonq`, `.roo`, `.cline`, `.gemini`, `.junie` and `.aider.conf.yml`
- `node_modules`, last, so your credentials and config land first

Turn any of them off, or add your own. Files sync when the worktree is created. Change `.env` later and you'll need to copy it again or create a new pane. Committed files don't need this, because git already puts them in the worktree. Choose what gets copied in **Settings → Worktrees & Git → New worktrees → Files and directories**.

</Toggle>
