Use Haiku:Claude Code の Haiku 切り替えをプロンプト単位で
Claude Code のプロンプトの先頭に _ を付けると、そのターンだけ Haiku で実行されます。入力中・実行中・回答の下に表示されます。
権限
- プロンプトを読み取る入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
- UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
- 検証バージョン
- v2.1.303
- 最終検証日
- 必要バージョン
- Claude Code ≥ 2.1.287
- 表示先
- スピナー、トランスクリプト、ステータス
このModでできること
Use Haiku は、Claude Code の Haiku 切り替えをプロンプト単位で行えるコミュニティ Mod です。作者は Miguel Ángel Durán(midudev)で、better-claude コレクションの一部です。セッションのモデルを変えずに特定のプロンプトだけ Haiku に任せられます。プロンプトの先頭に _ を付けると、そのターンは claude-haiku-5-5 で実行されます。Claude には _ を除いたテキストが届き、そのターンのモデルリクエストはすべて、ターンが起動するサブエージェントも含めて Haiku に送られます。次のプロンプトはセッションのモデルに戻ります。
切り替えは 3 か所で確認できます。入力中は _ が入力欄で太字になり、その下に ⚡ this prompt runs on Haiku と表示されます。実行中はスピナーの単語に on Haiku が付きます。終了時は回答の下の行に API が報告したモデル名(例:⚡ Answered by claude-haiku-5-5)が表示され、別のモデルが答えた場合は警告になります。プロンプトにはあなたには見えないメモも付き、モデルに自分が Haiku だと伝えるため、「どのモデルですか?」と聞いても正しく答えます。小さなモデルで足りる簡単な質問や調べものに向いています。
対象はあなた自身のプロンプトだけです。手入力、スマートフォンからの送信、claude -p "_…"、スケジュールされた /loop、After のようにプラグインがあなたの代わりに送るものが含まれます。作者の README は Mod 対応の Claude Code(2.1.289 以降)を必要とします。
デモ
録画では、小さなデモプロジェクトで Mod を読み込んだ Claude Code を起動し、_what is the name of this project? answer in one short sentence と入力します。入力中は入力欄の下に ⚡ this prompt runs on Haiku が表示されます。Enter を押すとスピナーが Haiku… になります。ターンが終わると Claude はプロジェクト名が demo-app だと答え、回答の下に ⚡ Answered by claude-haiku-5-5 の行が出ます。デモのセッションはもともと Haiku なので、この動画でモデルは変わりません。見えるのは各場所での Mod のフィードバックです。
インストール
インストールブロックのいずれかの方法を使ってください。いずれも作者自身のマーケットプレイス better-claude から直接インストールします。Mod は次のセッション開始から有効になります。設定は不要で、プロンプトの前に _ を付けるだけです。
$ install use-haiku
Claude Code 2.1.287 以上が必要
作者のマーケットプレイスからインストール: midudev/better-claude
1.Claude Code 内で1行
/plugin install use-haiku --marketplace midudev/better-claude実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。
2.シェルから
claude plugin marketplace add midudev/better-claude claude plugin install use-haiku@better-claudeその後、すでに開いているセッションでは /reload-plugins を実行してください。
3.インストールせずに試す
git clone https://github.com/midudev/better-claude claude --plugin-dir ./better-claude/plugins/use-haikuその1セッションだけ Mod を読み込みます。設定には何も追加されません。
仕組み
Mod は 1 つの hooks モジュール hooks/register.tsx で構成されます。prompt.submit では、アイドル時に単一の _ で始まるプロンプトからマークが取り除かれ、モデル向けのメモが付き、次のターンを引き受けます。その後 turn.step がそのターンの各リクエストのモデルを書き換えます。
// Every request of a Haiku turn goes to Haiku: the main loop's and those of the subagents it started.
on('turn.step', async function* ($, e, next) {
const isHaiku = e.agentId === undefined
? e.turnId === (await read($, haikuTurn))
: (await read($, haikuAgents)).includes(e.agentId)
return yield* next(isHaiku ? { ...e, model: HAIKU } : e)
})Haiku のターン ID とそのサブエージェントの ID は $.state に保存されるため、ターンの途中でリロードしても保持されます。agent.spawn は Haiku のターンのサブエージェントを Haiku で起動し、その ID を記憶します。turn.complete は Haiku のターンを終了し、回答の下の行を追加します。これは対話型セッションだけなので、claude -p の出力はそのままです。2 つの ui.render フックがスピナーの接尾辞とプロンプト下のヒントを描画します。
カスタマイズ
オプションはありません。モデル名(HAIKU)、マーク(MARK)、強調色は register.tsx の先頭にある定数です。変更するには自分のコピーを編集し、claude --plugin-dir で読み込んでください。
権限と安全性
実行前に、プラグインが実行しうるすべてのファイルを読みました。hooks/hooks.json、hooks/register.tsx、型宣言、マニフェスト、テストに加え、リポジトリの package.json、marketplace.json、LICENSE です。インストールスクリプト、依存関係、バンドルされたコード、バイナリはなく、隠し Unicode 文字も見つかりませんでした。
ゲートフック:prompt.submit と agent.spawn は、送信される内容とサブエージェントのモデルを書き換えます。これは README の説明どおりで、_ を取り除き、プロンプトのコンテキストにメモを追加し、Haiku ターンのモデルを設定します。メモの内容は “The person sent this prompt to Haiku: you are claude-haiku-5-5 while you answer it” です。validate はこの 2 つのフックに .catch がないと指摘します。UI の変更は、プロンプト下のヒント、スピナーのラベル、太字の _、回答の下の行です。ターンの途中で _ 付きのプロンプトを送るとトーストが表示されます。
Mod が使うのは $.state と $.ui だけです。ネットワーク、プロセス実行、ファイル書き込み、環境変数の読み取り、デーモンはなく、テレメトリもありません。claude plugin validate はエラーも警告も報告せず、作者の 10 件のテストは Claude Code 2.1.303 で通過しました。ライセンスは MIT(LICENSE ファイルあり)です。
- プロンプトを読み取る
- 入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
- UI を変更
- Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
互換性とトラブルシューティング
macOS 上の Claude Code 2.1.303 で確認しました(validate、テスト、録画)。プロンプトが Haiku で動かない場合:
- 最初の文字が単一の
_で、その後にテキストがある。 - Claude がアイドル状態である。ターン中に送ったプロンプトは、ヒントが示すとおり現在のモデルのままです。
- プロンプトがあなた自身のもので、チャンネル、他のセッション、バックグラウンドタスクからのものではない。
- プラグインを読み込んでおり(
/pluginに表示されます)、インストール後に新しいセッションを開始した。 - 回答の下の行が別のモデルが答えたと警告する場合、API がリクエストを受け入れていません。警告にモデル名が出ます。
よくある質問
- この Mod はセッションのモデルを変更しますか?
- いいえ。_ で始まるターンだけが claude-haiku-5-5 に送られます。次のプロンプトはセッション本来のモデルに戻り、設定は何も変更されません。
- Claude が作業中に _ 付きのプロンプトを入力するとどうなりますか?
- テキストは実行中のターンに取り込まれるか、その後ろにキューされるため、現在のモデルのままです。送信前にプロンプト下の行が警告し、送信後にはトーストで知らせます。
- サブエージェントも Haiku で動きますか?
- はい。Haiku のターンが起動したサブエージェントは Haiku で生成され、そのターンが終わった後も Haiku のままです。フォークとワークフローのエージェントはリクエストごとに処理され、チームメイトは自分のモデルを保ちます。
- Asked for Haiku, but … answered という警告が出るのはなぜですか?
- 対話型の Haiku ターンの終了後、Mod は API が返した使用量からモデル名を読み取ります。名前に haiku が含まれていなければ、通常の Answered by の行の代わりにその名前付きの警告を表示します。
- __init__.py のようなファイル名は書けますか?
- はい。先頭の二重アンダースコアはマークではなく、単独の _ もマークではありません。__init__.py fails to import のようなプロンプトはそのまま送信されます。
# 関連する Mod
おすすめAfter
Claude Code 用のプロンプトキュー。/after は現在のターンが終わってから次のタスクを実行し、作業の邪魔をしません。
- プロンプト上部
- ペイン
- トースト
- ステータス
- モデルを呼び出す(利用枠を消費)
- プロンプトを読み取る
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.303 で検証済み
おすすめContext Bar
Claude Code のコンテキストウィンドウを、カテゴリごとに色分けした 1 本の積み上げバーとしてプロンプトの上に表示します。トークン数付き。
- プロンプト上部
- UI を変更
- コマンド・ツールを追加
- データを保存
v2.1.291 で検証済み
同じカテゴリの Mod: タイマー、ToDo、スタンドアップ、コンテキスト、利用枠、コスト。