Claude Code 設定 | 2026-05-14 | 開發工具

Claude Code 兩行 Powerline Statusline
完整分享包

我在用的兩行 Powerline statusline、顯示 Model、目錄、Git branch、上下文用量、5h/7d 額度、session 費用。一個 bash 腳本搞定、分享給也在用 Claude Code 的人。

兩行 Powerline 彩色進度條 complete bash 腳本
⚡ 30 秒看重點

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

需求bashjq(必裝)、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-infobranch、* 髒位、今日 commits沒在 git repo 就不顯示
work-time從 transcript mtime 算 session 時長純粹參考
project-typeJS/PY/RS/GO 偵測看當下目錄
msg-countsession 內訊息數看用量
context-bar上下文使用率(必留、第二行靠它)砍了第二行會空
lines-changed本 session +/- 行數看修改量
session-cost本 session 花了幾塊 USDAPI 用戶才有
rate-limits5h / 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。

老K · 領先時代數位

撰寫 2026-05-14 · 最後更新 2026-05-20

看完這篇?回首頁瀏覽更多實驗筆記

← 回 老K 的 AI 實驗筆記