pi-gui README

The project's README from github.com/minghinmatthewlam/pi-gui. As one markdown file: README.md.

pi-gui

The desktop app for the pi coding agent.

License: MIT Latest release Platform

Run agents in parallel threads, each in its own git worktree if you want one. Review every change, run the tests in a real terminal, and ship without leaving the window. pi-gui is a desktop shell around @earendil-works/pi-coding-agent, not a separate agent: sessions, models, auth and tools all run through pi itself, so anything you set up with the pi CLI carries over.

An agent in pi-gui fixing a bug, running the tests, then the change open in the review tab

A real run: the agent fixes a bug, adds a test and runs it, then the change opens for review. (Watch in full quality)

Features

Run agents side by side

Every task gets its own thread. Start it in your checkout or in a fresh git worktree, then start the next one while it works. The sidebar shows what is running, what finished and what needs you. Pin threads, group them by time or workspace, and archive the ones you are done with.

pi-gui running an agent thread while two other threads work in the sidebar

Review every change before it lands

The Review tab shows exactly what the agent touched. Compare uncommitted work, a branch against its base, or a single turn, and stage or unstage it file by file.

The Review tab showing the diff an agent made to src/price.js

Terminal and files in the same window

The workbench beside the conversation holds a real terminal, a file explorer and editor, the review tab, your worktrees, and tabs from desktop extensions. Each task keeps its own layout.

The integrated terminal running the test suite next to the thread

Everything is a keystroke away

The command palette listing recent chats and actions
Shortcut (macOS; use Ctrl on Linux and Windows) Does
⌘ K Search chats, workspaces and actions
⌘ P Open any file in the current checkout
Ctrl Tab Switch between recent threads
⌘ 1 to 9 Jump to a thread in the sidebar
⌘ J Toggle the terminal
⌘ R Toggle the Review tab
⌘ ⌥ B Show or hide the workbench
Enter while a run is going Queue a follow-up
⌘ Enter while a run is going Steer the current run

And the rest

Install

pi-gui runs on macOS (Apple Silicon), Linux (x64) and Windows (x64).

Download the latest .dmg (macOS), .AppImage or .deb (Linux), or .exe (Windows) from the Releases page.

On macOS you can also use Homebrew:

brew tap minghinmatthewlam/tap
brew install --cask pi-gui

Update with brew upgrade --cask pi-gui. A Homebrew upgrade may ask you to re-confirm macOS permissions or Dock placement. Other installs tell you when a new release is out and update from the Releases page.

Building from source is for contributors; see Development.

Quickstart

  1. Install pi-gui and open it.
  2. Open Settings → Providers and connect a model provider (OAuth or API key).
  3. Add a workspace: a local project folder.
  4. Click New thread, choose Local or Worktree, and send your first prompt.

pi-gui reads and writes pi's own session files and settings, so threads, credentials and skills are shared with the pi CLI.

Architecture

pi-gui is an Electron app with a tight main, preload and renderer boundary, on top of the pi runtime:

See docs/architecture.md for ownership and boundaries.

Development

Requires Node 22.19 or newer (CI runs Node 22) and pnpm through corepack. pnpm-lock.yaml is the authoritative lockfile.

corepack enable
pnpm install

Common commands, from the repo root:

pnpm dev            # run the desktop app with hot reload
pnpm check          # CI baseline: format, lint, renderer boundaries, types, guard and driver tests
pnpm build          # build the desktop app and the website
pnpm typecheck      # type-check all workspaces
pnpm lint           # correctness rules plus typed promise and unsafe-any checks
pnpm format         # apply the shared formatter
pnpm test           # each workspace's tests (desktop runs the core E2E lane)
pnpm marketing:media  # re-record the README and website media from a real agent run

pnpm check is the shared local and CI baseline. It does not launch Electron or replace the desktop, website-build and package CI jobs; see docs/ci-baseline.md.

Desktop end-to-end tests drive the real Electron app with Playwright, in lanes. pnpm test runs the core lane; to run everything:

pnpm --filter @pi-gui/desktop run test:e2e:all   # core + live + native

See apps/desktop/README.md for the lanes, packaging on each platform, and how the product media is recorded.

Repository layout

Contributing

Contributions are welcome. See CONTRIBUTING.md for setup, verification expectations and the desktop test lanes. Desktop changes should be verified on the real Electron app, not only by unit tests.

Computer use

Native computer use is not built into pi-gui. Desktop and browser control is available separately through the standalone computer-use-mcp server, which any MCP-capable agent can use.

Acknowledgements

Built on @earendil-works/pi-coding-agent and the pi runtime and ecosystem.

License

MIT © Matthew Lam

pi-gui (minghinmatthewlam/pi-gui)

Searching Database…

1.3K ·GitHub
这是什么东西?pi-gui 是 pi 编码代理的桌面应用:你可以并行运行多个线程中的编码代理,审查它们做的每一处改动,在真实终端里运行测试,不用离开窗口就能交付成果。
它是一个独立的代理,还是围绕其他工具做的一层外壳?它是围绕 pi 运行时(@earendil-works/pi-coding-agent)的桌面外壳,不是独立的代理:会话、模型、认证和工具都通过 pi 本身运行,所以你用 pi CLI 设置的任何东西都能直接沿用。
使用它需要 API 密钥或账号吗?在 Providers 设置里连接模型提供商:可以用 OAuth 登录、粘贴 API 密钥,或者指向自定义端点。模型和思考级别按线程分别选择。
安装时有什么要注意的坑吗?Windows 版本还没有代码签名,所以 SmartScreen 可能会要求你确认。macOS 版本已经签名并经过公证;通过 Homebrew 升级后,可能会要求你重新确认 macOS 权限或 Dock 图标设置。
支持哪些系统——Intel Mac 能用吗?它支持 macOS(仅限 Apple Silicon)、Linux(x64)和 Windows(x64),所以 Intel Mac 不在支持范围内。
我的会话和设置存放在哪里?pi 把每个会话以 JSONL 记录的形式存在磁盘上,pi-gui 直接读取这些文件,而不是自己另存一份,所以线程、凭据和技能与 pi CLI 是共享的。
并行运行代理到底是怎么实现的?每个任务都有自己的线程:可以在你现有的代码检出中启动,也可以在全新的 git worktree 中启动,然后在它运行的同时启动下一个。侧边栏会显示哪些正在运行、哪些已完成、哪些需要你处理;线程可以固定、按时间或工作区分组,也可以归档。
我怎么查看代理到底改了什么?Review 标签页会确切显示代理动过的内容——未提交的改动、某个分支相对其基准分支的差异,或单次对话的改动——你可以逐个文件暂存或取消暂存。真实终端、文件浏览器和编辑器就位于对话旁边的工作台中,每个任务有独立的布局。
一个代理可以启动其他代理吗?可以——一个线程可以启动、读取其他线程并给它们发消息,这些线程会像普通线程一样显示在侧边栏里。当后台线程完成、失败或需要你处理时,你会收到通知;你还可以从任意消息分叉出一个线程,或者用 /tree 回退。
它能按计划定时运行某个提示词吗?可以,计划任务能让 pi 按计划重复运行某个提示词——比如每周一次的依赖检查——前提是应用处于打开状态。它还支持开关 pi 技能和扩展,桌面扩展会拥有自己的工作台标签页。
Size
20.8 MB
Stars
1.3K
Age
6mo
Commits · 90 Days