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.

referencesanti-patterns.md

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

Anti-patterns

Use this file when reviewing generated code or planning a refactor.

Architecture smells

Giant App class

Symptoms:

  • hundreds of lines
  • many on_* and action_* methods
  • screen-specific logic everywhere

Fix:

  • extract Screen classes
  • extract composite widgets
  • keep App for orchestration

Inline CSS sprawl

Symptoms:

  • long CSS = """...""" blocks
  • styling mixed with business logic
  • hard-to-test selectors

Fix:

  • move to .tcss
  • keep classes semantic
  • keep styling separate from control flow

Performance smells

Blocking handlers

Symptoms:

  • time.sleep(...)
  • network calls in on_*
  • subprocess execution in button handlers

Fix:

  • workers, messages, notifications

Heavy compute_*

Symptoms:

  • I/O
  • parsing
  • long loops
  • side effects

Fix:

  • keep computes pure and cheap
  • move work elsewhere

Widget misuse

Manual Rich tables inside Static

Use DataTable when the user needs focus, selection, cursor movement, or row interactions.

Ad-hoc tab systems

Use TabbedContent / TabPane.

Ad-hoc file tree widgets

Use DirectoryTree.

Home-grown markdown panes

Use MarkdownViewer or Markdown.

Testing smells

  • no run_test() coverage
  • brittle selectors tied to literal text
  • behaviour changes with only manual testing
  • layout-heavy app with no size-based test or snapshot coverage

Browser parity smells

  • writing files directly to the local filesystem with no browser-aware path
  • assuming terminal width
  • export/report flows without delivery APIs

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