Python TUI Apps

SkillDev tools

Create polished Python terminal user interfaces and skill scripts with Textual and Rich. Use when: building TUI apps; adding interactive terminal workflows; designing tabs, progress bars, checkboxes, radio buttons, tables, charts, forms, status views, keyboard navigation, color, or responsive terminal layouts; making Python scripts visually appealing and informative. Every skill script defaults to a TUI on an interactive terminal and provides --no-tui for deterministic stream output. DO NOT USE FOR: browser GUIs; desktop-native GUIs; plain shell commands with no interactive workflow; non-Python applications.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Python TUI Apps skill

What this skill tells your AI

The instructions your AI receives, as published by netfabric/netfabric.numerics in .agents/skills/python-tui-apps/SKILL.md and read by ahel’s review.

Anatomy

FilePurposeTarget Size
SKILL.mdDefaults, workflow, component quick reference<100 lines
references/implementation.mdTextual/Rich architecture, CLI contract, stream fallback<200 lines
references/ux-and-components.mdComponent selection, visual design, interaction states<200 lines
references/testing-and-accessibility.mdHeadless tests, terminal sizes, accessibility, release checks<200 lines

Required Contract

ConcernRule
DefaultLaunch the Textual TUI when input and output are interactive terminals
Model/automation modeAccept --no-tui; emit ordered Rich/plain stream output; never prompt or animate
Redirected I/OFall back to stream mode unless the user explicitly forces a TUI
Core logicKeep operations and state independent of Textual widgets and Rich rendering
ProgressReport phase, completed/total work, current item, and useful failure context
ColorUse a restrained semantic palette; preserve meaning without color
ControlsChoose widgets that match the data and action; do not add decorative controls
ExitSupport cancel/back, clean shutdown, stable exit codes, and a final result summary

Workflow

  1. Define the primary task, user decisions, long-running phases, errors, and final artifact.
  2. Design the stream event/result model before either renderer.
  3. Implement --no-tui and redirected-I/O fallback; keep stdout machine-safe when required.
  4. Compose the Textual app from semantic widgets and responsive containers.
  5. Add keyboard paths, focus states, loading/empty/error/success states, and confirmation for destructive actions.
  6. Test both renderers, narrow and standard terminal sizes, cancellation, errors, and piped output.

Component Quick Reference

NeedPrefer
Distinct viewsTabbedContent / TabPane; preserve each tab's state
Mutually exclusive choiceRadioSet + RadioButton or Select for compact forms
Multiple choicesSelectionList or Checkbox; show selected count
Determinate workProgressBar; pair percentage with counts and current phase
Unknown-duration workLoadingIndicator; use only while work is genuinely indeterminate
Records and comparisonDataTable; align numbers and keep columns scannable
Trends/distributionsSparkline, compact bars, or textual-plotext when a chart adds insight
CommandsButton plus keyboard binding; make the primary action visually dominant
Guidance/resultsStatic, Label, Markdown, Log, or RichLog based on content

References

FileLoad When
references/implementation.mdStarting a Python TUI, separating logic/renderers, or adding --no-tui
references/ux-and-components.mdChoosing controls, color, layout, charts, or interaction states
references/testing-and-accessibility.mdWriting tests, checking terminal sizes, or preparing release validation

Signals

GitHub stars
36
Forks
1
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
python-tui-apps
Source
github.com/netfabric/netfabric.numerics