- TypeScript 76.6%
- JavaScript 23.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| extensions | ||
| tests | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
dumm-pi
Questionable pi harness additions. First up: bread with somewhere to be.
Thinking toast
The default is a minimal pixel waffle drawn from the @furry-industries/blocks agent-throbber motifs, painted in the active pi theme's accent color and shown in a six-column, three-row image slot. Each activity is one of five motifs of eight hard-cut frames:
| Activity | Motif | Cycle |
|---|---|---|
| Waiting | --wait: the lying waffle dozes and breathes while a dot grows into a z that drifts up and fades |
2400 ms |
| Thinking | --tilt: the standing waffle leans to the brink and back |
1600 ms |
| Searching | --search: the standing waffle turns around its vertical axis, pockets on the face and a plain back |
1200 ms |
| Tools | --flip: a 400 ms turn onto the other side, pockets trading sides |
400 ms |
| Writing | --flop: the waffle tips over its edge and back up |
200 ms |
Fast moves ride smear frames swept across the arc; landings pass through a settle frame that dims the body behind a short arc; pockets, smears, and the ground shadow are opacity layers of the same accent (35%, 60%, 30%). There are 40 cached frames (eight per activity) on a 16 ms tick. The activity is chosen from real pi events, exactly like the blocks demo asks: the application selects the motif from its actual operation. The waiting motif is the resting state of the tracker: while a turn is running the request is always in flight, so the windows before the first streamed token and between a finished tool round and the next model call play the thinking tilt instead of the doze.
/toast minimal selects it. Without image support it falls back to the
single-character │ → ╱ → _ → ╱ → │ animation. /toast preview tours the five
activities for ten seconds without a model call. /toast preview thinking (or
waiting, searching, tools, writing) previews one activity for five
seconds. The earlier toast experiments remain available with /toast sprite
and /toast text.
A tiny golden pixel toast falls onto a table and rebounds without squashing at 60 ms per frame while pi is working, replacing the normal working row. On terminals supported by pi's image component (including Ghostty through the Kitty graphics protocol), it uses a six-column, three-row image slot. The sprite is drawn as PNG frames in code, with no added dependencies. Unsupported terminals fall back to the five-row, six-column text animation. The slot stays fixed while animating so the prompt stays still. The toast runs for the whole agent turn, including tools, and disappears on completion or cancellation. Requires pi 1.1.0 or compatible widget APIs.
Try it from this directory:
pi -e ./extensions/toast.ts
Then /toast preview gives you a ten-second tour of unnecessary bread without
an API call, or five seconds when a specific activity is selected.
/toast off restores the normal working display; /toast on brings
the bread back. /toast toggles it. The setting lasts for the current session.
/toast sprite selects images and reports the detected protocol; /toast text
selects the original text animation. Run /toast preview after switching.
Image support may be unavailable through tmux or screen. Actual smoothness and
image cleanup should be checked in the terminal where you run pi.
This is a pixel-art port of the blocks waffle motifs, not SVG playback.
The text fallback and image alt color adopt your pi theme's accent, with the
same requested → accent → text fallback chain the styling extensions use.
Global configuration is not changed by simply trying the extension with -e.
Replacing the pi-droid-styling spinner
When @sting8k/pi-droid-styling
is installed, the toast takes over its working loader row entirely: pi's row
is hidden and the widget renders the compact waffle to the left of the
shimmering label instead — the same Working/Thinking/Answering/Cooking
labels and 80 ms highlight sweep the droid draws, read from
customWorkingMessage in pi-droid-styling.json and re-created in the
widget. On Kitty-protocol terminals (including Ghostty) the waffle and the
label share one line, the 4×2-cell waffle drawn from code with a reused
Kitty image id and the cursor forwarded over it; other image protocols
stack the label above the compact waffle, and terminals without image
support get the │ → ╱ → _ glyph beside the label. On exit the toast
regenerates the droid's 24-frame breathing ○ (accent eased toward dim at
100 ms, honouring the theme's colour mode) instead of resetting the
indicator, so the row is never demoted to pi's default spinner. Without
the package, the toast behaves as before: it clears the indicator while
animating and restores pi's default on exit.
To install the package globally from this checkout:
pi install /Users/duumxh/Projects/dumm-pi