@prjct.app/pi-ui2.0.1
One Pi interface layer: the startup header, transcript times, compact tool activity, a focused footer, and 53 color palettes, each switchable with /ui.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-ui
The one interface layer for PI Agent. pi-ui owns every change it makes to Pi's screen, and every change can be switched off with /ui. A part that is off leaves Pi's own in place.
| Part | What it does | Off means | Takes effect |
|---|---|---|---|
| Header | The logo chosen with /header: Pi's own header by default, or the prjct logo, or your own pixel-art logo. |
Pi's own startup header, whatever /header chose. |
At once |
| Transcript | Puts u. 16:18 over your messages and p. 16:22 over Pi's prose. |
Pi's plain transcript. | Messages drawn after the change |
| Activity | Compact, expandable tool rows, a live widget for running tools, a summary after each run, /activity and /activity-settings. |
Pi's built-in tool rows. | When Pi starts again |
| Footer | Project, session, Git branch, model, thinking level, and context usage. | Pi's default footer. | At once |
| Palette | 53 color themes with /palette, the active one shared across open Pi windows, and weekly backups. |
/palette does nothing; no window sync or backups. The current theme stays. |
At once |
Lines drawn by other extensions through @prjct.app/pi-tui-kit (modes, team, usage) are theirs, not pi-ui's, and /ui does not switch them.
Install
pi install npm:@prjct.app/pi-ui
For a project-only installation:
pi install -l npm:@prjct.app/pi-ui
pi-ui 2 includes what used to be @prjct.app/pi-activity, @prjct.app/pi-header, and @prjct.app/pi-palette. Remove them (and pi-statusline) when upgrading; two packages replacing the same tools or registering /header or /palette conflict. Palette data already in ~/.prjct/pi-palette is used as is. A logo saved by pi-header is copied over on first start:
pi remove npm:@prjct.app/pi-activity
pi remove npm:@prjct.app/pi-header
pi remove npm:@prjct.app/pi-palette
Quit and reopen Pi after installing or upgrading. /new keeps the old modules.
Switch parts on or off
Run /ui. A docked checklist lists the five parts; Space toggles one, Enter saves. The choice is stored in ~/.prjct/pi-ui/settings.json (or $PRJCT_HOME/pi-ui/settings.json) and applies to every project:
{
"header": true,
"transcript": true,
"activity": true,
"footer": true,
"palette": true
}
A missing file, or a missing key, means on. Activity replaces Pi's seven built-in tools (read, bash, edit, write, find, grep, ls) and codemode's renderer, which Pi allows only while an extension loads, so turning it on or off asks you to quit and reopen Pi.
Header
The header starts as Pi's own. /header picks another:
/header pi(or/header reset) — Pi's own header./header prjct— the prjct logo withprjct / pi agent · v…./header logothen paste an image or SVG, or/header logo <path>— pixel art from your reference, previewed before it is saved./header cancelstops the capture.
The choice is stored in ~/.prjct/pi-ui/header.json. While the header is off in /ui, Pi's own header shows; a new choice is saved and appears when the header is turned back on.
Activity
Tool calls become semantic rows:
◆ RUN npm test 1.8s
✓ READ src/auth.ts 184 lines
✓ SEARCH "renderResult" 8 matches
✓ EDIT src/auth.ts +18 −6
✕ RUN npm run lint exit 1
While tools run, a widget above the editor shows parallel work. Use Pi's tool-output expansion shortcut (Ctrl+O by default) for detail: reads and writes with line numbers, edits with diffs, truncation evidence, and full-output paths.
/activityopens the inspector with All, Changed, Commands, and Issues filters; Enter shows a record's metadata and result preview. It keeps the latest 200 actions of the session./activity-settingspicks the row density, or/activity-settings forensicsets it directly:minimal(action and target),balanced(outcomes and durations, default),forensic(adds category and truncation evidence). The density is saved in the session.
Activity keeps the native execution of every tool it renders; it changes only how calls are shown. Modified files are reported as observed through edit and write, not as a repository diff.
Palette
/paletteopens the picker: Favorites, Your palettes, Editor classics, From photos, Originals, Backups, and Account on the left; the highlighted category's list on the right with a live preview.ffavorites,aapplies,bbacks up now,r(twice) restores,ssyncs,llogs in or out,iimports,eexports./palette <id>applies a palette, for example/palette nord;/palette next,/palette prev, and/palette randomchange it directly./palette import [file]and/palette export [file]move your library as a file (default~/Downloads/library.jsonand~/Downloads/pi-palette-export.json), fully offline./palette login,/palette sync, and/palette logoutconnect this Pi to your library on pi-themes only when you ask. The token can read and write only your palette library; without it the palette never reaches the network.PI_THEMES_URLpoints at another pi-themes deployment./palette backupbacks up now;/palette backupsopens the picker on Backups. Every start checks whether a week has passed and, if so, backs up in the background: the last 10 versions on this computer and, while connected, on pi-themes. An unchanged library is not saved again.
Palettes are data: the bundled set ships in src/palette/palettes.json and your own library, favorites, backups, and token live in ~/.prjct/pi-palette (or $PRJCT_HOME/pi-palette). Theme files are generated into Pi's themes folder each time Pi loads, because Pi applies the theme in your settings before extensions run. Only files the palette wrote are ever rewritten or removed; a theme of your own with the same name wins.
Theme
The bundled prjct-theme dark palette is offered, never applied for you. Select it from /settings, or set "theme": "prjct-theme" in settings.json.
Compatibility
Tested with Pi 0.85.1 and Node.js 22.19+. The header, transcript, activity widget, and footer require TUI mode; tools render compactly wherever Pi renders them.
Development
npm install
npm run check
npm test
npm pack --dry-run
To try a checkout without the npm copy, remove @prjct.app/pi-ui and @prjct.app/pi-activity from your packages and run pi -e ./index.ts.
See docs/package.md for package structure and API details.
License
MIT.
