Skip to content
Back to skills

Opentui

ASecurity

OpenTUI TUI dev: core API, React/Solid reconcilers, layout, input, testing.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
code-qualitygoreacttestingdebugginggitapiperformance

Works with

  • terminal
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add BumpyClock/agent-templates --skill opentui --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Opentui?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Opentui
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bumpyclock-opentui/badge)](https://www.skillsdirectory.com/skills/bumpyclock-opentui)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: opentui
description: "OpenTUI TUI dev: core API, React/Solid reconcilers, layout, input, testing."
metadata:
   references: core, react, solid
---

# OpenTUI Platform Skill

Consolidated skill. Build TUIs w/ OpenTUI. Use decision trees -> find framework + components -> load refs.

## Critical Rules

**Follow in all OpenTUI code:**

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

## How to Use This Skill

### Reference File Structure

Framework refs -> 5-file pattern. Cross-cutting concepts -> single-file guides.

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

| File | Purpose | When to Read |
|------|---------|--------------|
| `REFERENCE.md` | Overview, when to use, quick start | **Read first** |
| `api.md` | Runtime API, components, hooks | Writing code |
| `configuration.md` | Setup, tsconfig, bundling | Configuring project |
| `patterns.md` | Common patterns, best practices | Impl guidance |
| `gotchas.md` | Pitfalls, limits, debugging | Troubleshooting |

Cross-cutting concepts in `./references/<concept>/` -> `REFERENCE.md` entry point.

### Reading Order

1. Start `REFERENCE.md` for chosen framework
2. Then read files for task:
   - Components -> `api.md` + `components/<category>.md`
   - Project setup -> `configuration.md`
   - Layout/positioning -> `layout/REFERENCE.md`
   - Keyboard/input -> `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, uses Zig for native builds. Read `./references/core/gotchas.md` for runtime reqs + 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)
├─ 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 -> components/text-display.md
```

### "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`

Component naming diffs + text modifiers -> `components/REFERENCE.md`.

## Product Index

### Frameworks
| Framework | Entry File | Description |
|-----------|------------|-------------|
| Core | `./references/core/REFERENCE.md` | Imperative API, all primitives |
| React | `./references/react/REFERENCE.md` | React reconciler, declarative TUI |
| Solid | `./references/solid/REFERENCE.md` | SolidJS reconciler, declarative TUI |

### Cross-Cutting Concepts
| Concept | Entry File | Description |
|---------|------------|-------------|
| Layout | `./references/layout/REFERENCE.md` | Yoga/Flexbox layout |
| Components | `./references/components/REFERENCE.md` | Component ref by category |
| Keyboard | `./references/keyboard/REFERENCE.md` | Keyboard input |
| Animation | `./references/animation/REFERENCE.md` | Timeline animations |
| Testing | `./references/testing/REFERENCE.md` | Test renderer + snapshots |

### Component Categories
| Category | Entry File | Components |
|----------|------------|------------|
| Text & Display | `./references/components/text-display.md` | text, ascii-font, styled text |
| Containers | `./references/components/containers.md` | box, scrollbox, borders |
| Inputs | `./references/components/inputs.md` | input, textarea, select, tab-select |
| Code & Diff | `./references/components/code-diff.md` | code, line-number, diff, markdown |

## 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

Files in this skill

  • SKILL.md7 KB
  • agents/openai.yaml173 B
  • references/animation/REFERENCE.md8.3 KB
  • references/components/REFERENCE.md3.7 KB
  • references/components/code-diff.md8.3 KB
  • references/components/containers.md6.9 KB
  • references/components/inputs.md9.9 KB
  • references/components/text-display.md6.9 KB
  • references/core/REFERENCE.md3.8 KB
  • references/core/api.md12.4 KB
  • references/core/configuration.md4.3 KB
  • references/core/gotchas.md7.2 KB
  • references/core/patterns.md8.5 KB
  • references/keyboard/REFERENCE.md9.6 KB
  • references/layout/REFERENCE.md5.9 KB
  • references/layout/patterns.md8.2 KB
  • references/react/REFERENCE.md4.2 KB
  • references/react/api.md8.6 KB
  • references/react/configuration.md5.5 KB
  • references/react/gotchas.md8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.