Tools and frameworks for building interactive terminal user interfaces (TUI) and console-based applications.
Install
mkdir -p .claude/skills/tui && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17252" && unzip -o skill.zip -d .claude/skills/tui && rm skill.zipInstalls to .claude/skills/tui
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Expert terminal user interface development including interactive console applications, cross-platform TUI libraries, and responsive terminal layoutsKey capabilities
- →Create interactive terminal applications
- →Build command-line interfaces with rich UI
- →Implement terminal-based dashboards
- →Handle terminal events and input processing
- →Manage layout and responsive design in terminals
How it works
The skill provides expert guidance on Terminal User Interface development, covering interactive console applications, cross-platform libraries, and responsive layouts. It offers examples and best practices for TUI frameworks.
Inputs & outputs
When to use tui
- →Building terminal-based interactive dashboards
- →Implementing custom CLI layout logic
- →Handling keyboard events for terminal applications
- →Porting UI logic to cross-platform TUI libraries
About this skill
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Outline
You are a Terminal User Interface (TUI) expert specializing in interactive console applications, cross-platform terminal libraries, and responsive terminal layouts. Use this skill when the user needs help with:
- Creating interactive terminal applications
- Building command-line interfaces with rich UI
- Implementing terminal-based dashboards and tools
- Cross-platform TUI development
- Terminal event handling and input processing
- Layout management and responsive design in terminals
TUI Libraries
Go
- Bubbletea: Modern, idiomatic Go TUI framework (Elm architecture)
- lipgloss: Styling and colors
- tview: Rich interactive widgets and flexible layouts
- tcell: Low-level terminal manipulation
Other Languages
- ratatui (Rust): Modern TUI library with crossterm backend
- Rich / Textual (Python): Rich text formatting and modern TUI framework
- ink (Node.js): React for CLIs
Core TUI Pattern — Bubbletea (Go)
type model struct {
choices []string
cursor int
selected string
}
func (m model) Init() tea.Cmd { return nil }
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case tea.KeyMsg:
switch msg.Type {
case tea.KeyCtrlC:
return m, tea.Quit
case tea.KeyUp:
if m.cursor > 0 { m.cursor-- }
case tea.KeyDown:
if m.cursor < len(m.choices)-1 { m.cursor++ }
case tea.KeyEnter:
m.selected = m.choices[m.cursor]
return m, tea.Quit
}
case tea.WindowSizeMsg:
m.width = msg.Width
m.height = msg.Height
}
return m, nil
}
func (m model) View() string {
s := "Choose an option:\n\n"
for i, choice := range m.choices {
cursor := " "
if m.cursor == i { cursor = ">" }
s += fmt.Sprintf("%s %s\n", cursor, choice)
}
return s + "\nPress q to quit.\n"
}
Input Handling
Key events to always handle:
tea.KeyCtrlC/q— quittea.KeyUp/tea.KeyCtrlP— navigate uptea.KeyDown/tea.KeyCtrlN— navigate downtea.KeyEnter— confirm selectiontea.WindowSizeMsg— terminal resize
Responsive Layout
// Adapt layout based on terminal width
func adaptLayout(width int) string {
if width < 80 {
return "vertical" // stacked layout
} else if width < 120 {
return "mixed" // partial side-by-side
}
return "horizontal" // full side-by-side
}
// Responsive grid
cols := max(1, termWidth/40) // min 40 chars per column
Best Practices
- Performance: Use differential updates; minimize full redraws
- Accessibility: Keyboard navigation for all interactions; clear visual indicators
- Cross-platform: Test on Windows/macOS/Linux; graceful fallbacks for limited terminals
- UX: Provide help text, progress indicators, undo/redo where appropriate
Complete Reference
For exhaustive patterns, examples, and advanced usage see:
When not to use it
- →When the user needs help with graphical user interfaces
- →When the user needs help with web-based applications
- →When the user needs help with mobile application development
Limitations
- →The skill focuses on terminal user interface development.
- →The skill provides guidance on specific TUI libraries like Bubbletea, lipgloss, tview, tcell, ratatui, Rich/Textual, and ink.
- →The skill emphasizes handling key events and adapting layouts based on terminal width.
How it compares
This skill provides specialized guidance for TUI development, focusing on terminal-specific challenges like event handling and responsive layouts, which differs from general UI development that targets graphical environments.
Compared to similar skills
tui side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| tui (this skill) | 0 | 3mo | No flags | Intermediate |
| release-skills | 2 | 2mo | Review | Intermediate |
| telegram-bot-builder | 106 | 6mo | Review | Intermediate |
| reddit-api | 3 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by re-cinq
View all by re-cinq →You might also like
release-skills
JimLiu
Universal release workflow. Auto-detects version files and changelogs. Supports Node.js, Python, Rust, Claude Plugin, and generic projects. Use when user says "release", "发布", "new version", "bump version", "push", "推送".
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.
reddit-api
alinaqi
Reddit API with PRAW (Python) and Snoowrap (Node.js)
juicebox-install-auth
jeremylongshore
Install and configure Juicebox SDK/CLI authentication. Use when setting up a new Juicebox integration, configuring API keys, or initializing Juicebox in your project. Trigger with phrases like "install juicebox", "setup juicebox", "juicebox auth", "configure juicebox API key".
lindy-sdk-patterns
jeremylongshore
Lindy AI SDK best practices and common patterns. Use when learning SDK patterns, optimizing API usage, or implementing advanced agent features. Trigger with phrases like "lindy SDK patterns", "lindy best practices", "lindy API patterns", "lindy code patterns".
windsurf-mcp-integration
jeremylongshore
Manage integrate MCP servers with Windsurf for extended capabilities. Activate when users mention "mcp integration", "model context protocol", "external tools", "mcp server", or "cascade tools". Handles MCP server configuration and integration. Use when working with windsurf mcp integration functionality. Trigger with phrases like "windsurf mcp integration", "windsurf integration", "windsurf".