Langsung ke konten utama
Baris status adalah bilah yang dapat disesuaikan di bagian bawah Claude Code yang menjalankan skrip shell apa pun yang Anda konfigurasikan. Skrip menerima data sesi JSON di stdin dan menampilkan apa pun yang dicetak skrip Anda, memberikan Anda tampilan yang persisten dan sekilas dari penggunaan konteks, biaya, status git, atau apa pun yang ingin Anda lacak. Baris status berguna ketika Anda:
  • Ingin memantau penggunaan jendela konteks saat bekerja
  • Perlu melacak biaya sesi
  • Bekerja di berbagai sesi dan perlu membedakannya
  • Ingin cabang git dan status selalu terlihat
Berikut adalah contoh baris status multi-baris yang menampilkan informasi git di baris pertama dan bilah konteks berkode warna di baris kedua.
Baris status multi-baris yang menampilkan nama model, direktori, cabang git di baris pertama, dan bilah kemajuan penggunaan konteks dengan biaya dan durasi di baris kedua
Halaman ini memandu Anda melalui pengaturan baris status dasar, menjelaskan bagaimana aliran data dari Claude Code ke skrip Anda, mencantumkan semua bidang yang dapat Anda tampilkan, dan menyediakan contoh siap pakai untuk pola umum seperti status git, pelacakan biaya, dan bilah kemajuan.

Atur baris status

Gunakan perintah /statusline untuk membuat Claude Code menghasilkan skrip untuk Anda, atau buat skrip secara manual dan tambahkan ke pengaturan Anda.

Gunakan perintah /statusline

Perintah /statusline menerima instruksi bahasa alami yang menjelaskan apa yang ingin Anda tampilkan. Claude Code menghasilkan file skrip di ~/.claude/ dan memperbarui pengaturan Anda secara otomatis:
/statusline show model name and context percentage with a progress bar

Konfigurasikan baris status secara manual

Tambahkan bidang statusLine ke pengaturan pengguna Anda (~/.claude/settings.json, di mana ~ adalah direktori home Anda) atau pengaturan proyek. Atur type ke "command" dan arahkan command ke jalur skrip atau perintah shell inline. Untuk panduan lengkap membuat skrip, lihat Bangun baris status langkah demi langkah.
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 2
  }
}
Bidang command berjalan di shell, jadi Anda juga dapat menggunakan perintah inline alih-alih file skrip. Contoh ini menggunakan jq untuk mengurai input JSON dan menampilkan nama model dan persentase konteks:
{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"
  }
}
Bidang padding opsional menambahkan spasi horizontal ekstra (dalam karakter) ke konten baris status. Default ke 0. Padding ini selain spasi bawaan antarmuka, jadi mengontrol indentasi relatif daripada jarak absolut dari tepi terminal.

Nonaktifkan baris status

Jalankan /statusline dan minta untuk menghapus atau menghapus baris status Anda (misalnya, /statusline delete, /statusline clear, /statusline remove it). Anda juga dapat secara manual menghapus bidang statusLine dari settings.json Anda.

Bangun baris status langkah demi langkah

Panduan ini menunjukkan apa yang terjadi di balik layar dengan membuat baris status secara manual yang menampilkan model saat ini, direktori kerja, dan persentase penggunaan jendela konteks.
Menjalankan /statusline dengan deskripsi apa yang Anda inginkan mengonfigurasi semua ini untuk Anda secara otomatis.
Contoh-contoh ini menggunakan skrip Bash, yang berfungsi di macOS dan Linux. Di Windows, lihat Konfigurasi Windows untuk contoh PowerShell dan Git Bash.
Baris status yang menampilkan nama model, direktori, dan persentase konteks
1

Buat skrip yang membaca JSON dan mencetak output

Claude Code mengirim data JSON ke skrip Anda melalui stdin. Skrip ini menggunakan jq, pengurai JSON baris perintah yang mungkin perlu Anda instal, untuk mengekstrak nama model, direktori, dan persentase konteks, kemudian mencetak baris yang diformat.Simpan ini ke ~/.claude/statusline.sh (di mana ~ adalah direktori home Anda, seperti /Users/username di macOS atau /home/username di Linux):
#!/bin/bash
# Read JSON data that Claude Code sends to stdin
input=$(cat)

# Extract fields using jq
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
# The "// 0" provides a fallback if the field is null
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

# Output the status line - ${DIR##*/} extracts just the folder name
echo "[$MODEL] 📁 ${DIR##*/} | ${PCT}% context"
2

Buat dapat dieksekusi

Tandai skrip sebagai dapat dieksekusi sehingga shell Anda dapat menjalankannya:
chmod +x ~/.claude/statusline.sh
3

Tambahkan ke pengaturan

Beri tahu Claude Code untuk menjalankan skrip Anda sebagai baris status. Tambahkan konfigurasi ini ke ~/.claude/settings.json, yang menetapkan type ke "command" (berarti “jalankan perintah shell ini”) dan menunjuk command ke skrip Anda:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}
Baris status Anda muncul di bagian bawah antarmuka. Pengaturan dimuat ulang secara otomatis, tetapi perubahan tidak akan muncul sampai interaksi berikutnya Anda dengan Claude Code.

Bagaimana baris status bekerja

Claude Code menjalankan skrip Anda dan menyalurkan data sesi JSON ke dalamnya melalui stdin. Skrip Anda membaca JSON, mengekstrak apa yang dibutuhkan, dan mencetak teks ke stdout. Claude Code menampilkan apa pun yang dicetak skrip Anda. Kapan itu diperbarui Skrip Anda berjalan setelah setiap pesan asisten baru, ketika mode izin berubah, atau ketika vim mode beralih. Pembaruan dibatasi pada 300ms, berarti perubahan cepat dikumpulkan bersama dan skrip Anda berjalan sekali semuanya stabil. Jika pembaruan baru dipicu saat skrip Anda masih berjalan, eksekusi yang sedang berlangsung dibatalkan. Jika Anda mengedit skrip Anda, perubahan tidak akan muncul sampai interaksi berikutnya Anda dengan Claude Code memicu pembaruan. Apa yang dapat dicetak skrip Anda
Baris status berjalan secara lokal dan tidak menggunakan token API. Itu sementara bersembunyi selama interaksi UI tertentu, termasuk saran pelengkapan otomatis, menu bantuan, dan prompt izin.

Data yang tersedia

Claude Code mengirim bidang JSON berikut ke skrip Anda melalui stdin:
BidangDeskripsi
model.id, model.display_namePengidentifikasi model saat ini dan nama tampilan
cwd, workspace.current_dirDirektori kerja saat ini. Kedua bidang berisi nilai yang sama; workspace.current_dir lebih disukai untuk konsistensi dengan workspace.project_dir.
workspace.project_dirDirektori tempat Claude Code diluncurkan, yang mungkin berbeda dari cwd jika direktori kerja berubah selama sesi
cost.total_cost_usdTotal biaya sesi dalam USD
cost.total_duration_msTotal waktu dinding jam sejak sesi dimulai, dalam milidetik
cost.total_api_duration_msTotal waktu yang dihabiskan menunggu respons API dalam milidetik
cost.total_lines_added, cost.total_lines_removedBaris kode yang diubah
context_window.total_input_tokens, context_window.total_output_tokensJumlah token kumulatif di seluruh sesi
context_window.context_window_sizeUkuran jendela konteks maksimum dalam token. 200000 secara default, atau 1000000 untuk model dengan konteks diperpanjang.
context_window.used_percentagePersentase jendela konteks yang digunakan yang telah dihitung sebelumnya
context_window.remaining_percentagePersentase jendela konteks yang tersisa yang telah dihitung sebelumnya
context_window.current_usageJumlah token dari panggilan API terakhir, dijelaskan dalam bidang jendela konteks
exceeds_200k_tokensApakah jumlah token total (input, cache, dan output token digabungkan) dari respons API terbaru melebihi 200k. Ini adalah ambang batas tetap terlepas dari ukuran jendela konteks aktual.
session_idPengidentifikasi sesi unik
transcript_pathJalur ke file transkrip percakapan
versionVersi Claude Code
output_style.nameNama gaya output saat ini
vim.modeMode vim saat ini (NORMAL atau INSERT) ketika vim mode diaktifkan
agent.nameNama agen saat menjalankan dengan bendera --agent atau pengaturan agen dikonfigurasi
worktree.nameNama worktree aktif. Hadir hanya selama sesi --worktree
worktree.pathJalur absolut ke direktori worktree
worktree.branchNama cabang Git untuk worktree (misalnya, "worktree-my-feature"). Tidak ada untuk worktree berbasis hook
worktree.original_cwdDirektori tempat Claude berada sebelum memasuki worktree
worktree.original_branchCabang Git yang diperiksa sebelum memasuki worktree. Tidak ada untuk worktree berbasis hook
Perintah baris status Anda menerima struktur JSON ini melalui stdin:
{
  "cwd": "/current/working/directory",
  "session_id": "abc123...",
  "transcript_path": "/path/to/transcript.jsonl",
  "model": {
    "id": "claude-opus-4-6",
    "display_name": "Opus"
  },
  "workspace": {
    "current_dir": "/current/working/directory",
    "project_dir": "/original/project/directory"
  },
  "version": "1.0.80",
  "output_style": {
    "name": "default"
  },
  "cost": {
    "total_cost_usd": 0.01234,
    "total_duration_ms": 45000,
    "total_api_duration_ms": 2300,
    "total_lines_added": 156,
    "total_lines_removed": 23
  },
  "context_window": {
    "total_input_tokens": 15234,
    "total_output_tokens": 4521,
    "context_window_size": 200000,
    "used_percentage": 8,
    "remaining_percentage": 92,
    "current_usage": {
      "input_tokens": 8500,
      "output_tokens": 1200,
      "cache_creation_input_tokens": 5000,
      "cache_read_input_tokens": 2000
    }
  },
  "exceeds_200k_tokens": false,
  "vim": {
    "mode": "NORMAL"
  },
  "agent": {
    "name": "security-reviewer"
  },
  "worktree": {
    "name": "my-feature",
    "path": "/path/to/.claude/worktrees/my-feature",
    "branch": "worktree-my-feature",
    "original_cwd": "/path/to/project",
    "original_branch": "main"
  }
}
Bidang yang mungkin tidak ada (tidak ada dalam JSON):
  • vim: muncul hanya ketika vim mode diaktifkan
  • agent: muncul hanya saat menjalankan dengan bendera --agent atau pengaturan agen dikonfigurasi
  • worktree: muncul hanya selama sesi --worktree. Ketika ada, branch dan original_branch juga mungkin tidak ada untuk worktree berbasis hook
Bidang yang mungkin null:
  • context_window.current_usage: null sebelum panggilan API pertama dalam sesi
  • context_window.used_percentage, context_window.remaining_percentage: mungkin null awal dalam sesi
Tangani bidang yang hilang dengan akses bersyarat dan nilai null dengan default fallback dalam skrip Anda.

Bidang jendela konteks

Objek context_window menyediakan dua cara untuk melacak penggunaan konteks:
  • Total kumulatif (total_input_tokens, total_output_tokens): jumlah semua token di seluruh sesi, berguna untuk melacak konsumsi total
  • Penggunaan saat ini (current_usage): jumlah token dari panggilan API terbaru, gunakan ini untuk persentase konteks yang akurat karena mencerminkan keadaan konteks aktual
Objek current_usage berisi:
  • input_tokens: token input dalam konteks saat ini
  • output_tokens: token output yang dihasilkan
  • cache_creation_input_tokens: token yang ditulis ke cache
  • cache_read_input_tokens: token yang dibaca dari cache
Bidang used_percentage dihitung dari token input saja: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Itu tidak termasuk output_tokens. Jika Anda menghitung persentase konteks secara manual dari current_usage, gunakan formula input-only yang sama untuk mencocokkan used_percentage. Objek current_usage adalah null sebelum panggilan API pertama dalam sesi.

Contoh

Contoh-contoh ini menunjukkan pola baris status umum. Untuk menggunakan contoh apa pun:
  1. Simpan skrip ke file seperti ~/.claude/statusline.sh (atau .py/.js)
  2. Buat dapat dieksekusi: chmod +x ~/.claude/statusline.sh
  3. Tambahkan jalur ke pengaturan Anda
Contoh Bash menggunakan jq untuk mengurai JSON. Python dan Node.js memiliki penguraian JSON bawaan.

Penggunaan jendela konteks

Tampilkan model saat ini dan penggunaan jendela konteks dengan bilah kemajuan visual. Setiap skrip membaca JSON dari stdin, mengekstrak bidang used_percentage, dan membangun bilah 10 karakter di mana blok yang diisi (▓) mewakili penggunaan:
Baris status yang menampilkan nama model dan bilah kemajuan dengan persentase
#!/bin/bash
# Read all of stdin into a variable
input=$(cat)

# Extract fields with jq, "// 0" provides fallback for null
MODEL=$(echo "$input" | jq -r '.model.display_name')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

# Build progress bar: printf -v creates a run of spaces, then
# ${var// /▓} replaces each space with a block character
BAR_WIDTH=10
FILLED=$((PCT * BAR_WIDTH / 100))
EMPTY=$((BAR_WIDTH - FILLED))
BAR=""
[ "$FILLED" -gt 0 ] && printf -v FILL "%${FILLED}s" && BAR="${FILL// /▓}"
[ "$EMPTY" -gt 0 ] && printf -v PAD "%${EMPTY}s" && BAR="${BAR}${PAD// /░}"

echo "[$MODEL] $BAR $PCT%"

Status git dengan warna

Tampilkan cabang git dengan indikator berkode warna untuk file yang dipentingkan dan dimodifikasi. Skrip ini menggunakan kode escape ANSI untuk warna terminal: \033[32m adalah hijau, \033[33m adalah kuning, dan \033[0m mengatur ulang ke default.
Baris status yang menampilkan model, direktori, cabang git, dan indikator berkode warna untuk file yang dipentingkan dan dimodifikasi
Setiap skrip memeriksa apakah direktori saat ini adalah repositori git, menghitung file yang dipentingkan dan dimodifikasi, dan menampilkan indikator berkode warna:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')

GREEN='\033[32m'
YELLOW='\033[33m'
RESET='\033[0m'

if git rev-parse --git-dir > /dev/null 2>&1; then
    BRANCH=$(git branch --show-current 2>/dev/null)
    STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')
    MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')

    GIT_STATUS=""
    [ "$STAGED" -gt 0 ] && GIT_STATUS="${GREEN}+${STAGED}${RESET}"
    [ "$MODIFIED" -gt 0 ] && GIT_STATUS="${GIT_STATUS}${YELLOW}~${MODIFIED}${RESET}"

    echo -e "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH $GIT_STATUS"
else
    echo "[$MODEL] 📁 ${DIR##*/}"
fi

Pelacakan biaya dan durasi

Lacak biaya API sesi dan waktu yang telah berlalu. Bidang cost.total_cost_usd mengakumulasi biaya semua panggilan API dalam sesi saat ini. Bidang cost.total_duration_ms mengukur total waktu yang telah berlalu sejak sesi dimulai, sementara cost.total_api_duration_ms melacak hanya waktu yang dihabiskan menunggu respons API. Setiap skrip memformat biaya sebagai mata uang dan mengonversi milidetik ke menit dan detik:
Baris status yang menampilkan nama model, biaya sesi, dan durasi
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

COST_FMT=$(printf '$%.2f' "$COST")
DURATION_SEC=$((DURATION_MS / 1000))
MINS=$((DURATION_SEC / 60))
SECS=$((DURATION_SEC % 60))

echo "[$MODEL] 💰 $COST_FMT | ⏱️ ${MINS}m ${SECS}s"

Tampilkan beberapa baris

Skrip Anda dapat menampilkan beberapa baris untuk membuat tampilan yang lebih kaya. Setiap pernyataan echo menghasilkan baris terpisah di area status.
Baris status multi-baris yang menampilkan nama model, direktori, cabang git di baris pertama, dan bilah kemajuan penggunaan konteks dengan biaya dan durasi di baris kedua
Contoh ini menggabungkan beberapa teknik: warna berbasis ambang batas (hijau di bawah 70%, kuning 70-89%, merah 90%+), bilah kemajuan, dan informasi cabang git. Setiap pernyataan print atau echo membuat baris terpisah:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

CYAN='\033[36m'; GREEN='\033[32m'; YELLOW='\033[33m'; RED='\033[31m'; RESET='\033[0m'

# Pick bar color based on context usage
if [ "$PCT" -ge 90 ]; then BAR_COLOR="$RED"
elif [ "$PCT" -ge 70 ]; then BAR_COLOR="$YELLOW"
else BAR_COLOR="$GREEN"; fi

FILLED=$((PCT / 10)); EMPTY=$((10 - FILLED))
printf -v FILL "%${FILLED}s"; printf -v PAD "%${EMPTY}s"
BAR="${FILL// /█}${PAD// /░}"

MINS=$((DURATION_MS / 60000)); SECS=$(((DURATION_MS % 60000) / 1000))

BRANCH=""
git rev-parse --git-dir > /dev/null 2>&1 && BRANCH=" | 🌿 $(git branch --show-current 2>/dev/null)"

echo -e "${CYAN}[$MODEL]${RESET} 📁 ${DIR##*/}$BRANCH"
COST_FMT=$(printf '$%.2f' "$COST")
echo -e "${BAR_COLOR}${BAR}${RESET} ${PCT}% | ${YELLOW}${COST_FMT}${RESET} | ⏱️ ${MINS}m ${SECS}s"

Tautan yang dapat diklik

Contoh ini membuat tautan yang dapat diklik ke repositori GitHub Anda. Itu membaca URL remote git, mengonversi format SSH ke HTTPS dengan sed, dan membungkus nama repo dalam kode escape OSC 8. Tahan Cmd (macOS) atau Ctrl (Windows/Linux) dan klik untuk membuka tautan di browser Anda.
Baris status yang menampilkan tautan yang dapat diklik ke repositori GitHub
Setiap skrip mendapatkan URL remote git, mengonversi format SSH ke HTTPS, dan membungkus nama repo dalam kode escape OSC 8. Versi Bash menggunakan printf '%b' yang menginterpretasikan escape backslash lebih andal daripada echo -e di berbagai shell:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')

# Convert git SSH URL to HTTPS
REMOTE=$(git remote get-url origin 2>/dev/null | sed 's/[email protected]:/https:\/\/github.com\//' | sed 's/\.git$//')

if [ -n "$REMOTE" ]; then
    REPO_NAME=$(basename "$REMOTE")
    # OSC 8 format: \e]8;;URL\a then TEXT then \e]8;;\a
    # printf %b interprets escape sequences reliably across shells
    printf '%b' "[$MODEL] 🔗 \e]8;;${REMOTE}\a${REPO_NAME}\e]8;;\a\n"
else
    echo "[$MODEL]"
fi

Cache operasi yang mahal

Skrip baris status Anda berjalan sering selama sesi aktif. Perintah seperti git status atau git diff dapat lambat, terutama di repositori besar. Contoh ini menyimpan informasi git ke file temp dan hanya menyegarkannya setiap 5 detik. Gunakan nama file cache yang stabil dan tetap seperti /tmp/statusline-git-cache. Setiap invokasi baris status berjalan sebagai proses baru, jadi pengidentifikasi berbasis proses seperti $$, os.getpid(), atau process.pid menghasilkan nilai berbeda setiap kali dan cache tidak pernah digunakan kembali. Setiap skrip memeriksa apakah file cache hilang atau lebih lama dari 5 detik sebelum menjalankan perintah git:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')

CACHE_FILE="/tmp/statusline-git-cache"
CACHE_MAX_AGE=5  # seconds

cache_is_stale() {
    [ ! -f "$CACHE_FILE" ] || \
    # stat -f %m is macOS, stat -c %Y is Linux
    [ $(($(date +%s) - $(stat -f %m "$CACHE_FILE" 2>/dev/null || stat -c %Y "$CACHE_FILE" 2>/dev/null || echo 0))) -gt $CACHE_MAX_AGE ]
}

if cache_is_stale; then
    if git rev-parse --git-dir > /dev/null 2>&1; then
        BRANCH=$(git branch --show-current 2>/dev/null)
        STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')
        MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')
        echo "$BRANCH|$STAGED|$MODIFIED" > "$CACHE_FILE"
    else
        echo "||" > "$CACHE_FILE"
    fi
fi

IFS='|' read -r BRANCH STAGED MODIFIED < "$CACHE_FILE"

if [ -n "$BRANCH" ]; then
    echo "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH +$STAGED ~$MODIFIED"
else
    echo "[$MODEL] 📁 ${DIR##*/}"
fi

Konfigurasi Windows

Di Windows, Claude Code menjalankan perintah baris status melalui Git Bash. Anda dapat memanggil PowerShell dari shell itu:
{
  "statusLine": {
    "type": "command",
    "command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"
  }
}
Atau jalankan skrip Bash secara langsung:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

Tips

  • Uji dengan input mock: echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":25}}' | ./statusline.sh
  • Jaga output tetap pendek: bilah status memiliki lebar terbatas, jadi output panjang mungkin dipotong atau membungkus dengan canggung
  • Cache operasi lambat: skrip Anda berjalan sering selama sesi aktif, jadi perintah seperti git status dapat menyebabkan lag. Lihat contoh caching untuk cara menangani ini.
Proyek komunitas seperti ccstatusline dan starship-claude menyediakan konfigurasi pra-bangun dengan tema dan fitur tambahan.

Troubleshooting

Baris status tidak muncul
  • Verifikasi skrip Anda dapat dieksekusi: chmod +x ~/.claude/statusline.sh
  • Periksa bahwa skrip Anda menampilkan ke stdout, bukan stderr
  • Jalankan skrip Anda secara manual untuk memverifikasi itu menghasilkan output
  • Jika disableAllHooks diatur ke true dalam pengaturan Anda, baris status juga dinonaktifkan. Hapus pengaturan ini atau atur ke false untuk mengaktifkan kembali.
  • Jalankan claude --debug untuk mencatat kode keluar dan stderr dari invokasi baris status pertama dalam sesi
  • Minta Claude untuk membaca file pengaturan Anda dan jalankan perintah statusLine secara langsung untuk mengungkap kesalahan
Baris status menampilkan -- atau nilai kosong
  • Bidang mungkin null sebelum respons API pertama selesai
  • Tangani nilai null dalam skrip Anda dengan fallback seperti // 0 dalam jq
  • Mulai ulang Claude Code jika nilai tetap kosong setelah beberapa pesan
Persentase konteks menampilkan nilai yang tidak terduga
  • Gunakan used_percentage untuk keadaan konteks yang akurat daripada total kumulatif
  • total_input_tokens dan total_output_tokens adalah kumulatif di seluruh sesi dan mungkin melebihi ukuran jendela konteks
  • Persentase konteks mungkin berbeda dari output /context karena kapan masing-masing dihitung
Tautan OSC 8 tidak dapat diklik
  • Verifikasi terminal Anda mendukung hyperlink OSC 8 (iTerm2, Kitty, WezTerm)
  • Terminal.app tidak mendukung tautan yang dapat diklik
  • Sesi SSH dan tmux mungkin menghapus urutan OSC tergantung pada konfigurasi
  • Jika urutan escape muncul sebagai teks literal seperti \e]8;;, gunakan printf '%b' alih-alih echo -e untuk penanganan escape yang lebih andal
Glitch tampilan dengan urutan escape
  • Urutan escape kompleks (warna ANSI, tautan OSC 8) dapat sesekali menyebabkan output berantakan jika tumpang tindih dengan pembaruan UI lainnya
  • Jika Anda melihat teks yang rusak, coba sederhanakan skrip Anda ke output teks biasa
  • Baris status multi-baris dengan kode escape lebih rentan terhadap masalah rendering daripada teks biasa satu baris
Kesalahan skrip atau hang
  • Skrip yang keluar dengan kode non-nol atau tidak menghasilkan output menyebabkan baris status menjadi kosong
  • Skrip lambat memblokir baris status dari pembaruan sampai selesai. Jaga skrip tetap cepat untuk menghindari output basi.
  • Jika pembaruan baru dipicu saat skrip lambat berjalan, skrip yang sedang berlangsung dibatalkan
  • Uji skrip Anda secara independen dengan input mock sebelum mengonfigurasinya
Notifikasi berbagi baris status
  • Notifikasi sistem seperti kesalahan server MCP, pembaruan otomatis, dan peringatan token ditampilkan di sisi kanan baris yang sama dengan baris status Anda
  • Mengaktifkan mode verbose menambahkan penghitung token ke area ini
  • Di terminal sempit, notifikasi ini mungkin memotong output baris status Anda