サンプルを試す
このページのサンプルはスニペットであり、mod 全体ではありません。それぞれが 1 つの要素と、その中に入れ子になったもののコードです。 サンプルを自分のターミナルで確認するには、以下の手順で小さな mod を作成し、そこにサンプルを貼り付けます。この mod は/gallery コマンドを追加し、このコマンドがペインを開いてそこにサンプルを描画します。ペイン は、幅の広いフルスクリーンのターミナルではトランスクリプトの横に表示されるサイドバーで、それ以外ではプロンプトの上に表示される枠付きの領域です。
1
mod を作成する
gallery という名前のディレクトリを作成し、その中に .claude-plugin ディレクトリと hooks ディレクトリを作成します。各ファイルについては mod を作成する で説明しています。マニフェストを gallery/.claude-plugin/plugin.json として保存します。gallery/.claude-plugin/plugin.json
gallery/hooks/hooks.json でエントリポイントを指定します。gallery/hooks/hooks.json
gallery/hooks/register.js として保存します。これはペインを開く /gallery コマンドを追加し、そのペインに Plain text を描画します。gallery/hooks/register.js
2
mod を実行する
シェルで、Claude Code のプロンプトで
gallery を含むディレクトリから Claude Code を起動します。/gallery を実行します。Plain text が表示されたペインが開きます。3
サンプルを差し替える
このページからサンプルをコピーします。
register.js で、return の後に続くように Text({ children: ['Plain text'] }) をサンプルで置き換え、ファイルを保存します。Claude Code は保存のたびにモジュールを再読み込みするため、もう一度 /gallery を実行すると新しいサンプルが表示されます。要素を選ぶ
サンプルは画面に表示したい内容ごとにまとめられています。- テキストを表示する:
Text、Markdown、Link - コードと変更を表示する:
Code - 要素を配置する:
Box - 入力を受け付ける:
Button、Input、Select - 画像を描画する:
Raster、Svg、Image、Client
テキストを表示する
画面に文字を表示する要素は 3 つあります。独自のスタイルを付けるText、すでに整形済みのコンテンツ向けの Markdown、URL 向けの Link です。
Text
Text は、指定したスタイルで文字列を描画します。このサンプルでは、スタイルごとに 1 行ずつ表示します。


dimColor はテキストをグレーで描画します。backgroundColor はテキストの幅の分だけ塗りつぶします。
Markdown
Markdown は、Claude の返答と同じようにテキストを整形します。内容は children ではなく text で渡します。


# 記号なしで太字で描画されます。インラインコードはバッククォートなしで色付きで描画されます。引用は左側にバーが付いた斜体で描画されます。
Link
Link は、ラベルとそれに続く URL を描画します。


コードと変更を表示する
Code は、Claude Code 独自のシンタックスカラーでソーステキストを描画するか、差分を描画します。
Code
language を指定するか、Claude Code に言語を推測させるために path を渡します。startLine を指定すると、その番号から行番号が付きます。


差分としての Code
format: 'diff' を指定すると、source は 1 つ以上の unified diff のハンクになります。


@@ の行の代わりに行番号を描画します。削除された行と追加された行が似ている場合、変更された語はより濃く網掛けされます。
要素を配置する
Box
Box は中の要素を行または列に配置し、枠線を描画することもできます。このサンプルでは、単語の行を枠線付きのボックスの上に置いています。


入力を受け付ける
Button、Input、Select はコントロールです。ユーザーは Tab でこれらの間を移動し、フォーカスのあるものを操作します。どのキーが届くかについては キーボードフォーカスとホットキー を参照してください。
focus: true でペインを開くと、ペインにキーボードフォーカスが与えられます。入力した文字はフォーカスを持つ Input に届くため、ペインが開いた時点で入力を受け付けるべきフィールドには autoFocus: true を追加してください。
Button
ボタンは onPress を実行します。このサンプルでは、デフォルトの形式、ホットキー付きの plain ボタン、淡色のボタンを示します。




Input
Input は 1 行のテキストフィールドで、ユーザーが Enter を押すと onSubmit を実行します。


⏎ の後に submitLabel が表示されます。




Select
Select では、ユーザーが複数の選択肢から 1 つを選べます。選択された選択肢の value を引数に onSelect を実行します。






画像を描画する
Raster
Raster は色付きの文字セルのグリッドで、ヒートマップ、スパークライン、ゲーム盤などに使います。描画はターミナルが行います。このサンプルでは、スターターモジュールの cellsOf 関数を使用しています。この関数は、セルを Raster が受け取る文字列にパックします。詳しくは 色付きセルのグリッドを描画する で説明しています。


Raster は各色をより小さなパレットに丸めるため、0x2e7d32 は #337733 として描画されます。
Svg
Svg は Desktop アプリで SVG ドキュメントを描画します。
Svg だけを返すペインは空のまま開きます。そこに別のものを描画するには、e.surface を確認して別のツリーを返してください。
Image と Client
さらに 2 つの要素については、ここにサンプルがありません。Image はターミナルで PNG または生のピクセルを描画します。Client は、アニメーションやポインター入力のために、ユーザーが用意した別のファイルが描画する領域です。これらのプロパティは 要素リファレンス に記載されています。
mod が描画できる場所を確認する
サンプルはすべてペインに描画しています。mod は他の場所にも描画でき、Claude Code を呼び出して代わりに何かを表示させることもできます。- ペインとバンド:描画する場所を選ぶ
- スピナーなど Claude Code 自身の行:Claude Code がすでに描画しているものを変更する
- トースト、ステータスライン、ログ行:ターンを開始せずに何かを表示する
- 質問ダイアログ:ユーザーが決定するまでツール呼び出しを保留する
次のステップ
- インターフェースに描画する:タブ付きのペインを段階的に作成する
- 描画をテストする:テストからボタンを押す
- 要素リファレンス:各要素の主なプロパティと、それを描画するアプリ