update
May 11, 2026
By Teun
Rapunzel turns agent sessions into a tree-style terminal
Rapunzel is a desktop app for managing agent sessions in a tree-based terminal interface, built for people running many long-lived Codex, Claude, or Gemini sessions. It stores workspace state locally, supports branch actions like rename and collapse, and can restore the session tree on launch.
Rapunzel is a desktop app that presents agent work as a tree of terminal sessions instead of a flat strip of tabs. The project is aimed at people running multiple long-lived agents at once, where ordinary terminal tabs become hard to follow across sessions.
The creator described Rapunzel as “a browser but for agents,” with the goal of making it simple and doing “nothing more.” The project is inspired by Firefox’s Tree Style Tab extension, which groups tabs in a hierarchy rather than one long horizontal row.
According to the project description, Rapunzel is designed for use with Codex, Claude, and Gemini. The main idea is to give each agent session a root and child branch structure so related conversations can be organized under one active terminal workspace.
Rapunzel supports tree-based shell sessions with root and child branches, plus actions to rename, move, collapse, and close branches. It also keeps one active live terminal conversation surface visible, which the creator says makes hierarchical navigation easier to reason about than a flat tab strip.
The app uses PTY-backed interactive shells. PTY stands for pseudo-terminal, a standard way to connect an interactive shell to a program so the session behaves like a real terminal.
Workspace state is saved locally to ~/.rapunzel/workspace.json, and the app can restore the saved tree when it starts. That means session layout is meant to survive launches instead of being rebuilt from scratch each time.
Rapunzel runs as an embedded pywebview desktop app, which is the project’s primary path. The older Tk interface still exists as fallback code, but the author says it is no longer the main architecture.
Installation depends on Python 3, Node.js, and npm. On macOS or Linux, users can clone the repository and run ./install.sh; on Windows, the project provides a PowerShell installer. The install scripts create a local virtual environment, install Python and frontend dependencies, and build the embedded web UI.
For normal use, the project provides Rapunzel.command on macOS/Linux and Rapunzel.ps1 on Windows. The author also says the repo-local virtual environment is preferred when it exists, so the launch path stays stable after install.
For users who want a packaged desktop app rather than running from source, the project includes a macOS build path that uses PyInstaller and produces dist/Rapunzel.app. After building, the app can be opened from Finder or launched directly.
On macOS and Linux, shell sessions use a POSIX PTY backend. On Windows, Rapunzel uses pywinpty. The project also notes that on Apple Silicon Macs, shell sessions wrap brew so Homebrew commands are forwarded through nativearm64.
Project files listed by the author include an entrypoint in app.py, first-run setup scripts, desktop launchers, the rapunzel/ app state and runtime folder, the webui/ embedded frontend assets, and planning files such as PROJECT_STATUS.md, ARCHITECTURE_AND_PROGRESS.md, and FEATURE_TRACKER.md.