keyboard-first minimal gui for pi
- background sessions
- git review with commit history and inline comments
- markdown, syntax highlighting, and rich diffs
- file attachments with image previews
requires bun 1.4+
bunx @hyperpuncher/pi-uithe quick installers start pi-ui in the background and at login
curl -fsSL https://pi-ui.app/install | shirm https://pi-ui.app/install.ps1 | iexopen http://127.0.0.1:31415 in your browser
requires bun 1.4+
bun i -g @hyperpuncher/pi-uiparu -S pi-ui-binbrew install hyperpuncher/tap/pi-uipackage-manager installs must be started with
pi-uior configured as a background service below
start pi-ui now and at login:
pi-ui service installstop pi-ui and remove the service:
pi-ui service uninstallhomebrew manages the service separately:
brew services start pi-ui
brew services stop pi-uirequires bun 1.4+
bun ci
bun run serverpi-ui stores its configuration in:
- linux:
~/.config/pi-ui/config.json - macos:
~/.config/pi-ui/config.json - windows:
%APPDATA%\pi-ui\config.json
all options with their defaults:
{
"$schema": "https://pi-ui.app/config.schema.json",
"autoTitle": {
"enabled": true,
"models": [
"openai-codex/gpt-5.6-luna:minimal",
"opencode-go/deepseek-v4-flash:off"
],
"prompt": "use lowercase"
},
"codeTheme": {
"dark": "pierre-dark-soft",
"light": "pierre-light"
},
"fonts": {
"mono": "system",
"sans": "system"
},
"gitView": {
"changesRatio": 0.5,
"gitPaneRatio": 0.5,
"layout": "split",
"mode": "all",
"reviewSidebarWidth": 272,
"tab": "git",
"wrap": true
},
"keybindHints": true,
"minimalMode": false,
"toolOutputHidden": false
}| key | action |
|---|---|
| ctrl/⌘ k | command palette |
| ctrl/⌘ b | toggle session sidebar |
| ctrl/⌘ 1–9 | switch session |
| ctrl/⌘ o | new session |
| ctrl/⌘ alt o | temporary chat |
| ctrl/⌘ r | session picker |
| ctrl/⌘ / | workspace picker |
| ctrl/⌘ g | toggle workspace |
| alt p | focus prompt |
| alt c | focus conversation |
| alt f | focus workspace files |
| alt g | focus git changes |
| alt e | focus file or diff |
| alt s | focus sessions |
| alt m | toggle minimal mode |
| alt o | toggle tool output |
| ctrl/⌘ l | model picker |
| ctrl/⌘ p | cycle favorite model |
| ctrl/⌘ shift p | cycle favorite model back |
| alt t | cycle thinking level |
| alt shift t | cycle thinking back |
| ctrl/⌘ alt t | toggle thinking blocks |
| / | slash commands |
| @ | file picker |
| alt enter | queue follow-up |
| alt ↑ | restore queued text |
| j / k or ↑ / ↓ | move or scroll focused pane |
| gg / G | top / bottom |
mit