/statusline: 为 Claude Code 打造你的梦想状态栏
Source: Dev.to
(请提供您希望翻译的正文内容,我将为您翻译成简体中文。)
问题
标准终端和 AI 界面会给出它们认为你需要的内容。问题是,它们往往是错误的——或者至少是不完整的。
- 你在多个 Git 分支之间工作,需要随时了解当前所在的分支。
- 你对预算很敏感,想实时跟踪 token 使用情况。
- 你是自由职业者,需要记录可计费的工作时间。
- 你跨时区工作,需要在发送信息前先知道东京的时间。
默认的答案是:“打开另一个终端标签页”, “查看其他应用”,或 “记住它”。
所有这些都需要切换上下文,增加摩擦,让你去做本该由工具帮你完成的工作。
解决方案
Claude Code 的 /statusline 命令会在界面的底部放置一个 可自定义的信息栏。你可以决定其中显示什么——可能性真的无穷无尽。
如何使用
基本用法
/statusline
运行该命令会打开状态栏配置 UI,您可以在其中定义显示哪些信息以及它们的格式。
快速配置示例
/statusline git:branch model tokens
现在状态栏会显示:
- 当前 Git 分支
- 活动的 Claude 模型
- 会话的令牌使用情况
内置信息类型
| Component | 显示内容 |
|---|---|
git:branch | 当前 Git 分支 |
git:status | 工作目录是否干净/脏 |
model | 当前 Claude 模型 |
tokens | 会话中使用的令牌 |
tokens:remaining | 估计剩余令牌 |
time | 当前时间 |
session | 当前会话名称 |
cwd | 当前工作目录 |
示例配置
/statusline git:branch git:status | model | tokens | time
结果
main ● | claude-3-opus | 12,847 tokens | 14:32
自定义命令和脚本
您可以将 任何 命令的输出添加到状态栏。
天气
/statusline "$(curl -s wttr.in/?format=%t)"
比特币价格
/statusline "BTC: $(curl -s https://api.coindesk.com/v1/bpi/currentprice.json \
| jq -r '.bpi.USD.rate')"
系统负载
/statusline "Load: $(uptime | awk -F'load average:' '{print $2}' | cut -d, -f1)"
番茄工作法计时器
/statusline "$(cat ~/.pomodoro_status 2>/dev/null || echo 'No timer')"
祈祷时间(适用于遵守者)
/statusline "Next prayer: $(~/.scripts/next_prayer.sh)"
Wordle 连胜
/statusline "🟩 Wordle: $(cat ~/.wordle_streak)"
是的,真的。 如果您可以从命令行获取它,就可以把它放进状态栏。
专业技巧
| Tip | Advice |
|---|---|
| 🎯 提示 1 | 保持可快速浏览。 状态栏在你能一眼看到并在一秒内获取信息时最有用。不要塞得太满。 |
| 🎯 提示 2 | 使用分隔符要明智。 管道字符 (` |
| 🎯 提示 3 | 创建上下文特定的状态栏。 不同项目需要不同信息。保存配置并在它们之间切换。 |
| 🎯 提示 4 | 刷新间隔很重要。 对于动态数据(如 API 价格),考虑刷新频率。调试代码时,你可能不需要每秒更新的比特币价格。 |
| 🎯 提示 5 | 与 tmux/screen 结合使用。 如果你已经在使用终端复用器,请协调你的状态栏以避免冗余信息。 |
针对提示 3 的示例别名
# In your shell config
alias statusline-work="/path/to/claude statusline git:branch jira-ticket model tokens"
alias statusline-personal="/path/to/claude statusline git:branch weather time"
实际使用案例
Alex — DevOps 工程师
/statusline git:branch | "k8s: $(kubectl config current-context)" \
| "pods: $(kubectl get pods --no-headers | wc -l)" | time
结果
main | k8s: prod-cluster | pods: 47 | 16:22
Alex 总是能随时了解当前分支、正在使用的 Kubernetes 集群以及运行中的 Pod 数量——这对可能误将代码部署到生产环境的人来说至关重要。
Jordan — 自由职业开发者
/statusline session | tokens | "$( ~/.scripts/billable_time.sh )" \
| "Rate: $$(~/.scripts/hourly_rate.sh)"
结果
client‑acme‑api | 8,234 tokens | 2h 34m billable | Rate: $127.50
Jordan 可以一眼看到客户会话、令牌使用量、可计费时间以及每小时费率。
Maya — 远程全栈开发者
/statusline git:branch | time | "BTC: $(curl -s https://api.coindesk.com/v1/bpi/currentprice.json \
| jq -r '.bpi.USD.rate')" | "Prayer: $(~/.scripts/next_prayer.sh)"
结果
feature/login | 09:45 | BTC: 28,734.12 | Prayer: 10:12
Maya 能在不离开终端的情况下,随时掌握 Git 工作进度、本地时间、比特币价格以及下一次祈祷时间。
开始使用
- 打开 Claude Code。
- 运行
/statusline。 - 使用内置标签或自定义命令替换添加所需组件。
- 按 Enter 保存。
你的终端现在为你工作,而不是相反。祝编码愉快!
绿色模式
跟踪会话、令牌使用以进行成本估算、计费时间以及当前计算的费率。开票变得更简单。
Morgan — 专注的开发者
/statusline git:branch | model | "Focus: $(($(date +%s) - $(cat ~/.focus_start))) seconds"
Morgan 的状态栏显示:
feature/auth | claude-3.5-sonnet | Focus: 2847 seconds
最小化干扰。只显示分支、模型和一个专注计时器,以鼓励深度工作。
构建完美的设置
以下是构建理想状态栏的流程:
- 从最小化开始。 仅使用 git 分支和 token。使用一天。
- 注意你手动检查的内容。 每次切换到另一个窗口获取信息时,问自己:“这可以放进我的状态栏吗?”
- 逐步添加。 每次添加一个新组件。观察它是增加价值还是只会产生噪音。
- 无情迭代。 如果一周内没有查看某个状态栏组件,就将其移除。
- 为状态栏切换上下文。 不同项目可能需要不同的设置。没关系。
结论
/statusline 功能体现了一种哲学:你的工具应当适应你,而不是相反。
无论你需要实用的 git 信息、用于预算管理的 token 追踪,亦或——是的——你的 Wordle 连胜,Claude Code 的 statusline 都会把它们放在你需要的地方。无需额外窗口。无需切换上下文。只需一眼,你便了然。
最好的 statusline 是你为自己构建的。那就动手吧。
明日第 15 天: 我们将彻底无限制。假如 Claude Code 再也不请求权限会怎样?进入 YOLO 模式:--dangerously-skip-permissions。它功能强大。它也很冒险。名字里就带有“danger”。我们来讨论何时使用它。⚠️
你的 statusline 上有什么?分享你的配置,并关注接下来 31 天的 Claude Code 功能系列!