Skip to content

Repository files navigation

pi-ui

keyboard-first minimal gui for pi

pi-ui demo

features

  • background sessions
  • git review with commit history and inline comments
  • markdown, syntax highlighting, and rich diffs
  • file attachments with image previews

built with

try

requires bun 1.4+

bunx @hyperpuncher/pi-ui

install

quick install

the quick installers start pi-ui in the background and at login

linux and macos

curl -fsSL https://pi-ui.app/install | sh

windows

irm https://pi-ui.app/install.ps1 | iex

open http://127.0.0.1:31415 in your browser

package managers

bun

requires bun 1.4+

bun i -g @hyperpuncher/pi-ui

arch

paru -S pi-ui-bin

homebrew

brew install hyperpuncher/tap/pi-ui

package-manager installs must be started with pi-ui or configured as a background service below

background service

start pi-ui now and at login:

pi-ui service install

stop pi-ui and remove the service:

pi-ui service uninstall

homebrew

homebrew manages the service separately:

brew services start pi-ui
brew services stop pi-ui

development

requires bun 1.4+

bun ci
bun run dev

configuration

pi-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/gpt-6-luna:low",
			"openai-codex/gpt-6-luna:low",
			"opencode-go/deepseek-v4.1-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,
	"keybinds": {
		"new-chat": "ctrl o",
		"new-temporary-chat": "ctrl alt o",
		"resume-session": "ctrl r",
		"previous-session": "ctrl ^",
		"command-palette": "ctrl k",
		"toggle-minimal-mode": "alt m",
		"toggle-tool-output": "alt o",
		"switch-model": "ctrl l",
		"cycle-model": "ctrl p",
		"cycle-thinking": "alt t",
		"cycle-thinking-backward": "alt shift t",
		"toggle-thinking": "ctrl alt t",
		"toggle-review": "ctrl g",
		"change-workspace": "ctrl /",
		"cycle-model-backward": "ctrl shift p",
		"toggle-sessions": "ctrl b",
		"focus-prompt": "alt p",
		"focus-conversation": "alt c",
		"focus-sessions": "alt s",
		"focus-workspace-files": "alt f",
		"focus-workspace-changes": "alt g",
		"focus-workspace-editor": "alt e"
	},
	"minimalMode": false,
	"sessionSidebar": {
		"open": true,
		"width": 288
	},
	"toolOutputHidden": false,
	"toolbarHidden": false,
	"updateCheck": true
}

keybinds

key action
ctrl/⌘ k command palette
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
j / k or ↑ / ↓ move or scroll focused pane
gg / G top / bottom
ctrl/⌘ o new session
ctrl/⌘ alt o temporary chat
ctrl/⌘ 1–9 switch session
ctrl/⌘ ^ previous session
ctrl/⌘ r session picker
ctrl/⌘ b toggle session sidebar
ctrl/⌘ / workspace picker
ctrl/⌘ g toggle workspace
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
alt m toggle minimal mode
alt o toggle tool output
/ slash commands
@ file picker
alt enter queue follow-up
alt ↑ restore queued text

license

mit

About

minimal gui for pi

Topics

Resources

Stars

142 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages