Index of every page on this site: llms.txt
All skills
Run it yourself

Build, debug, test, or package Python Textual terminal interfaces: screens, widgets, TCSS, reactive state, workers, keyboard workflows, and optional browser delivery. Use when Textual is selected or an existing Textual app is involved; do not turn a noninteractive CLI or simple Rich output into a TUI unnecessarily.

Use this Skill: https://skilld.dev/gh/tristanmanchester/agent-skills/textual-tui

Nothing lands on disk. Nothing to clean up.

Fork this Skill

Edit a local copy. It keeps the author and licence.

referenceswidget-selection-atlas.md

≈651 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Widget selection atlas

Prefer the built-in widget that already matches the interaction model.

High-value widgets

DataTable

Use for:

  • searchable result sets
  • keyboard navigation over rows
  • dashboards with metrics or records
  • master/detail layouts

Prefer over:

  • manual Rich Table rendered into Static
  • custom cursor logic for rows

Pair with:

  • filter Input
  • detail Static / Markdown
  • responsive pane layout

DirectoryTree

Use for:

  • file browsers
  • repository explorers
  • import pickers
  • project navigation

Pair with:

  • preview pane
  • TextArea or MarkdownViewer
  • path/status footer

MarkdownViewer

Use for:

  • rendered notes, help, changelogs, docs, AI output
  • long-form content needing browser-like navigation

Prefer over:

  • hand-rendering markdown into many small widgets

TextArea

Use for:

  • text/code editing
  • configuration editors
  • scratch pads
  • prompt builders

Pair with:

  • save action
  • status line
  • optional preview or lint output

TabbedContent / TabPane

Use for:

  • grouped settings
  • alternate detail views
  • inspector panes

Prefer over:

  • hand-written tab state unless the behaviour is highly custom

Log / RichLog

Use for:

  • streaming output
  • task history
  • captured stdout/stderr
  • diagnostics

Prefer Log for simple text streams and RichLog when rich renderables matter.

Tree

Use for:

  • hierarchical data that is not the filesystem
  • settings groups
  • expandable summaries

SelectionList, OptionList, ListView, Select

Quick guide:

  • SelectionList for multi-select checklists
  • OptionList for keyboard-first option menus
  • ListView for custom row widgets
  • Select for compact form dropdowns

Switch, Checkbox, Input, Button, Label, Static

These cover most form and control needs. Reach for them before custom controls.

Widget pairings that work well

  • DataTable + detail Static
  • DirectoryTree + TextArea
  • Input + DataTable + status Label
  • MarkdownViewer + Footer
  • TabbedContent + per-tab forms
  • Log + filter Input

Signals you are missing a built-in

Stop and reconsider if you are about to:

  • hand-roll tabs
  • hand-roll file trees
  • write your own editable multiline text widget
  • render a Rich table into Static and then emulate selection
  • manage long-form markdown as many individual Static widgets

Styling advice

Make widget choice do most of the work. Use TCSS for:

  • layout
  • spacing
  • responsive pane arrangement
  • semantic states via classes

Do not create custom widgets only to solve a styling problem.

Source: SKILL.md on GitHub

skilld matched fixed text patterns in SKILL.md and file names. Patterns miss obfuscated code.

skilld run checks every file with the same patterns. It asks for approval before it loads a Skill with a behavior marked Needs approval.

1 warning1mo4 checks · Risk SAFE
  • Gen Agent Trust Hub1mo

    The skill provides developer tools for Textual TUI development, including scaffolding and auditing. It uses dynamic Python code loading to analyze local projects, which presents a localized execution risk for the agent's environment.

  • Socket1mo

    1 alert: gptAnomaly

  • Snyk1mo

    Risk: LOW · No issues

  • ZeroLeaks6mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 3323bc9. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Steadyupdated last month
metadata
{
  "version": "3.0.0",
  "reviewed": "2026-09-13"
}
Other metadata
compatibility
Textual currently supports Python >=3.9,<4. Use the project's locked Textual and developer-tool versions. Bundled scaffold checks parse source without importing the generated application; runtime tests need Textual and the app's dependencies.

README badge

README badge for tristanmanchester/agent-skills/textual-tui