📑 Claude Code Windows 状态栏常驻配置指南

📑 Claude Code Windows 状态栏常驻配置指南

本指南用于在 Windows 环境下为 Claude Code 配置稳定、常驻的自定义底部状态栏(Statusline)。通过 Node.js 脚本 替代传统的 Bash 脚本,彻底解决 Windows 环境下的路径转义、特殊字符冲突以及状态栏不常驻、静默失效的问题。


🛠️ 前置条件验证

在开始配置前,请确保系统已安装 Node.js(由于 Claude Code 本身基于 Node 运行,你的电脑通常已内置)。 打开 Windows 终端(PowerShell 或 CMD),运行以下命令验证:

node -v

如果能正确输出版本号(如 v20.x.x),即可继续下一步。


📥 详细配置步骤

第一步:创建核心 Node.js 脚本文件

  1. 在 Windows 用户目录下创建一个名为 .claude 的文件夹(如果不存在)。
  2. 在该文件夹下新建一个名为 statusline.js 的文件。
  3. 将以下完整的 JavaScript 代码复制并保存到 statusline.js 中:
const fs = require('fs');

// 1. 从 stdin 读取 Claude Code 传入的实时状态 JSON 数据
const input = fs.readFileSync(0, 'utf-8');

try {
  const data = JSON.parse(input);

  // 2. 解析 AI 模型名称
  const model = data.model?.display_name || 'Claude';

  // 3. 解析当前工作目录并提取文件夹名字
  const currentDir = data.workspace?.current_dir || '';
  const dirDisp = currentDir ? currentDir.split(/[\\/]/).pop() : '';

  // 4. 解析 Git 仓库信息 (Owner/Repo)
  let repoStr = '';
  if (data.workspace?.repo) {
    const owner = data.workspace.repo.owner;
    const name = data.workspace.repo.name;
    if (owner && name) repoStr = `${owner}/${name}`;
  }

  // 5. 解析 GitHub/GitLab Pull Request 信息
  let prStr = '';
  if (data.pr?.number) {
    const prNum = data.pr.number;
    const prState = data.pr.review_state || 'open';
    prStr = `PR#${prNum}(${prState})`;
  }

  // 6. 解析 Context Window 上下文剩余容量比例
  let ctxStr = '';
  if (data.context_window?.remaining_percentage !== undefined) {
    ctxStr = `ctx:${data.context_window.remaining_percentage}%`;
  }

  // 7. 动态组合最终展示的字符串结构
  let output = `${model} | ${dirDisp}`;
  if (repoStr) output += ` | ${repoStr}`;
  if (prStr) output += ` | ${prStr}`;
  if (ctxStr) output += ` | ${ctxStr}`;

  // 8. 将结果输出给 Claude Code 进行终端渲染
  process.stdout.write(output);

} catch (e) {
  // 保底机制:解析失败时输出基础提示,防止状态栏彻底崩溃崩溃
  process.stdout.write('Claude Code Running...');
}

📂 最终脚本完整绝对路径: C:/Users/你的用户名/.claude/statusline.js


第二步:修改全局配置文件 settings.json

  1. 打开全局配置文件,路径为:C:\Users\你的用户名\.claude\settings.json
  2. statusLine 字段修改为以下标准格式:
{
  "statusLine": {
    "type": "command",
    "command": "node C:/Users/你的用户名/.claude/statusline.js"
  }
}

⚠️ Windows 环境核心避坑红线:

  • 必须将 你的用户名 替换为你电脑实际的 Windows 系统账户名。
  • 路径中绝对不能使用反斜杠 \\,必须严格使用正斜杠 /。否则 Claude Code 会因为转义解析失败导致状态栏无法显示。
  • 不要在配置中添加非官方的隐藏字段(例如 "enabled": true),否则整个状态栏配置会被静默忽略。

第三步:彻底重启与触发激活

  1. 彻底关闭 当前所有的命令行窗口(PowerShell、CMD 或 VS Code 内置终端)。
  2. 在你的项目根目录下重新打开终端,输入 claude 进入对话会话。
  3. 关键激活动作:如果刚进去底部依然是空白,请在对话框中随便输入并发送一条消息(例如 “你好”)。触发第一次 API 交互后,系统会强制刷新终端 TUI 边距,你的状态栏就会完美、常驻地显示在屏幕最下方了!

🔍 故障排查与独立脱机测试

如果日后遇到状态栏由于更新或其他原因不显示,可以在普通的 Windows PowerShell 中执行以下命令,脱离 Claude 独立测试脚本的健康度:

echo '{}' | node "C:/Users/你的用户名/.claude/statusline.js"
  • 正常状态:终端会无报错并输出 Claude | 类似的内容。说明 Node 脚本运行完美,问题出在 Claude 全局配置或本地项目配置覆盖。
  • 异常状态:如果抛出 JS 语法报错,请根据报错行数检查 statusline.js 代码是否复制完整。
  • 项目本地覆盖排查:检查当前运行 claude 的项目根目录下是否存在 .claude\settings.json 文件夹。如果存在,它会覆盖你刚才配置的全局设置。请直接删除项目本地的 .claude 目录即可恢复。

其他方式

使用开源工具:https://github.com/huangguang1999/ccstatusline-zh

评论