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.

referencesarchitecture-decision-tree.md

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

Architecture decision tree

Use this file when the user has described an app but not its internal shape.

First cut

Does the user mainly need one working surface?

Use a single Screen with containers and built-in widgets.

Best for:

  • dashboards
  • search tools
  • editors
  • settings panes
  • monitors

Default structure:

  • App
  • one root screen or default screen
  • composite widgets for repeated chunks
  • external .tcss

Does the user move between distinct contexts?

Use Screen classes.

Signals:

  • drill-down views
  • home -> detail -> edit
  • separate flows with different headers/footers
  • modal confirmation steps

Rule of thumb:

  • if going “back” should restore the previous view, that usually wants a Screen

Are there durable top-level areas with their own navigation stacks?

Use named MODES.

Signals:

  • dashboard / jobs / settings / logs
  • inbox / projects / account
  • an app-level sidebar or command palette that jumps between sections

Rule of thumb:

  • use modes for persistent product areas
  • use screens for within-area navigation

Is the flow linear and local to one screen?

Use ContentSwitcher or a small state machine.

Best for:

  • multi-step forms
  • onboarding
  • short wizards
  • alternate detail panes

Is the interruption brief and task-specific?

Use ModalScreen.

Best for:

  • confirmation dialogs
  • pickers
  • destructive actions
  • tiny forms

Layout choices

Data-heavy tools

Prefer:

  • DataTable
  • filter/search input
  • details pane
  • breakpoint-driven collapse on narrow terminals

Avoid:

  • rendering static Rich tables inside Static when the table needs focus or cursoring

Filesystem/document tools

Prefer:

  • DirectoryTree
  • preview/detail pane
  • MarkdownViewer or TextArea
  • delivery APIs for export/download

Chat and live task tools

Prefer:

  • transcript/log widget
  • input dock
  • worker-driven background tasks
  • anchored scrolling
  • clear status/notification path

Extraction rules

Split code when any of these happen:

  • App grows beyond a few hundred lines
  • the same query selectors appear everywhere
  • a screen has its own state and actions
  • widget event handling dominates the app class
  • styling is hard to reason about without opening Python

Good extraction targets:

  • Screen for route-level behaviour
  • composite Widget for reusable panes
  • helper module for domain logic
  • .tcss for all layout and theme work

Stable defaults

When unsure:

  1. start with one screen
  2. compose built-in widgets
  3. externalise styling
  4. add IDs/classes deliberately
  5. move long-running work into workers
  6. add at least one Pilot test before expanding scope

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