在日常使用中,我经常需要在多个项目之间切换,有时候会忘记当前在哪个目录工作。今天分享一个小技巧:通过自定义脚本让状态栏显示当前工作目录。
配置完成后,状态栏会显示类似这样的内容:
[Opus 4.5] my-project
这样一眼就能看到当前使用的模型和所在的项目目录。
在 ~/.claude/ 目录下创建 statusline.sh 文件:
#!/bin/bash
# Claude Code status line script - shows current working directory
input=$(cat)
# Extract current working directory and model info
CURRENT_DIR=$(echo "$input" | jq -r '.workspace.current_dir // empty')
MODEL=$(echo "$input" | jq -r '.model.display_name // empty')
# Show model and directory name
if [[ -n "$CURRENT_DIR" ]]; then
DIR_NAME=$(basename "$CURRENT_DIR")
echo "[$MODEL] $DIR_NAME"
else
echo "[$MODEL]"
fi别忘了添加执行权限:
chmod +x ~/.claude/statusline.sh编辑 ~/.claude/settings.json,添加 statusLine 配置:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}如果你已有其他配置,只需添加 statusLine 部分即可。
重新启动 cc,你就能在状态栏看到当前工作目录了。
Claude Code 的状态栏支持自定义命令。当 type 设置为 "command" 时,cc 会定期执行指定的脚本,并将脚本的输出显示在状态栏。
脚本会通过 stdin 接收一个 JSON 对象,包含当前会话的上下文信息,例如:
{
"workspace": {
"current_dir": "xx/projects/my-app"
},
"model": {
"display_name": "Opus 4.5"
}
}我们用 jq 解析这个 JSON,提取需要的字段,然后格式化输出即可。
这个脚本可以根据你的需求进一步扩展,比如:
- 显示 Git 分支名称
- 显示当前时间
- 显示 token 使用量
- 根据不同模型显示不同颜色(如果终端支持)
状态栏虽小,但能显著提升使用体验。希望这个小技巧对你有帮助!
本文基于 Claude Code 实践整理