Files
pi-gui/ui

Pi Status UI

Reason for existence

Provide the desktop control surface for Pi Status Bridge. The UI presents bridge state and forwards user intent; it never owns Pi sessions, worktree routing, or approval policy.

Requirements

  • Node.js 20+.
  • Rust stable and the native dependencies required by Tauri v2.
  • A running Pi Status Bridge socket. By default the app uses $XDG_RUNTIME_DIR/pi-status-bridge/bridge.sock; set PI_STATUS_BRIDGE_SOCKET to override it.

Develop

From the repository root:

npm --prefix ui ci
npm --prefix ui run tauri dev

The UI needs a running bridge. For day-to-day use, keep it in the background with the root project's npm run bridge:service:install command. For foreground development, run the bridge in a separate terminal:

node src/bridge/cli.js --worktree "$HOME"

The Tauri app connects to the bridge on startup. See the root README for start, restart, status, and log commands.

Commands

npm --prefix ui run dev           # Vite frontend only
npm --prefix ui run build         # typecheck and build frontend assets
npm --prefix ui run tauri dev     # run the desktop client in development
npm --prefix ui run tauri:release # build the production executable used by Noctalia/Mod+Space
npm --prefix ui run tauri build   # package installers (requires platform bundle tooling)

Boundaries

  • The UI sends operations only to the selected bridge agent.
  • Extension responses are forwarded unchanged to Pi.
  • The UI must not add a network transport or persist competing model/thinking defaults.

Verification

cargo test --manifest-path ui/src-tauri/Cargo.toml
npm --prefix ui run build

See the root README for bridge setup and repository-wide verification.