配置
狀態列配置
為 Claude Code 創建自定義狀態列以顯示上下文資訊
使用自定義狀態列讓 Claude Code 成為您專屬的工具,該狀態列顯示在 Claude Code 介面底部,類似於終端提示符(PS1)在 Oh-my-zsh 等 shell 中的工作方式。
創建自定義狀態列
您可以選擇:
-
執行
/statusline
讓 Claude Code 幫助您設置自定義狀態列。預設情況下,它會嘗試重現您終端的提示符,但您可以向 Claude Code 提供關於所需行為的額外指示,例如/statusline show the model name in orange
-
直接在您的
.claude/settings.json
中添加statusLine
命令:
工作原理
- 狀態列在對話訊息更新時更新
- 更新最多每 300 毫秒執行一次
- 您命令的 stdout 第一行成為狀態列文字
- 支援 ANSI 顏色代碼來設計您的狀態列樣式
- Claude Code 通過 stdin 以 JSON 格式向您的腳本傳遞關於當前會話的上下文資訊(模型、目錄等)
JSON 輸入結構
您的狀態列命令通過 stdin 接收 JSON 格式的結構化資料:
範例腳本
簡單狀態列
Git 感知狀態列
Python 範例
Node.js 範例
輔助函數方法
對於更複雜的 bash 腳本,您可以創建輔助函數:
提示
- 保持您的狀態列簡潔 - 它應該適合一行
- 使用表情符號(如果您的終端支援)和顏色使資訊易於掃描
- 在 Bash 中使用
jq
進行 JSON 解析(見上述範例) - 通過使用模擬 JSON 輸入手動執行來測試您的腳本:
echo '{"model":{"display_name":"Test"},"workspace":{"current_dir":"/test"}}' | ./statusline.sh
- 如果需要,考慮快取昂貴的操作(如 git status)
故障排除
- 如果您的狀態列沒有出現,檢查您的腳本是否可執行(
chmod +x
) - 確保您的腳本輸出到 stdout(而不是 stderr)