<!-- AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY -->
<!-- Edit source frontmatter, then run 'erk docs sync' to regenerate. -->

# Tui Documentation

- **[action-inventory.md](action-inventory.md)** — adding actions to the dashboard, understanding TUI command execution patterns, replicating TUI functionality in another frontend
- **[adding-commands.md](adding-commands.md)** — adding a new command to the TUI command palette, implementing TUI actions with streaming output, understanding the dual-handler pattern for TUI commands
- **[architecture.md](architecture.md)** — understanding TUI structure, implementing TUI components, working with TUI data providers
- **[command-execution.md](command-execution.md)** — executing commands in TUI, choosing between sync and streaming execution, implementing command runners
- **[command-palette.md](command-palette.md)** — implementing command palette in Textual TUI, creating searchable command menus, adding keyboard-accessible command discovery, working with Textual Provider classes, hiding system commands from command palette, get_system_commands method, removing Keys Quit Screenshot Theme from palette, adding emoji prefixes to command palette entries, using CommandCategory for command categorization, preserving fuzzy match highlighting with Text.assemble()
- **[data-contract.md](data-contract.md)** — building on top of the TUI data layer, serializing PlanRowData to JSON, understanding what data the dashboard displays
- **[dual-handler-pattern.md](dual-handler-pattern.md)** — implementing TUI commands that work in multiple contexts, working with Textual CommandRegistry, designing commands that operate on selected items, planning desktop dashboard command handlers
- **[plan-row-data.md](plan-row-data.md)** — writing command availability predicates, understanding what data is available for TUI commands, checking which PlanRowData fields are nullable
- **[plan-title-rendering-pipeline.md](plan-title-rendering-pipeline.md)** — debugging why plan titles display incorrectly, troubleshooting missing prefixes in TUI, understanding plan data flow in TUI
- **[streaming-output.md](streaming-output.md)** — displaying streaming command output in TUI, executing long-running commands with progress, cross-thread UI updates in Textual
- **[textual-async.md](textual-async.md)** — overriding Screen actions, working with async/await in Textual, testing async TUI code
- **[title-truncation-edge-cases.md](title-truncation-edge-cases.md)** — implementing title truncation in TUI, troubleshooting truncated titles showing only prefix, working with title display lengths
