免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

清晰高效!自定义Claude Code状态栏

发布日期:2025-11-29 19:36:23 浏览次数: 1513
作者:字节笔记本

微信搜一搜,关注“字节笔记本”

推荐语

一键掌握Claude Code运行状态,自定义状态栏让开发效率翻倍!

核心内容:
1. 自定义状态栏的直观价值与多场景应用优势
2. Claude Code提供的完整状态数据结构解析
3. 两种实现方式:快捷指令配置与脚本文件修改

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

我们可以为Claude Code 创建自定义状态行以显示上下文信息,如图所示:

43e6c531-cda0-47a6-b902-68ea6966aadf.png

这里就显示了项目名,Claude Code 目前使用的模型,还有已经使用的Token数量。

通过自定义状态行,可以让一些有用的上下文信息直接显示输入框的下方,最大的好处就是非常直观的展示运行情况。

尤其是在多窗口多项目情况下,Claude  Code运行状态一键便知,类似于Token消耗也可以快速提醒我们是否达到了压缩的阈值,方便提前进行代码的收尾工作,以免触发不必要的压缩。

那么还可以显示哪些信息呢?

Claude Code本身提供发如下的输出结构

{
  "hook_event_name": "Status",
  "session_id": "abc123...",
  "transcript_path": "/path/to/transcript.json",
  "cwd": "/current/working/directory",
  "model": {
    "id": "claude-opus-4-1",
    "display_name": "Opus"
  },
  "workspace": {
    "current_dir": "/current/working/directory",
    "project_dir": "/original/project/directory"
  },
  "version": "1.0.80",
  "output_style": {
    "name": "default"
  },
  "cost": {
    "total_cost_usd": 0.01234,
    "total_duration_ms": 45000,
    "total_api_duration_ms": 2300,
    "total_lines_added": 156,
    "total_lines_removed": 23
  }
}

要自定义自己个性化状态栏,最简单的方法是使用Claude Code内置的/statusline命令,我们只需要在这个命令后面加上需要配置和显示的内容就可以,非常的简单。

38423fd1-a345-4e67-a016-c3517c518217.png

比如下面就是将模型颜色改成橙色,Claude Code会调用这个指令来配置文件。

/statusline show the model name in orange

除了指令,还可以修改自定义配置文件,具体来说就是在这个配置文件修改.claude/settings.json 中添加脚本文件 ,对应到statusLine 命令字段。

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 0 // Optional: set to 0 to let status line go to edge
  }
}

我的statusline.sh脚本如下,他就充分解析了Claude Code的内置参数,可以拿去直接抄作业。


#!/bin/bash
# Claude Code 状态行 - 包含目录、git 分支、模型和 token 统计

input=$(cat)

# 提取数据
cwd=$(echo "$input" | jq -r '.workspace.current_dir // .cwd')
cwd_name=$(basename "$cwd")
model=$(echo "$input" | jq -r '.model.display_name // "Claude"')
transcript=$(echo "$input" | jq -r '.transcript_path')

# 获取 git 分支(跳过可选锁)
git_branch=""
if [ -d "$cwd/.git" ]; then
    git_branch=$(cd "$cwd" && git --no-optional-locks branch --show-current 2>/dev/null)
    if [ -n "$git_branch" ]; then
        git_branch=" on ${git_branch}"
    fi
fi

# 统计 token 数量(从 transcript 文件)
token_info=""
if [ -f "$transcript" ]; then
    # 提取所有 input_tokens 和 output_tokens
    input_tokens=$(grep -o '"input_tokens":[0-9]*' "$transcript" | cut -d: -f2 | awk '{s+=$1} END {print s}')
    output_tokens=$(grep -o '"output_tokens":[0-9]*' "$transcript" | cut -d: -f2 | awk '{s+=$1} END {print s}')

    # 如果成功获取到 token 数据
    if [ -n "$input_tokens" ] && [ -n "$output_tokens" ]; then
        total_tokens=$((input_tokens + output_tokens))
        # 格式化为 K(千)
        if [ $total_tokens -gt 1000 ]; then
            total_k=$((total_tokens / 1000))
            token_info=" | ${total_k}K tokens"
        else
            token_info=" | ${total_tokens} tokens"
        fi
    fi
fi

# 颜色定义
CYAN='\033[36m'
GREEN='\033[32m'
YELLOW='\033[33m'
MAgentA='\033[35m'
RESET='\033[0m'

# 输出格式:目录 [分支] | 模型 | token 统计
printf "${CYAN}%s${YELLOW}%s${RESET} ${GREEN}❯${RESET} ${MAGENTA}%s${RESET}%s\n" "$cwd_name" "$git_branch" "$model" "$token_info"

最后的显示效果:

f252b5cf-8a47-4aed-a528-ca11b98e041b.png

不过要注意的是,修改完成配置后需要重新启动Claude Code,需要发送一条信息来激活状态,同时脚本也需要有完整的可执行权限才行。

通义Z-Image有点东西啊!消费级显卡可跑的SOTA级生图模型

黑五4折史低!每天无痛刷出 1500 词汇量,Ries 手机版上线!

黑五上车的GLM-4.6 Claude Code 套餐联网搜索、读图、读视频怎么用?

Anthropic 再发神作!长效运行 Agent 如何不断片?

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询