opentui-design
OpenTUI Design Skill
Description
Comprehensive toolkit for designing and implementing CLI applications with OpenTUI and SolidJS.
When to Use
- Building new CLI screens or components with OpenTUI
- Debugging input handling issues
- Implementing screen navigation
- Handling mouse events and limitations
- Optimizing CLI performance
Key References
input-handling.md- Key input patterns and propagation preventionmouse-handling.md- Mouse events and Selection API limitationsopentui-gotchas.md- Common issues and workaroundscomponent-patterns.md- Component structure and compositionmulti-screen-navigation.md- Screen transition patternsstate-management.md- SolidJS state patternshooks-guide.md- OpenTUI hooks referenceperformance-optimization.md- Performance best practicesresponsive-layout.md- Terminal layout patternstesting-patterns.md- Testing CLI components
Critical Knowledge
Key Propagation Prevention
When navigating between screens with Enter key, the same keypress can propagate to the new screen. Always use:
key.preventDefault()at the source- Initial frame delay at the destination
focusedprop control on interactive elements
SolidJS Reactivity
Never destructure props - always access via props.xxx to maintain reactivity.
Mouse Limitations
OpenTUI's Selection API (useSelectionHandler) does not reliably work. Set useMouse: false to allow OS-level copy, but this disables wheel scroll.
More from akiojin/skills
inkjs-design
|
31drawio
Create and edit draw.io diagrams in XML format. Use when the user wants to create flowcharts, architecture diagrams, sequence diagrams, or any visual diagrams. Handles XML structure, styling, fonts (Noto Sans JP), arrows, connectors, and PNG export.
22skills-repo-maintenance
Add or update skills in a skills repository for Codex and/or Claude Code. Use when creating new skills, packaging .skill files for Codex, or converting a skill into a Claude Code plugin (marketplace.json + plugin.json).
16gh-pr
Create or update GitHub Pull Requests with the gh CLI, including deciding whether to create a new PR or only push based on existing PR merge status. Use when the user asks to open/create/edit a PR, generate a PR body/template, or says 'PRを出して/PR作成/gh pr'. Defaults: base=develop, head=current branch (same-branch only; never create/switch branches).
12speckit-require
GitHub Spec Kit (https://github.com/github/spec-kit) を使って要件定義や仕様作成(仕様策定・仕様書作成・仕様設計を含む)を新規作成または既存仕様へ追記し、spec.md/plan.md/tasks.mdまで生成・更新する。要件定義、要件追加/変更、TDD前提の要件整理、仕様の明文化、Spec Kitのspecify/clarify/plan/tasksフロー実行が求められるときに使用。
12speckit-update
GitHub Spec Kit (https://github.com/github/spec-kit) のベースバージョン更新やテンプレート/スクリプト同期を行うための手順。Spec Kitの更新、上流リリースとの差分適用、templates/commands/scriptsの取り込み、ローカル運用(日本語化・ブランチ非操作・SPEC-[UUID8桁])の維持が必要なときに使用する。
11