A non-linear AI agent workbench — sessions are graphs: branch anytime, and context follows the branch
A PiX session is not a line — it is a graph that keeps growing: every conversation turn is a node, and any node can sprout a new branch at any time.
A traditional AI chat is a single timeline: to change direction you either start over or keep piling questions onto the same thread until the context becomes a mess.
PiX organizes a session as a graph that grows left to right:
- Every turn (your prompt plus the assistant's reply and tool calls) is a node on the graph.
- Several directions can live on the same graph — switch to another branch at any time and keep going, without interference.
- When a path works out, keep going deeper; dead ends stay on the graph, and you can always come back and try another route.
- Sessions are real Pi sessions — no new format — so they remain usable outside PiX.
Branching is an everyday action in PiX, not something you have to plan ahead:
- Fork from any user message: unhappy with an answer? Fork a new branch from that turn with a different prompt or approach — the original branch stays untouched.
- Continue from a turn: select any earlier node on the graph and pick up the conversation from that moment.
- Clone the active branch: clone the current branch as a save point and experiment freely. Every branch stays visible on the graph, ready to switch back to at any time.
Switching branches never means re-setting up context — context is part of the branch:
- The branch chat panel shows only the messages of the active branch. Switch to another branch and the chat switches with it.
- A single click highlights a node on the graph without touching any panel (graph commands such as /fork act on the highlighted node); a double-click aligns the primary chat panel to that node.
- Double-click a node on the graph to open its conversation in the primary chat panel. Ctrl+double-click (or the right-click menu's "Open in chat panel") pins that branch to a second or third side-by-side chat column — up to 3 columns at once for comparing branches. Each branch keeps a single panel: opening another node of an already-pinned branch retargets that column. Every column scrolls and replies independently. Replying from a pinned column grows that branch in place: the column follows the newly created node, and the primary column keeps the current selection. Closing the last pinned column — or the next start — restores the chat width.
- The branch context panel follows the selected node and shows how that turn went: thinking, tool calls, duration, and step count — and you can reply to the selected node right from there.
PiX ships two built-in extensions, both loaded through Pi's extension mechanism. They carry native binaries, so they and their runtime dependencies ship with the installer — no separate install needed, and an npm copy you installed through Pi takes precedence.
@ff-labs/pi-fff— fast file and content search: replaces the built-infind/greptools with FFF (Rust-native, SIMD-accelerated):fffindfuzzy file-name search,ffgrepcontent search, andfff-multi-grepmulti-pattern search. Files are pre-indexed in the background at session start so searches return instantly; results are frecency-ranked (frequently used files first) and boosted for git-modified and untracked files.@injaneity/pi-computer-use— desktop app control: lets the agent observe and operate desktop apps on macOS, Windows, and Linux: find open apps and windows, read the text and controls on screen, click, type, scroll, and wait for the UI to change. Useful when an app has no API and the on-screen interface is all there is (the macOS helper requires macOS 14 or newer).
pi-web-access does not ship with the installer: install it with one click on the Settings → Extensions page and keep it current with pi update. It gives the agent web search, URL fetching, PDF extraction, and GitHub research; web search services still use your own configuration and credentials.
PiX itself also adds one internal file-changes extension (not removable): it snapshots files before and after the agent edits or writes them to power the "Changes" panel.
Grab the installer for your platform from GitHub Releases:
- Windows:
PiX-Setup-x.y.z.exe(installer) orPiX-Portable-x.y.z.exe(portable), x64. - macOS:
PiX-x.y.z-arm64.dmgorPiX-x.y.z-x64.dmg, zip archives also available. - Linux:
PiX-x.y.z-x86_64.AppImage(portable),PiX-x.y.z-amd64.deb,PiX-x.y.z-x86_64.rpm, plus tar.gz. x64.
Installers are unsigned: if Windows SmartScreen warns, choose "Run anyway"; on macOS, allow the app in System Settings → Privacy & Security on first launch.
Run from source
Requires Node.js 22.19 or newer.
npm install
npm run devnpm run verify runs the full typecheck, test, and startup smoke suite.
npm run test:fff checks bundled file search; npm run test:web checks the web extension's installed layout (a real npm install, needs network) and page fetching, both with isolated settings. On macOS, npm run dist:mac packages the current machine's architecture; on Linux, npm run dist:linux packages AppImage, deb, rpm, and tar.gz. CI builds on separate Apple Silicon, Intel, and Ubuntu runners to include the matching native libraries.
Join our WeChat group:
Thanks to everyone who has contributed to PiX:
Contributions are welcome: open an issue for bugs and ideas, or send a pull request.


