Skip to content

Instantly share code, notes, and snippets.

@BUNotesAI
Created December 21, 2025 09:32
Show Gist options
  • Select an option

  • Save BUNotesAI/253be2ef6b50865b19b23f7fbb8f46f1 to your computer and use it in GitHub Desktop.

Select an option

Save BUNotesAI/253be2ef6b50865b19b23f7fbb8f46f1 to your computer and use it in GitHub Desktop.

自定义脚本,实现 Claude Code 状态栏显示当前工作目录

在日常使用中,我经常需要在多个项目之间切换,有时候会忘记当前在哪个目录工作。今天分享一个小技巧:通过自定义脚本让状态栏显示当前工作目录。

效果预览

配置完成后,状态栏会显示类似这样的内容:

[Opus 4.5] my-project

这样一眼就能看到当前使用的模型和所在的项目目录。

实现步骤

1. 创建状态栏脚本

~/.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

2. 配置 settings.json

编辑 ~/.claude/settings.json,添加 statusLine 配置:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

如果你已有其他配置,只需添加 statusLine 部分即可。

3. 重启 Claude Code

重新启动 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 实践整理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment