← Back to Skills Marketplace
openlark

Pi Tui

by OpenLark · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
41
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install pi-tui
Description
Pi TUI — Terminal UI framework with differential rendering + synchronized output for flicker-free interactive CLIs.
README (SKILL.md)

Pi TUI

Component-based architecture (TUI/Container/Box/Text/TruncatedText/Input/Editor/Markdown/Loader/CancellableLoader/SelectList/SettingsList/Spacer/Image), overlay system, IME support, autocomplete, Kitty keyboard protocol. Differential rendering TUI framework. Install: npm install @earendil-works/pi-tui

Use Cases

Use when building terminal UIs, interactive CLI apps, TUI editors, terminal select lists/settings panels, terminal Markdown rendering, or inline terminal images.

Core Concepts

Component Interface — All components implement render(width): string[] (each line ≤ width), handleInput?(data), invalidate?(). Each line auto-appends SGR+OSC reset; styles do not carry across lines.

Focusable Interface — Components needing IME implement a focused: boolean property and insert CURSOR_MARKER before the cursor in render. Containers with Input/Editor children must propagate focus state (otherwise IME candidate window mispositions). Hardware cursor hidden by default; enable with PI_HARDWARE_CURSOR=1.

Differential Rendering — Three strategies: first render outputs all lines, width change clears and redraws, incremental only updates changed lines. CSI 2026 synchronized output prevents flicker.

Quick Start

import { TUI, Text, Editor, ProcessTerminal, matchesKey } from "@earendil-works/pi-tui";

const tui = new TUI(new ProcessTerminal());
tui.addChild(new Text("Welcome!"));
const editor = new Editor(tui, theme);
editor.onSubmit = (text) => tui.addChild(new Text(`> ${text}`));
tui.addChild(editor);
tui.setFocus(editor);
tui.addInputListener((data) => { if (matchesKey(data, 'ctrl+c')) { tui.stop(); process.exit(0); } });
tui.start();

// TUI API: addChild/removeChild/start/stop/requestRender/setFocus/onDebug

Progressive References

Load on demand, only when needed:

  • Overlays/dialogs/menus → references/overlays.md
  • Component API reference → references/components.md
  • Autocomplete/key detection → references/autocomplete.md

Gotchas

  1. render(width) line width: each line ≤ width, otherwise TUI throws
  2. Styles don't span lines: auto-reset at line end, reapply styles per line for multi-line styled text
  3. Container IME propagation: containers with Input/Editor must implement Focusable and propagate focus
  4. Ctrl+C: raw mode doesn't send SIGINT, must handle via matchesKey(data, 'ctrl+c')
  5. Overlay focus: unfocus({ target: component }) releases to specific component, unfocus({ target: null }) clears focus
Usage Guidance
Install only if you intend to build terminal UI applications with this npm package. Review the npm package itself through your normal dependency process, and be aware that apps using its file-path autocomplete may expose local file names inside that app's UI.
Capability Assessment
Purpose & Capability
The artifacts consistently describe Pi TUI as a component-based terminal UI framework with rendering, input, overlay, autocomplete, and component-reference guidance.
Instruction Scope
Instructions are limited to usage examples and reference material for building TUIs; there are no role overrides, prompt-injection instructions, unsafe automation, or unrelated agent directives.
Install Mechanism
The skill discloses a standard npm install command for @earendil-works/pi-tui, but the submitted skill artifact itself contains only Markdown files and no executable installer scripts.
Credentials
The referenced library features include terminal input handling, inline images, and file-path autocomplete using the current working directory; these are purpose-aligned for TUI development and are disclosed.
Persistence & Privilege
No persistence, background workers, privilege escalation, credential access, session/profile access, destructive actions, or data exfiltration behavior appears in the artifact.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install pi-tui
  3. After installation, invoke the skill by name or use /pi-tui
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
pi-tui 1.0.0 — Initial Release - Introduces component-based terminal UI framework with differential rendering for flicker-free, interactive CLIs - Implements synchronized output (CSI 2026) and overlay support to prevent flicker and support dialogs/menus - Includes built-in components: TUI container, Box, Text, TruncatedText, Input, Editor, Markdown, Loader, SelectList, SettingsList, Spacer, Image - Out-of-the-box support for input method editors (IME), autocomplete, and Kitty keyboard protocol - Provides clear component/focus interfaces, core usage docs, and practical gotchas for smooth integration
Metadata
Slug pi-tui
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Pi Tui?

Pi TUI — Terminal UI framework with differential rendering + synchronized output for flicker-free interactive CLIs. It is an AI Agent Skill for Claude Code / OpenClaw, with 41 downloads so far.

How do I install Pi Tui?

Run "/install pi-tui" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Pi Tui free?

Yes, Pi Tui is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Pi Tui support?

Pi Tui is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Pi Tui?

It is built and maintained by OpenLark (@openlark); the current version is v1.0.0.

💬 Comments