Pi Agent Desktop: a GUI for the Pi coding agent on macOS and Windows
Pi — A cross-platform AI coding agent, bringing the Claude Code experience to your desktop. No environment setup, no terminal commands. Download and start coding right away.
At a glance
- What is it?
- Pi Agent Desktop wraps the Pi coding agent in a Tauri desktop app with no terminal setup. It installs from GitHub Releases, reads your existing ~/.pi/agent data, and upgrades only as one signed build.
- Who is it for?
- Adopt Pi Agent Desktop if you already use the Pi coding agent on an Apple Silicon Mac or Windows 10/11 x64 and want sessions, diffs and model settings in a window instead of a terminal. Skip it if you are on an Intel Mac, need a headless or remote server, or want a global pi command, since the app does not install one.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 16 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Pi Agent Desktop solves, and who it is for
The Pi coding agent runs in a terminal. That is fine until you want to look at a past conversation, compare it with another branch of the same session, or check what a tool call actually did. The README frames the desktop app as a way to "browse and resume past Pi sessions by project, without digging through terminal history or `.jsonl` files." That sentence describes the target user precisely: someone who already has Pi session data on disk and is tired of reading it as files.
The app is a standalone package of the agent capabilities from the pi project. It is not a new agent and not a hosted service. Sessions, model keys and authentication stay on the machine, and the README states that the file-browsing API only reaches the current session, the selected project, and explicitly authorized working directories. If you have never used Pi, the app still works, but you lose the migration benefit that is its main draw.
Platform support is narrower than the phrase cross-platform suggests. Official releases cover Apple Silicon Macs on macOS 11 or later, Windows 10/11 x64, and Linux x64 distributions with WebKitGTK 4.1 and GTK 3. The README says official releases do not build for Intel Macs. A community-maintained Flatpak exists at flatpark.org, and the README is explicit that it is not an official release.
How the desktop package bundles the Pi stack
The desktop package bundles the Next.js server, the Node.js runtime, and the current Pi SDK, so the local server starts with the app. No separate terminal, Node.js installation, or manually started web server is required. That is the whole architecture in one sentence: a Tauri shell around a Next.js UI that talks to the Pi agent core.
The repository layout matches this. There is an `app/` directory, `components/`, `hooks/`, `lib/`, `next.config.ts`, `tailwind.config.ts`, and `src-tauri/` for the Rust side. The package name in package.json is `@agegr/pi-web`, version 0.8.7, described as "Web UI for the pi coding agent." So the desktop app is a fork and repackaging of pi-web, with Tauri added as the native shell. The README even ships a `npm run drift` script that reports divergence from pi-web upstream, split into "styling" and "structural" changes. That script is an admission that the fork will drift, and a tool for tracking how far.
Data flows from the Pi agent data directory at `~/.pi/agent/`. Sessions normally live under `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl`. The app reads that directory by default, and `PI_CODING_AGENT_DIR` points it somewhere else. Because the format is Pi's own, the desktop app is a viewer and controller over data another tool owns. That is a sensible boundary, and it means an uninstall does not take your sessions with it.
Installing Pi Agent Desktop and resuming a session
Builds come from GitHub Releases. On an Apple Silicon Mac, download the `aarch64.dmg`, open it, and drag the app into `Applications`. On Windows x64, download the installer whose name ends in `x64-setup.exe` and run it; the installer pulls in Microsoft WebView2 when it is missing. On Linux x64, download the `.deb` package and install it with your distribution's package manager.
There is no command to run for the install itself. The first real use is confirming that the app found your existing Pi data. If you have used Pi on this machine before, the README says the app picks up your existing sessions, models, and authentication after installation. The README documents the development server this way, with the proxy variables it lists for server-side model and API requests:
HTTP_PROXY=http://127.0.0.1:7890 \
HTTPS_PROXY=http://127.0.0.1:7890 \
NO_PROXY=localhost,127.0.0.1 \
npm run devWhat you should see after installing the desktop build is your prior sessions listed by project. From there you can continue from any earlier message as a branch, or fork the conversation into an independent session. If the list is empty, the app is reading a directory that does not contain Pi sessions; check that the path under `~/.pi/agent/sessions/` exists and is populated.
The README also notes one thing the installer does not do: it does not install a global `pi` command. If you want the Pi CLI in your terminal as well, install it separately by following the pi project instructions. Auto-updates have a similar first-run caveat. Before signed auto-updates can be used for the first time, an older build without the updater has to be replaced by manually installing a signed one. After that, upgrades happen from Settings.
The upgrade model trades flexibility for consistency
Pi Agent checks the latest stable release of `abcwyc/pi-agent-desktop` at most once every seven days. The README lists three components in scope: `abcwyc/pi-agent-desktop`, `earendil-works/pi`, and `agegr/pi-web`. The important rule is the fourth one: nothing patches an individual JavaScript package inside an installed app. The app downloads one complete signed build containing all three components at their latest versions, then restarts so all three land in the same verified release state at once.
The stated reason is runtime incompatibility from swapping `pi` or `pi-web` on their own. That is a real class of bug in forked stacks, and the design avoids it by refusing partial upgrades. The cost is that you cannot take a fix in one component without waiting for a full signed build. The README acknowledges this directly: if a new upstream version has been detected but the signed `pi-agent-desktop` release containing it is not published yet, Settings says that no signed complete build is installable for now. The app never falls back to downloading unsigned files or partially overwriting dependencies.
The upgrade button in Settings becomes enabled only when the installed desktop app version is older. The latest stable `pi-agent-desktop` release is the only source used for update reminders, so a newer `pi` or `pi-web` alone will not prompt you. For a desktop tool, that is the right call. For someone who wants to track upstream daily, it is a constraint they will feel.
Where Pi Agent Desktop is the wrong tool
The clearest limitation is the platform matrix. Official releases do not build for Intel Macs, so a large installed base of older Macs is out. Linux users get a `.deb` or an unofficial Flatpak, and the Flatpak is community-maintained, which means its update path is not the signed one described above. If your distribution is not covered by the `.deb`, the README points you at the Flatpak and stops there.
The second limitation is the absence of a global `pi` command. The desktop app gives you the agent inside the window only. Anyone whose workflow mixes editor integrations, shell scripts, and CI runs of the Pi CLI has to install and maintain both, and the two will not necessarily be on the same version.
Third, the app is local and GUI-bound. There is no documented headless mode, no documented remote or server deployment, and no documented way to drive it from another machine. The dev server binds to `127.0.0.1` on port 30141. The package.json does include `dev:lan` and `start:lan` scripts that bind to `0.0.0.0`, but those are development scripts for the web UI, not a documented production remote-access story. If you need an agent on a build server or in a container, this is not it.
Finally, the update check reaches GitHub once a week. In a network where GitHub is blocked or proxied, model requests can use `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`, but the README does not describe a proxy setting for the update check itself.
Pi Agent Desktop compared with pi-web and the Pi CLI
The most direct alternative is pi-web, the upstream project this app is built from. The package.json identifies this repository as `@agegr/pi-web` version 0.8.7, a web UI for the pi coding agent. pi-web runs as a Next.js server you start yourself; the `dev` script binds to `127.0.0.1` on port 30141. Pi Agent Desktop takes that same UI and puts it inside a Tauri window with a bundled Node.js runtime and Pi SDK, so nothing has to be started manually.
The difference is not features, it is operational surface. With pi-web you manage Node.js, run a server, and open a browser. With the desktop app you install a signed bundle and get a native window, a native updater, and a restart-on-upgrade flow. The trade is control: a self-hosted pi-web can be reached from another device on your network through the LAN scripts, while the desktop app is designed around one machine.
The other alternative is the Pi CLI itself, from the earendil-works/pi project. That is the terminal experience the desktop app is explicitly trying to move away from. It is also the only one of the three that gives you a global command usable in scripts. Choosing between them is mostly a question of whether you want a window or a prompt, and whether you need the agent to be scriptable.
Maintenance, licence and what to check before committing
The repository is not archived, and the last push was on 2026-09-02. Releases are frequent: v0.4.1 on 2026-08-25, v0.4.2 on 2026-08-30, and v0.4.3 on 2026-09-02. That cadence is consistent with an app still being shaped, and it also means the version you install today will be replaced within weeks. The signed-upgrade path makes that cheap, provided you installed a signed build to begin with.
The licence is MIT. For a desktop application, that is permissive: you can read the source, fork it, and redistribute it. The practical implication is that the community Flatpak and any other third-party build are permitted, and the README already treats the Flatpak as a separate, community-maintained artifact. MIT also means no warranty, which matters here because the app handles model API keys and OAuth credentials stored on your machine. Nothing in the README suggests those leave the device, and it states that model keys and session data stay local, but you should verify that yourself rather than take a licence file as a security guarantee.
Upgrade cost is low by design and high by policy. Low because one button installs a complete signed build and restarts. High because you cannot pick up a single component fix early, and because the first signed install has to be done manually if you started from an older build without the updater. If you need a specific `pi` or `pi-web` version pinned, this app is not built for that.
Editorial conclusion
Adopt Pi Agent Desktop if you already use the Pi coding agent on an Apple Silicon Mac or Windows 10/11 x64 and want sessions, diffs and model settings in a window instead of a terminal. Skip it if you are on an Intel Mac, need a headless or remote server, or want a global pi command, since the app does not install one. Before relying on it, verify that ~/.pi/agent/sessions/<encoded-cwd>/ contains your existing .jsonl sessions after first launch, and confirm in Settings that the upgrade button is enabled only when your installed version is older.
Frequently asked questions
Does Pi Agent have a desktop app?
Yes. pi-agent-desktop is a local AI agent desktop app for macOS and Windows that packages the agent capabilities of the pi project into a standalone, installable application. It also ships a .deb for Linux x64 and an unofficial community Flatpak.
Does Pi Agent have a GUI?
Pi Agent Desktop is that GUI. The README lists a desktop window with thinking, tool calls, context usage, cost and compaction state visible, plus model and key management, Git worktree switching, and previews for source, diffs, Markdown, images, audio, PDF and DOCX.
Can I use the Pi coding agent on Windows?
Yes. Official releases support Windows 10/11 x64. Download the installer whose name ends in x64-setup.exe and run it; the README states that the installer pulls in Microsoft WebView2 when it is missing.
Can I use a Raspberry Pi as a desktop computer?
That question is about Raspberry Pi hardware, which Pi Agent Desktop does not target. The app supports Apple Silicon Macs on macOS 11 or later, Windows 10/11 x64, and Linux x64 distributions with WebKitGTK 4.1 and GTK 3.
Community notes