Your terminals, in a browser tab. Perch turns the machine your code actually runs on into a VS Code-style workspace you can open from any browser - laptop, tablet, or phone.
Open a folder as a project and it gets its own terminal session. Run
nvim, git, a dev server, an AI agent. Close the laptop; the terminals
keep running in a daemon of their own, and come back with their history,
working directories and names after a server restart, a redeploy, a crash,
or a reboot.
- Terminals that outlive the browser. A bundled daemon owns every terminal, so restarts, dropped connections and sleeping laptops cost you nothing. Scrollback replays exactly as it was written.
- A real workspace, not just a shell. Tabbed and split terminals, a file
tree with drag-and-drop upload, source control, project-wide search,
image/PDF/Markdown/CSV viewers, and
Ctrl+Pto jump anywhere. - Good on a phone. Touch selection, a key bar for the keys phones don't have, swipe gestures, and zero-lag local echo when you're typing to an agent over a slow link.
- Your editor, your keys, your theme.
nvimby default, VS Code color and icon themes installed unchanged, and every shortcut rebindable. - Ports, reachable. The server lists what's listening and opens it in a tab, proxies it, or forwards it to your machine with one command - and while that tunnel runs, links your server's programs open come up in your own browser.
- Or no browser at all.
perch tuilists your projects and terminals in any terminal - over SSH, or against a remote server - and attaches to them full screen, with the same ports and tunnel at hand. - An app if you want one. The desktop app for macOS, Windows and Linux runs its own server or opens remote ones, and keeps itself up to date.
- AI agents as first-class citizens. Claude Code and Codex are configured once and reused everywhere, with hooks written for you and push notifications when an agent needs an answer.
- Extensible on purpose. Nearly every surface above is itself a bundled extension, built on the same API your own extensions get.
See docs/FEATURES.md for the full tour.
Prefer an app? The desktop app for macOS, Windows and Linux carries its own Perch server, so it needs no Node or toolchain, and it opens remote Perch servers too. Download it from the Releases page - see Desktop app.
To install Perch as a service on the machine your code runs on:
curl -fsSL https://raw.githubusercontent.com/tuanpham-dev/perch/main/install.sh | bashOn Windows, in PowerShell:
irm https://raw.githubusercontent.com/tuanpham-dev/perch/main/install.ps1 | iexThis builds the app, installs a perch command, and starts a user service
that survives logout and comes back on boot. Perch is then at
http://127.0.0.1:3001. You need Node.js 23+ and a C/C++ toolchain; the
installer checks first and tells you what's missing.
It installs the latest release; perch update moves it to newer ones as they
come out (see Versions and updates).
Manage it with perch start / stop / status / logs / update, and
run perch doctor if anything looks wrong. perch tui browses and attaches
to your projects' terminals without a browser (see Terminal UI).
| Features | What everything does, in detail |
| Keyboard & mouse | Default shortcuts and terminal gestures |
| Install | Requirements, the installer, the desktop app, and the perch CLI |
| Deployment | Production, nginx, and authentication |
| Terminal UI | perch tui: projects and terminals without a browser |
| Port forwarding | The tunnel CLI and the built-in port proxy |
| Extensions | Installing, bundling, and writing extensions |
| Extension API | The complete API reference |
| Architecture | Why the core stays small |
| Development | Running from a clone, and the repo layout |
MIT - see LICENSE.





