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.zip

Installs 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 layouts
148 charsno explicit “when” trigger
Intermediate

Key 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

You give it
A user request for TUI development
You get back
Guidance on TUI frameworks, patterns, and best practices

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 — quit
  • tea.KeyUp / tea.KeyCtrlP — navigate up
  • tea.KeyDown / tea.KeyCtrlN — navigate down
  • tea.KeyEnter — confirm selection
  • tea.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

  1. Performance: Use differential updates; minimize full redraws
  2. Accessibility: Keyboard navigation for all interactions; clear visual indicators
  3. Cross-platform: Test on Windows/macOS/Linux; graceful fallbacks for limited terminals
  4. UX: Provide help text, progress indicators, undo/redo where appropriate

Complete Reference

For exhaustive patterns, examples, and advanced usage see:

references/full-reference.md

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.

SkillInstallsUpdatedSafetyDifficulty
tui (this skill)03moNo flagsIntermediate
release-skills22moReviewIntermediate
telegram-bot-builder1066moReviewIntermediate
reddit-api33moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

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", "推送".

27

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.

106130

reddit-api

alinaqi

Reddit API with PRAW (Python) and Snoowrap (Node.js)

334

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".

28

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".

14

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".

14

Search skills

Search the agent skills registry