Statusline

Claude Code 的 statusline(状态栏)是显示在终端底部的信息栏,用于实时展示重要的上下文信息和状态。它可以帮助用户在与 Claude 对话时了解当前的工作状态。

我们在跟claude code交互时,下面的栏位就是statusline:

image-20260204084418572

statusline可以显示多种信息,常见用途包括:

  • 当前工作目录 - 显示你正在哪个项目目录中工作,方便在多项目间切换时保持清晰。

  • Git 分支信息 - 显示当前所在的 git 分支、是否有未提交的更改、是否有未推送的提交等。

  • Context 使用情况 - 实时显示 token 使用量,帮助你了解 context 窗口的占用情况。

  • 当前模型 - 显示正在使用的 AI 模型(如 Sonnet 4.5、Opus 4.5 等)。

  • 自定义信息 - 可以配置显示项目特定的信息,如当前 AWS profile、Node.js 版本、环境变量等。

如何配置 Statusline

有几种配置方式:

方法 1:使用内置 Agent(最简单)

Claude Code 有一个专门的 statusline-setup agent 来帮你配置。你可以直接说:

"帮我配置状态栏,显示 Git 分支和当前的output style"

调整完成后,每次和Claude Code交互完,都会显示git分支和当前使用的output style:

image-20260204085359592

我会自动使用 statusline-setup agent 来配置。

方法 2:手动编辑配置文件

状态栏配置保存在 .claude/settings.local.json 或全局配置文件中。配置结构通常是:

{
  "statusLine": {
    "enabled": true,
    "format": "{cwd} | {git_branch} | {model} | {context_usage}",
    "customFields": [
      {
        "name": "aws_profile",
        "command": "echo $AWS_PROFILE",
        "refreshInterval": 5000
      }
    ]
  }
}

例如上面claude帮我们自动生成的配置,保存在~/.claude/settings.json:

{
  "permissions": {
    "allow": [
      "Bash(ls:*)"
    ]
  },
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline-display.sh"
  }
}

statusline-display.sh的内容如下:

#!/bin/bash
# StatusLine display script

# Get git branch
BRANCH=$(git branch --show-current 2>/dev/null || echo 'no-git')

# Get output style
STYLE=$(~/.claude/output-style-tracker.sh)

# Print with visual emphasis (using emoji since ANSI colors aren't supported)
printf "  %s  ✨ Current style: %s" "$BRANCH" "$STYLE"