# pi-fork-pane

Split a tmux pane and fork the current [pi](https://pi.dev/) session into it — a side-by-side copy of your conversation, ready to continue from the same context.

## Install

```bash
pi install npm:pi-fork-pane
```

Then `/reload` or restart pi.

## Usage

Inside a pi session running in tmux:

- `/fork-pane` — split vertically (default), start a forked copy of the current session in the new pane
- `/fork-pane h` — split horizontally instead

The fork is a full copy of the session file (same as `pi --fork <file>` / `/clone`): the new pane's pi starts with the complete conversation, and the two sessions diverge independently from there. Use `/tree` in the forked session to jump back to any earlier point.

### `/tree-pane`

`/tree-pane` opens the same tree selector as `/tree`, but instead of switching the current session in place, it forks the **picked entry** into a new tmux pane — your current session stays exactly where it is. `/tree-pane h` splits horizontally.

The new pane gets a fresh session file containing the path from the root to the selected entry, so you can branch off an earlier point of the conversation side-by-side.

### Inherited configuration

Both commands run the new pane with the current working directory and the startup CLI flags of this pi process (`--model`, `--provider`, `--thinking`, `--tools`, `-e`, `--session-dir`, `--no-sandbox`, …), so the fork runs with the same configuration it was started with — including flags registered by extensions. Flags that select or name a session (`--session`, `--fork`, `--name`, `-c`, `-r`) and one-shot actions (`-p`, `--version`, `--list-models`, …) are not forwarded, and neither is an initial prompt passed on the command line.

Settings files (`~/.pi/agent/settings.json`, project settings, `AGENTS.md`) are re-read by the forked pi automatically; only CLI flags needed explicit forwarding. Environment variables are subject to tmux's own environment handling for new panes — an API key exported only in the current shell after the tmux server started may not be visible in the new pane.

## Requirements

- pi running inside **tmux** (outside tmux the command reports an error and does nothing)
- A persisted session (an ephemeral session with no file yet cannot be forked)

## Why not pi-tmux / pi-side-agents / pi-agents-tmux?

Those packages are about *agents dispatching work* — running commands or spawning fresh child agents in tmux windows/panes. pi-fork-pane is the opposite direction: *you*, mid-conversation, splitting off a parallel copy of your own session to explore a tangent without losing your place. It composes fine with all of them.

## Notes

- When the forked pi exits, its pane closes. To keep a shell around afterwards, edit `extensions/fork-pane.ts` and append `; exec $SHELL` to the pane command.

## License

MIT
