配置
狀態列配置
為 Claude Code 創建自定義狀態列以顯示上下文信息
使用自定義狀態列讓 Claude Code 成為您專屬的工具,該狀態列顯示在 Claude Code 介面底部,類似於 Oh-my-zsh 等 shell 中終端提示符(PS1)的工作方式。
創建自定義狀態列
您可以選擇:
-
運行
/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)