singularity-forge/docs/dev/pi-ui-tui/23-file-reference-example-extensions-with-ui.md
Jeremy 872b0adb48 docs: reorganize into user-docs/ and dev/ subdirectories
Split flat docs/ into user-docs/ (guides, config, troubleshooting) and
dev/ (ADRs, architecture, extension guides, proposals). Updated
docs/README.md index to reflect new paths.
2026-04-10 09:25:31 -05:00

4.1 KiB

File Reference — Example Extensions with UI

All paths relative to:

/Users/lexchristopherson/.nvm/versions/node/v22.20.0/lib/node_modules/@mariozechner/pi-coding-agent/examples/extensions/

Full Custom Components

File What It Demonstrates
snake.ts Game — Timer loop, keyboard handling, WASD + arrows, render caching, session persistence, pause/resume
space-invaders.ts Game — Similar patterns to snake with more complex rendering
doom-overlay/ Game as overlay — DOOM running at 35 FPS in a floating overlay, real-time rendering
questionnaire.ts Multi-tab wizard — Tab navigation, embedded Editor for free-text, option selection, submission flow
modal-editor.ts Custom editor — Vim-like modal editing with mode indicator
rainbow-editor.ts Custom editor — Animated text effects

Dialogs and Selection

File What It Demonstrates
preset.ts SelectList with DynamicBorder, complex multi-value presets
tools.ts SettingsList for toggling tools on/off
question.ts ctx.ui.select() inside a tool
timed-confirm.ts Dialogs with timeout and AbortSignal

Overlays

File What It Demonstrates
overlay-test.ts Basic overlay compositing with inline inputs
overlay-qa-tests.ts Comprehensive — All 9 anchors, margins, offsets, stacking, responsive visibility, animation at ~30 FPS, percentage sizing, max-height

Persistent UI

File What It Demonstrates
plan-mode/ setStatus + setWidget for progress tracking, reactive updates
status-line.ts setStatus with themed colors
widget-placement.ts setWidget above and below editor
custom-footer.ts setFooter with git branch, token stats, reactive branch changes
custom-header.ts setHeader for custom startup header

Tool Rendering

File What It Demonstrates
todo.ts Complete examplerenderCall and renderResult with expanded/collapsed views, state in details
built-in-tool-renderer.ts Custom compact rendering for built-in tools
minimal-mode.ts Override rendering for minimal display

Message Rendering

File What It Demonstrates
message-renderer.ts registerMessageRenderer with colors and expandable details

Async Operations

File What It Demonstrates
qna.ts BorderedLoader for async LLM calls with cancel
summarize.ts Summarize conversation with transient UI

Notifications and Status

File What It Demonstrates
notify.ts Desktop notifications via OSC 777 (Ghostty, iTerm2, WezTerm)
titlebar-spinner.ts Braille spinner animation in terminal title
model-status.ts React to model changes with setStatus

Documentation References

File What It Covers
docs/tui.md Full TUI component API, all patterns, performance, theming
docs/extensions.md Custom UI section, custom components, overlays, rendering
docs/themes.md Creating custom themes, full color palette
docs/keybindings.md Keyboard shortcut format, customization

Debug Logging

PI_TUI_WRITE_LOG=/tmp/tui-ansi.log pi

Captures the raw ANSI stream for debugging rendering issues.


This document was generated from Pi's TUI and extension documentation. Source files:

/Users/lexchristopherson/.nvm/versions/node/v22.20.0/lib/node_modules/@mariozechner/pi-coding-agent/docs/tui.md
/Users/lexchristopherson/.nvm/versions/node/v22.20.0/lib/node_modules/@mariozechner/pi-coding-agent/docs/extensions.md
/Users/lexchristopherson/.nvm/versions/node/v22.20.0/lib/node_modules/@mariozechner/pi-coding-agent/examples/extensions/

Companion documents on Desktop:

  • Pi-What-It-Is-And-How-It-Works.md — What Pi is and how it works
  • Pi-Extensions-Complete-Guide.md — Full extensions API reference