設定
ステータスライン設定
Claude Codeでコンテキスト情報を表示するカスタムステータスラインを作成する
Claude Codeインターフェースの下部に表示されるカスタムステータスラインでClaude Codeを自分好みにカスタマイズしましょう。これはOh-my-zshなどのシェルでターミナルプロンプト(PS1)が動作する方法と似ています。
カスタムステータスラインの作成
以下のいずれかの方法を使用できます:
-
/statusline
を実行してClaude Codeにカスタムステータスラインの設定を手伝ってもらう。デフォルトでは、ターミナルのプロンプトを再現しようとしますが、/statusline モデル名をオレンジ色で表示
のように、Claude Codeに求める動作について追加の指示を提供できます -
.claude/settings.json
に直接statusLine
コマンドを追加する:
動作原理
- ステータスラインは会話メッセージが更新されるときに更新されます
- 更新は最大300msごとに実行されます
- コマンドのstdoutの最初の行がステータスラインテキストになります
- ANSIカラーコードがステータスラインのスタイリングでサポートされています
- Claude Codeは現在のセッション(モデル、ディレクトリなど)に関するコンテキスト情報をJSONとしてstdin経由でスクリプトに渡します
JSON入力構造
ステータスラインコマンドは、stdin経由でJSON形式の構造化データを受け取ります:
サンプルスクリプト
シンプルなステータスライン
Git対応ステータスライン
Pythonの例
Node.jsの例
ヘルパー関数アプローチ
より複雑なbashスクリプトの場合、ヘルパー関数を作成できます:
ヒント
- ステータスラインは簡潔に保つ - 1行に収まるようにする
- (ターミナルがサポートしている場合)絵文字と色を使用して情報をスキャンしやすくする
- BashでのJSON解析には
jq
を使用する(上記の例を参照) - モックJSON入力でスクリプトを手動実行してテストする:
echo '{"model":{"display_name":"Test"},"workspace":{"current_dir":"/test"}}' | ./statusline.sh
- 必要に応じて(git statusなどの)重い処理のキャッシュを検討する
トラブルシューティング
- ステータスラインが表示されない場合は、スクリプトが実行可能かチェックする(
chmod +x
) - スクリプトがstdout(stderrではなく)に出力することを確認する