@mipsel64/pi-fx-ui
Make Pi look like Vercel fx: monochrome themes, ┃ composer, ● tool rows, one-line footer
Package details
Install @mipsel64/pi-fx-ui from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@mipsel64/pi-fx-ui- Package
@mipsel64/pi-fx-ui- Version
0.1.3- Published
- Sep 24, 2026
- Downloads
- 481/mo · 44/wk
- Author
- vietanhduong
- License
- MIT
- Types
- extension, theme
- Size
- 20.7 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"themes": [
"./themes/*.json"
],
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-fx-ui
Make Pi look like Vercel fx: a quiet, monochrome, shell-like terminal UI.
π v0.87.1 · Run /help for commands
┃ fix the failing test in parser.ts
● Read src/parser.ts
└ 212 lines
● Ran npm test
└ … 18 earlier lines ctrl+o to expand
✔ parses empty input
✖ parses nested lists
● Edited src/parser.ts +3 / -1
└ 41 const items = [];
-42 if (depth > 0) return items;
+42 if (depth > MAX_DEPTH) return items;
Fixed: the depth guard returned before parsing nested lists.
┃
gpt-6-luna · high · 12% [tinyllm]
Install
pi install npm:@mipsel64/pi-fx-ui
Try it for one session without installing:
pi -e npm:@mipsel64/pi-fx-ui
For the cleanest start, hide Pi's startup resource listing in ~/.pi/agent/settings.json:
{ "quietStartup": true }
What changes
| Area | fx look |
|---|---|
| Colors | fx-dark and fx-light themes: grays only, no message or tool backgrounds. Diff markers are green and red, warnings orange, errors red, links blue. |
| Header | One line: π v<version> · Run /help for commands. |
| Input | A ┃ rail instead of divider lines. ┃↑ and ┃↓ show scrolled text. |
| Your messages | The same ┃ rail, in bold. |
| Tools | ● Read, ● Ran, ● Edited +3 / -1, ● Wrote rows. Output hangs under └: the last 5 lines, or all of it with ctrl+o. Failed tools show a red ■. |
| Working | • Thinking (4s) and • Running (2s). |
| Footer | One gray line: model · thinking · context %. Other extensions' statuses sit on the right. |
Themes
If your theme is Pi's built-in dark or light, the extension switches to fx-dark or fx-light and saves that as your theme. Custom themes are left alone.
Avoid the startup flash
Pi draws its first frame before extensions finish starting, so it can briefly show its default look. Two settings prevent this:
- Pin a fixed fx theme:
"theme": "fx-dark"(or"fx-light"). The extension saves this after the first launch. Avoid the automatic"fx-light/fx-dark"form: Pi spends about 100 ms asking the terminal for its background first, and the default layout shows during that time. - Load pi-fx-ui first: put it at the start of
packages, so its layout is in place before slower extensions start.
{
"theme": "fx-dark",
"quietStartup": true,
"packages": ["npm:@mipsel64/pi-fx-ui", "..."]
}
Notes
- The restyled tools are
read,bash,edit, andwrite, which Pi enables by default. They run Pi's own implementations and respect yourshellPath,shellCommandPrefix, and image resize settings. Other tools keep Pi's rendering, without the colored boxes. - Pi has no renderer hook for user messages, so the extension patches Pi's user message component while it is loaded. A future Pi release could break that part.
- Styling applies to interactive mode only. Print, JSON, and RPC modes are unchanged.
Development
Requires Node 22.19 or newer.
npm ci
npm run check # TypeScript
npm test # themes and tool rendering
pi -e . # run Pi with the working copy
Release
- Bump
versioninpackage.jsonand merge tomain. - Tag the commit:
git tag v0.1.1 && git push origin v0.1.1.
The release workflow checks that the tag matches package.json, runs the checks, publishes to npm through trusted publishing, and creates a GitHub release. Versions with a prerelease suffix, such as v0.2.0-rc.1, publish under the next tag. Trusted publishing needs the package to exist, so publish the first version by hand with npm publish.