Source profileQuality 89/100

cline/cline/.agents/skills/opentui/SKILL.md

opentui

Comprehensive OpenTUI skill for building terminal user interfaces. Covers the core imperative API, React reconciler, and Solid reconciler. Use for any TUI development task including components, layout, keyboard handling, animations, and testing.

Source repository stars
65,609
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Consolidated skill for building terminal user interfaces with OpenTUI. Use decision trees below to find the right framework and components, then load detailed references.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/cline/cline --skill ".agents/skills/opentui"
    Safe inspection promptEditorial

    Inspect the Agent Skill "opentui" from https://github.com/cline/cline/blob/5ec2d47b21b3a09aa7a094bfbbe0c7e8f7ddd3fa/.agents/skills/opentui/SKILL.md at commit 5ec2d47b21b3a09aa7a094bfbbe0c7e8f7ddd3fa. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      How to Use This Skill

      Framework references follow a 5-file pattern. Cross-cutting concepts are single-file guides.

      Start with REFERENCE.md for your chosen frameworkThen read additional files relevant to your task:Building components - api.md + components/.md
    2. 02

      Critical Rules

      Follow these rules in all OpenTUI code:

      Use create-tui for new projects. See framework REFERENCE.md quick starts.create-tui options must come before arguments. bunx create-tui -t react my-app works, bunx create-tui my-app -t react does NOT.Never call process.exit() directly. Use renderer.destroy() (see core/gotchas.md).
    3. 03

      Reference File Structure

      Framework references follow a 5-file pattern. Cross-cutting concepts are single-file guides.

      Framework references follow a 5-file pattern. Cross-cutting concepts are single-file guides.Each framework in ./references// contains:Cross-cutting concepts in ./references// have REFERENCE.md as the entry point.
    4. 04

      Reading Order

      1. Start with REFERENCE.md for your chosen framework 2. Then read additional files relevant to your task: - Building components - api.md + components/.md - Setting up project - configuration.md - Layout/positioning - layout/REFERENCE.md - Keyboard/input handling - keyboard/REFER…

      Start with REFERENCE.md for your chosen frameworkThen read additional files relevant to your task:Building components - api.md + components/.md
    5. 05

      Example Paths

      Review the “Example Paths” section in the pinned source before continuing.

      Review and apply the “Example Paths” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score89/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars65,609SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    cline/cline
    Skill path
    .agents/skills/opentui/SKILL.md
    Commit
    5ec2d47b21b3a09aa7a094bfbbe0c7e8f7ddd3fa
    License
    Apache-2.0
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    OpenTUI Platform Skill

    Consolidated skill for building terminal user interfaces with OpenTUI. Use decision trees below to find the right framework and components, then load detailed references.

    Critical Rules

    Follow these rules in all OpenTUI code:

    1. Use create-tui for new projects. See framework REFERENCE.md quick starts.
    2. create-tui options must come before arguments. bunx create-tui -t react my-app works, bunx create-tui my-app -t react does NOT.
    3. Never call process.exit() directly. Use renderer.destroy() (see core/gotchas.md).
    4. Text styling requires nested tags in React/Solid. Use modifier elements, not props (see components/text-display.md).

    How to Use This Skill

    Reference File Structure

    Framework references follow a 5-file pattern. Cross-cutting concepts are single-file guides.

    Each framework in ./references/<framework>/ contains:

    FilePurposeWhen to Read
    REFERENCE.mdOverview, when to use, quick startAlways read first
    api.mdRuntime API, components, hooksWriting code
    configuration.mdSetup, tsconfig, bundlingConfiguring a project
    patterns.mdCommon patterns, best practicesImplementation guidance
    gotchas.mdPitfalls, limitations, debuggingTroubleshooting

    Cross-cutting concepts in ./references/<concept>/ have REFERENCE.md as the entry point.

    Reading Order

    1. Start with REFERENCE.md for your chosen framework
    2. Then read additional files relevant to your task:
      • Building components -> api.md + components/<category>.md
      • Setting up project -> configuration.md
      • Layout/positioning -> layout/REFERENCE.md
      • Keyboard/input handling -> keyboard/REFERENCE.md
      • Animations -> animation/REFERENCE.md
      • Troubleshooting -> gotchas.md + testing/REFERENCE.md

    Example Paths

    ./references/react/REFERENCE.md           # Start here for React
    ./references/react/api.md              # React components and hooks
    ./references/solid/configuration.md    # Solid project setup
    ./references/components/inputs.md      # Input, Textarea, Select docs
    ./references/core/gotchas.md           # Core debugging tips
    

    Runtime Notes

    OpenTUI runs on Bun and uses Zig for native builds. Read ./references/core/gotchas.md for runtime requirements and build guidance.

    Quick Decision Trees

    "Which framework should I use?"

    Which framework?
    ├─ I want full control, maximum performance, no framework overhead
    │  └─ core/ (imperative API)
    ├─ I know React, want familiar component patterns
    │  └─ react/ (React reconciler)
    ├─ I want fine-grained reactivity, optimal re-renders
    │  └─ solid/ (Solid reconciler)
    └─ I'm building a library/framework on top of OpenTUI
       └─ core/ (imperative API)
    

    "I need to display content"

    Display content?
    ├─ Plain or styled text -> components/text-display.md
    ├─ Container with borders/background -> components/containers.md
    ├─ Scrollable content area -> components/containers.md (scrollbox)
    ├─ ASCII art banner/title -> components/text-display.md (ascii-font)
    ├─ Data table with borders/wrapping -> components/code-diff.md (TextTable)
    ├─ Code with syntax highlighting -> components/code-diff.md
    ├─ Diff viewer (unified/split) -> components/code-diff.md
    ├─ Line numbers with diagnostics -> components/code-diff.md
    └─ Markdown content (streaming) -> components/code-diff.md (markdown)
    

    "I need user input"

    User input?
    ├─ Single-line text field -> components/inputs.md (input)
    ├─ Multi-line text editor -> components/inputs.md (textarea)
    ├─ Select from a list (vertical) -> components/inputs.md (select)
    ├─ Tab-based selection (horizontal) -> components/inputs.md (tab-select)
    └─ Custom keyboard shortcuts -> keyboard/REFERENCE.md
    

    "I need layout/positioning"

    Layout?
    ├─ Flexbox-style layouts (row, column, wrap) -> layout/REFERENCE.md
    ├─ Absolute positioning -> layout/patterns.md
    ├─ Responsive to terminal size -> layout/patterns.md
    ├─ Centering content -> layout/patterns.md
    └─ Complex nested layouts -> layout/patterns.md
    

    "I need animations"

    Animations?
    ├─ Timeline-based animations -> animation/REFERENCE.md
    ├─ Easing functions -> animation/REFERENCE.md
    ├─ Property transitions -> animation/REFERENCE.md
    └─ Looping animations -> animation/REFERENCE.md
    

    "I need to handle input"

    Input handling?
    ├─ Keyboard events (keypress, release) -> keyboard/REFERENCE.md
    ├─ Focus management -> keyboard/REFERENCE.md
    ├─ Paste events -> keyboard/REFERENCE.md
    ├─ Mouse events -> components/containers.md
    ├─ Text selection & copy-on-select -> keyboard/REFERENCE.md (selection)
    └─ Clipboard (OSC 52) -> keyboard/REFERENCE.md (clipboard)
    

    "I need to test my TUI"

    Testing?
    ├─ Snapshot testing -> testing/REFERENCE.md
    ├─ Interaction testing -> testing/REFERENCE.md
    ├─ Test renderer setup -> testing/REFERENCE.md
    └─ Debugging tests -> testing/REFERENCE.md
    

    "I need to debug/troubleshoot"

    Troubleshooting?
    ├─ Runtime errors, crashes -> <framework>/gotchas.md
    ├─ Layout issues -> layout/REFERENCE.md + layout/patterns.md
    ├─ Input/focus issues -> keyboard/REFERENCE.md
    └─ Repro + regression tests -> testing/REFERENCE.md
    

    Troubleshooting Index

    • Terminal cleanup, crashes -> core/gotchas.md
    • Text styling not applying -> components/text-display.md
    • Input focus/shortcuts -> keyboard/REFERENCE.md
    • Layout misalignment -> layout/REFERENCE.md
    • Flaky snapshots -> testing/REFERENCE.md

    For component naming differences and text modifiers, see components/REFERENCE.md.

    Product Index

    Frameworks

    FrameworkEntry FileDescription
    Core./references/core/REFERENCE.mdImperative API, all primitives
    React./references/react/REFERENCE.mdReact reconciler for declarative TUI
    Solid./references/solid/REFERENCE.mdSolidJS reconciler for declarative TUI

    Cross-Cutting Concepts

    ConceptEntry FileDescription
    Layout./references/layout/REFERENCE.mdYoga/Flexbox layout system
    Components./references/components/REFERENCE.mdComponent reference by category
    Keyboard./references/keyboard/REFERENCE.mdKeyboard input handling
    Animation./references/animation/REFERENCE.mdTimeline-based animations
    Testing./references/testing/REFERENCE.mdTest renderer and snapshots

    Component Categories

    CategoryEntry FileComponents
    Text & Display./references/components/text-display.mdtext, ascii-font, styled text
    Containers./references/components/containers.mdbox, scrollbox, borders
    Inputs./references/components/inputs.mdinput, textarea, select, tab-select
    Code & Diff./references/components/code-diff.mdcode, line-number, diff, markdown, text-table

    Resources

    Repository: https://github.com/anomalyco/opentui Core Docs: https://github.com/anomalyco/opentui/tree/main/packages/core/docs Examples: https://github.com/anomalyco/opentui/tree/main/packages/core/src/examples Awesome List: https://github.com/msmps/awesome-opentui

    Alternatives

    Compare before choosing