Claude Code 兩行 Powerline Statusline
完整分享包
我在用的兩行 Powerline statusline、顯示 Model、目錄、Git branch、上下文用量、5h/7d 額度、session 費用。一個 bash 腳本搞定、分享給也在用 Claude Code 的人。
把 statusline.sh 整段抄走、放到 ~/.claude/statusline.sh、改 settings.json 一條 JSON 就有兩行 Powerline 狀態列。顯示 Model + 目錄 + Git branch + 上下文用量 + 5h/7d 額度 + session 費用,每段彩色進度條(<50% 綠、50-79% 黃、≥80% 紅)。
顯示什麼
- 第一行:Model · Effort → 目錄 → 專案類型 → Git branch → +新增 / -移除 → 今日 commits → 訊息數 → 工作時間
- 第二行:上下文使用率 → 5 小時額度 → 7 天額度 → 本 session 費用
每段都有彩色進度條,顏色:<50% 綠、50-79% 黃、≥80% 紅。
測試環境:Claude Code 2.1.80+ / macOS / Linux
需求:bash、jq(必裝)、git(選裝)、bc(選裝)
安裝步驟
1. 確認 jq 已裝
brew install jq
2. 把下面整段 statusline.sh 存到 ~/.claude/statusline.sh
chmod +x ~/.claude/statusline.sh
3. 編輯 ~/.claude/settings.json 加上:
{
"statusLine": {
"type": "command",
"command": "bash /Users/你的帳號/.claude/statusline.sh"
}
}
路徑改成自己的、存檔後重開 Claude Code 就會看到。
~/.claude/statusline.sh 完整檔案
#!/bin/bash
# ╔══════════════════════════════════════════════════════════════════╗
# ║ Claude Code Powerline Statusline ║
# ║ A full-featured, two-line Powerline statusline for Claude Code ║
# ║ Requires: bash, jq, git (optional), bc (optional) ║
# ║ Tested on: Claude Code 2.1.80+ (macOS / Linux) ║
# ╚══════════════════════════════════════════════════════════════════╝
#
# Line 1: Model·Effort → Dir → ProjType → Branch → Changes → Commits → MsgCount → WorkTime
# Line 2: Context bar → 5h quota → 7d quota → Cost
# ══════════════════════════════════════════════════════════
# ══ CORE: JSON input + shared utilities ══
# ══════════════════════════════════════════════════════════
JSON=$(cat)
MODEL=$(echo "$JSON" | jq -r '.model.display_name // "Unknown"')
DIR=$(echo "$JSON" | jq -r '.workspace.current_dir // "Unknown"' | xargs basename)
SESSION_ID=$(echo "$JSON" | jq -r '.session_id // "Unknown"')
TRANSCRIPT_PATH=$(echo "$JSON" | jq -r '.transcript_path // ""')
NOW=$(date +%s)
L1_SEGS=()
L2_SEGS=()
pl_add() {
local target=$1 bg=$2 fg=$3 text=$4
if [ "$target" = "1" ]; then
L1_SEGS+=("${bg}:${fg}:${text}")
else
L2_SEGS+=("${bg}:${fg}:${text}")
fi
}
pl_render() {
local arr_name=$1
local out=""
eval "local count=\${#${arr_name}[@]}"
for ((i=0; i
模組說明(每段都可以單獨砍掉)
腳本是模組化設計、每個 # ══ MODULE: 區塊獨立。不想看哪段就把整個 MODULE 區塊跟它在 ASSEMBLY 段的 pl_add 那行一起刪掉。
| 模組 | 顯示內容 | 砍掉後影響 |
|---|---|---|
git-info | branch、* 髒位、今日 commits | 沒在 git repo 就不顯示 |
work-time | 從 transcript mtime 算 session 時長 | 純粹參考 |
project-type | JS/PY/RS/GO 偵測 | 看當下目錄 |
msg-count | session 內訊息數 | 看用量 |
context-bar | 上下文使用率(必留、第二行靠它) | 砍了第二行會空 |
lines-changed | 本 session +/- 行數 | 看修改量 |
session-cost | 本 session 花了幾塊 USD | API 用戶才有 |
rate-limits | 5h / 7d 額度 + 倒數 | 需 Claude Code 2.1.80+ |
effort | 思考強度等級 | 用 /effort 切換 |
跨平台適配(macOS / Linux / Windows)
macOS / Linux(主要測試環境)
文中 statusline.sh 直接可用、不用改。brew install jq(macOS)或 apt install jq(Debian/Ubuntu)。
Windows WSL(Windows Subsystem for Linux)
WSL 內部跑就跟 Linux 一樣、sudo apt install jq bc、把 statusline.sh 放 ~/.claude/statusline.sh、settings.json 的 command 用 WSL 路徑(不是 Windows C:\ 路徑)。
常見卡點:
bash: $'\r': command not found→ 檔案是 Windows CRLF 換行、跑dos2unix ~/.claude/statusline.sh修正- 箭頭符號變亂碼 → Windows Terminal 字型選 Cascadia Code NF(內建有 Nerd Font 版)
- git branch 抓不到 → 確認你在 WSL 內部執行 git、不是呼叫 Windows 的 git.exe
Windows 原生(不用 WSL)
Claude Code 在 Windows 原生 cmd / PowerShell 跑時不支援 bash statusline、要嘛裝 Git Bash 用 git-for-windows 自帶的 bash、要嘛轉 WSL。推薦直接用 WSL、開發體驗一致很多。
推薦的 Powerline 字型清單
- MesloLGS NF(最常見、Powerlevel10k 預設、清晰)
- Fira Code Nerd Font(有 ligature、寫 code 好看)
- JetBrains Mono Nerd Font(JetBrains 官方字、可讀性高)
- Cascadia Code NF(Microsoft 出、Windows Terminal 預設好搭)
裝法(macOS):brew install --cask font-meslo-lg-nerd-font。其他平台到 nerdfonts.com 下載 .ttf 雙擊安裝。
實際長相
截圖 demo 待補。強烈建議裝完自己截一張放在 ~/Documents/ 之類、之後做客製化時對照。
典型輸出兩行(文字示意):
Sonnet 4.6·high claude-workspace Vibe master +12/-3 4c 47msg 2h15m
████░░░░░░ 38% 5h ●●●○○○○○○○ 28% ⏳3h12m 7d ●●●●○○○○○○ 42% ⏳5d8h $1.42
常見問題
第二行沒出現 5h/7d 額度?
要 Claude Code 2.1.80 以上版本才會在 stdin JSON 提供 rate_limits 欄位。先 claude --version 看一下。
費用一直 $0.00?
用 subscription(Pro / Max)會是 0、這欄位只對 API 計費用戶有意義。
箭頭符號變亂碼?
terminal 字型要支援 Powerline(Nerd Font / MesloLGS NF / Fira Code Nerd Font 都可以)。
有問題、改造、或更好的模組想分享、來 @leadingmrk 留言。
有問題、改造、或更好的模組想分享,歡迎到 @leadingmrk 找老K。
撰寫 2026-05-14 · 最後更新 2026-05-20