opentui
ターミナルユーザーインターフェース構築のための包括的なOpenTUIスキルです。コアとなる命令型API、Reactリコンシーラー、Solidリコンシーラーをカバーしています。コンポーネント、レイアウト、キーボード操作、アニメーション、テストなど、あらゆるTUI開発タスクに活用できます。
description の原文を見る
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.
SKILL.md 本文
OpenTUIプラットフォームスキル
OpenTUIを使用してターミナルユーザーインターフェースを構築するための統合スキルです。下記のデシジョンツリーを使用して適切なフレームワークとコンポーネントを見つけ、詳細なリファレンスを読み込んでください。
重要なルール
すべてのOpenTUIコードで以下のルールに従ってください:
- 新規プロジェクトは
create-tuiを使用してください。 フレームワークのREFERENCE.mdクイックスタートを参照してください。 create-tuiのオプションは引数の前に来る必要があります。bunx create-tui -t react my-appは動作しますが、bunx create-tui my-app -t reactは動作しません。process.exit()を直接呼び出さないでください。renderer.destroy()を使用してください(core/gotchas.mdを参照)。- テキストスタイリングはReact/Solidではネストされたタグが必要です。 プロップではなく修飾子要素を使用してください(
components/text-display.mdを参照)。
このスキルの使い方
リファレンスファイル構造
フレームワークリファレンスは5ファイルパターンに従います。横断的な概念は単一ファイルガイドです。
./references/<framework>/ 内の各フレームワークには以下が含まれます:
| ファイル | 目的 | 読むタイミング |
|---|---|---|
REFERENCE.md | 概要、使用時期、クイックスタート | 最初に必ず読んでください |
api.md | ランタイムAPI、コンポーネント、フック | コード作成時 |
configuration.md | セットアップ、tsconfig、バンドリング | プロジェクト設定時 |
patterns.md | 共通パターン、ベストプラクティス | 実装ガイダンス時 |
gotchas.md | 落とし穴、制限事項、デバッグ | トラブルシューティング時 |
./references/<concept>/ 内の横断的な概念は REFERENCE.md をエントリーポイントとしています。
読む順序
- 選択したフレームワークの
REFERENCE.mdから始めてください - その後、タスクに関連する追加ファイルを読んでください:
- コンポーネント構築 ->
api.md+components/<category>.md - プロジェクトセットアップ ->
configuration.md - レイアウト/ポジショニング ->
layout/REFERENCE.md - キーボード/入力処理 ->
keyboard/REFERENCE.md - アニメーション ->
animation/REFERENCE.md - トラブルシューティング ->
gotchas.md+testing/REFERENCE.md
- コンポーネント構築 ->
例となるパス
./references/react/REFERENCE.md # Reactの場合はここから開始
./references/react/api.md # Reactコンポーネントとフック
./references/solid/configuration.md # Solidプロジェクトセットアップ
./references/components/inputs.md # 入力、テキストエリア、セレクトドキュメント
./references/core/gotchas.md # コアデバッグのコツ
ランタイムノート
OpenTUIはBunで動作し、ネイティブビルドにはZigを使用します。ランタイム要件とビルドガイダンスについては ./references/core/gotchas.md を読んでください。
クイックデシジョンツリー
「どのフレームワークを使用すべきか?」
フレームワーク選択?
├─ 完全な制御、最高のパフォーマンス、フレームワークのオーバーヘッドなし
│ └─ core/ (命令型API)
├─ Reactを知っており、馴染みのあるコンポーネントパターンが欲しい
│ └─ react/ (Reactリコンサイラー)
├─ 細粒度のリアクティビティ、最適な再レンダリングが欲しい
│ └─ solid/ (Solidリコンサイラー)
└─ OpenTUIの上にライブラリ/フレームワークを構築している
└─ core/ (命令型API)
「コンテンツを表示する必要がある」
コンテンツ表示?
├─ プレーンまたはスタイル付きテキスト -> components/text-display.md
├─ ボーダー/背景付きコンテナ -> components/containers.md
├─ スクロール可能なコンテンツ領域 -> components/containers.md (scrollbox)
├─ ASCIIアートバナー/タイトル -> components/text-display.md (ascii-font)
├─ シンタックスハイライト付きコード -> components/code-diff.md
├─ Diffビューアー (統合/分割) -> components/code-diff.md
├─ 診断情報付き行番号 -> components/code-diff.md
└─ Markdownコンテンツ (ストリーミング) -> components/code-diff.md (markdown)
「ユーザー入力が必要である」
ユーザー入力?
├─ 単一行テキストフィールド -> components/inputs.md (input)
├─ 複数行テキストエディター -> components/inputs.md (textarea)
├─ リストから選択 (縦) -> components/inputs.md (select)
├─ タブベースの選択 (横) -> components/inputs.md (tab-select)
└─ カスタムキーボードショートカット -> keyboard/REFERENCE.md
「レイアウト/ポジショニングが必要である」
レイアウト?
├─ Flexboxスタイルレイアウト (行、列、折り返し) -> layout/REFERENCE.md
├─ 絶対ポジショニング -> layout/patterns.md
├─ ターミナルサイズへのレスポンシブ対応 -> layout/patterns.md
├─ コンテンツのセンタリング -> layout/patterns.md
└─ 複雑なネストされたレイアウト -> layout/patterns.md
「アニメーションが必要である」
アニメーション?
├─ タイムラインベースのアニメーション -> animation/REFERENCE.md
├─ イージング関数 -> animation/REFERENCE.md
├─ プロパティトランジション -> animation/REFERENCE.md
└─ ループアニメーション -> animation/REFERENCE.md
「入力を処理する必要がある」
入力処理?
├─ キーボードイベント (キープレス、リリース) -> keyboard/REFERENCE.md
├─ フォーカス管理 -> keyboard/REFERENCE.md
├─ ペーストイベント -> keyboard/REFERENCE.md
├─ マウスイベント -> components/containers.md
└─ テキスト選択 -> components/text-display.md
「TUIをテストする必要がある」
テスト?
├─ スナップショットテスト -> testing/REFERENCE.md
├─ インタラクションテスト -> testing/REFERENCE.md
├─ テストレンダラーセットアップ -> testing/REFERENCE.md
└─ テストのデバッグ -> testing/REFERENCE.md
「デバッグ/トラブルシューティングが必要である」
トラブルシューティング?
├─ ランタイムエラー、クラッシュ -> <framework>/gotchas.md
├─ レイアウト問題 -> layout/REFERENCE.md + layout/patterns.md
├─ 入力/フォーカス問題 -> keyboard/REFERENCE.md
└─ 再現 + リグレッションテスト -> testing/REFERENCE.md
トラブルシューティングインデックス
- ターミナルクリーンアップ、クラッシュ ->
core/gotchas.md - テキストスタイリングが反映されない ->
components/text-display.md - 入力フォーカス/ショートカット ->
keyboard/REFERENCE.md - レイアウトのずれ ->
layout/REFERENCE.md - 不安定なスナップショット ->
testing/REFERENCE.md
コンポーネント命名の違いとテキスト修飾子については、components/REFERENCE.md を参照してください。
プロダクトインデックス
フレームワーク
| フレームワーク | エントリーファイル | 説明 |
|---|---|---|
| Core | ./references/core/REFERENCE.md | 命令型API、すべてのプリミティブ |
| React | ./references/react/REFERENCE.md | 宣言型TUI用Reactリコンサイラー |
| Solid | ./references/solid/REFERENCE.md | 宣言型TUI用SolidJSリコンサイラー |
横断的な概念
| 概念 | エントリーファイル | 説明 |
|---|---|---|
| Layout | ./references/layout/REFERENCE.md | Yoga/Flexboxレイアウトシステム |
| Components | ./references/components/REFERENCE.md | カテゴリ別コンポーネントリファレンス |
| Keyboard | ./references/keyboard/REFERENCE.md | キーボード入力処理 |
| Animation | ./references/animation/REFERENCE.md | タイムラインベースのアニメーション |
| Testing | ./references/testing/REFERENCE.md | テストレンダラーとスナップショット |
コンポーネントカテゴリ
| カテゴリ | エントリーファイル | コンポーネント |
|---|---|---|
| テキスト・表示 | ./references/components/text-display.md | text、ascii-font、スタイル付きテキスト |
| コンテナ | ./references/components/containers.md | box、scrollbox、ボーダー |
| 入力 | ./references/components/inputs.md | input、textarea、select、tab-select |
| コード・Diff | ./references/components/code-diff.md | code、line-number、diff、markdown |
リソース
リポジトリ: https://github.com/anomalyco/opentui コアドキュメント: https://github.com/anomalyco/opentui/tree/main/packages/core/docs 例: https://github.com/anomalyco/opentui/tree/main/packages/core/src/examples オーサムリスト: https://github.com/msmps/awesome-opentui
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- LeonardoTrapani
- ライセンス
- MIT
- 最終更新
- 2026/3/12
Source: https://github.com/LeonardoTrapani/better-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。