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
Baris status dirender di baris tersendiri di atas lencana footer bawaan dan tidak menggantikannya. Dengan baris status khusus yang dikonfigurasi, Claude Code berhenti menampilkan sebagian besar petunjuk keyboard footer, termasuk esc to interrupt, fallback ? for shortcuts, dan petunjuk voice dictation hold space to speak. Untuk menambahkan lencana tautan yang dapat diklik ke footer ketika ID muncul dalam percakapan, tanpa menulis skrip, konfigurasikan footerLinksRegexes sebagai gantinya. 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:
Setujui prompt edit file jika Claude Code meminta izin selama pengaturan.

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.
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:
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. Bidang refreshInterval opsional menjalankan kembali perintah Anda setiap N detik selain pembaruan berbasis peristiwa. Minimum adalah 1. Atur ini ketika baris status Anda menampilkan data berbasis waktu seperti jam, atau ketika subagen latar belakang mengubah keadaan git sementara sesi utama menganggur. Biarkan tidak diatur untuk hanya berjalan pada peristiwa. Bidang hideVimModeIndicator opsional menekan teks -- INSERT -- bawaan di bawah prompt. Atur ini ke true ketika skrip Anda merender vim.mode itu sendiri, sehingga mode tidak ditampilkan dua kali.

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 /statusline siapkan untuk Anda 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):
2

Buat dapat dieksekusi

Tandai skrip sebagai dapat dieksekusi sehingga shell Anda dapat menjalankannya:
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:
Baris status Anda muncul di bagian bawah antarmuka. Claude Code memuat ulang pengaturan secara otomatis dan menjalankan skrip Anda segera setelah Anda menyimpan file.

Bagaimana baris status bekerja

Claude Code menjalankan skrip Anda dengan data sesi JSON pada stdin dan menampilkan apa pun yang dicetak skrip ke stdout.
Baris status berjalan secara lokal dan tidak menggunakan token API. Baris status disembunyikan sementara selama interaksi UI tertentu, termasuk menu bantuan dan permintaan izin.

Kapan baris status diperbarui

Skrip Anda berjalan sekali ketika sesi dimulai, termasuk ketika Anda melanjutkannya. Setelah itu, skrip berjalan lagi ketika:
  • Pesan asisten baru tiba
  • /compact selesai
  • Mode izin berubah
  • Vim mode beralih
  • Anda mengubah command dalam pengaturan statusLine Anda
  • Timer refreshInterval berlalu, jika Anda menetapkannya
  • Jendela rate-limit dalam data yang terakhir diterima skrip Anda mencapai waktu resets_at
  • prompt cache yang hangat dalam data yang terakhir diterima skrip Anda mencapai waktu expires_at
Claude Code melakukan debounce pembaruan pada 300ms, jadi perubahan cepat dikumpulkan bersama dan skrip Anda berjalan sekali setelah perubahan berhenti. Perubahan pada command itu sendiri melewati debounce: Claude Code menjalankan perintah baru segera. Jika pembaruan baru dipicu saat skrip Anda masih berjalan, Claude Code membatalkan skrip yang sedang berlangsung. Jika Anda mengedit skrip Anda, perubahan muncul pada saat berikutnya pemicu pembaruan menjalankannya kembali. Pemicu yang didorong oleh peristiwa dapat menjadi senyap ketika sesi utama menganggur, misalnya saat koordinator menunggu subagent latar belakang. Untuk menjaga segmen berbasis waktu atau bersumber eksternal tetap terkini selama periode menganggur, atur refreshInterval untuk juga menjalankan kembali perintah pada timer tetap.

Apa yang dapat dicetak skrip Anda

Skrip Anda dapat mencetak lebih dari satu baris teks biasa:

Mengukur output ke terminal

Claude Code menangkap output skrip Anda alih-alih menghubungkannya langsung ke terminal, jadi tput cols dan deteksi lebar tingkat bahasa tidak dapat membaca ukuran terminal dari dalam skrip. Baca environment variable COLUMNS dan LINES sebagai gantinya. Claude Code menetapkan ini ke dimensi terminal saat ini sebelum menjalankan skrip Anda.

Data yang tersedia

Claude Code mengirimkan field JSON berikut ke skrip Anda melalui stdin:
Perintah baris status Anda menerima struktur JSON ini melalui stdin:
Field yang mungkin tidak ada (tidak ada di JSON):
  • session_name: muncul ketika nama kustom telah ditetapkan dengan --name atau /rename, atau setelah judul sesi yang dibuat oleh AI tersedia. Nama tampilan default, seperti my-app-3f, tidak mengisinya
  • prompt_id: hanya muncul setelah input pengguna pertama
  • workspace.git_worktree: hanya muncul ketika direktori saat ini berada di dalam linked git worktree
  • workspace.repo: hanya muncul di dalam repositori git dengan remote origin yang dikonfigurasi
  • effort: hanya muncul ketika model saat ini mendukung parameter effort penalaran
  • vim: hanya muncul ketika mode vim diaktifkan
  • agent: hanya muncul ketika berjalan dengan flag --agent atau pengaturan agent dikonfigurasi
  • pr: hanya muncul selama PR terbuka atau GitLab merge request ditemukan untuk branch saat ini, dan dihapus setelah di-merge atau ditutup. pr.review_state dan pr.kind mungkin tidak ada secara independen
  • worktree: hanya muncul selama sesi berada dalam sesi worktree. Ketika ada, branch dan original_branch juga mungkin tidak ada untuk worktree berbasis hook
  • rate_limits: hanya muncul untuk pelanggan claude.ai Pro, Max, dan Ultra, atau di balik Claude apps gateway yang menetapkan batas pengeluaran untuk Anda. Bahkan dalam kondisi tersebut, field ini hanya muncul setelah respons API pertama dalam sesi. Setiap jendela (five_hour, seven_day, spend_limit) mungkin tidak ada secara independen, dan Claude Code menghapus sebuah jendela setelah waktu resets_at-nya terlewati. Gunakan jq -r '.rate_limits.five_hour.used_percentage // empty' untuk menangani ketiadaan field dengan baik.
  • prompt_cache: muncul setelah respons API pertama dari percakapan utama. Lihat field prompt cache
Field yang mungkin bernilai null:
  • context_window.current_usage: null sebelum panggilan API pertama dalam sesi, dan kembali null setelah /compact hingga panggilan API berikutnya mengisinya kembali
  • context_window.used_percentage, context_window.remaining_percentage: mungkin bernilai null di awal sesi
Tangani field yang hilang dengan akses kondisional dan nilai null dengan nilai default fallback di skrip Anda.

Field context window

Objek context_window mendeskripsikan context window aktif dari respons API terbaru.
  • Total gabungan (total_input_tokens, total_output_tokens): token yang saat ini berada di context window. total_input_tokens adalah jumlah dari input_tokens, cache_creation_input_tokens, dan cache_read_input_tokens; total_output_tokens adalah token output dari respons terbaru. Keduanya bernilai 0 sebelum respons API pertama.
  • Penggunaan per komponen (current_usage): jumlah token yang sama yang dipecah berdasarkan kategori. Gunakan ini ketika Anda memerlukan cache hit terpisah dari input baru.
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
Untuk arti field cache dan cara penagihannya, lihat memeriksa performa cache. Field used_percentage dihitung hanya dari token input: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Field ini tidak mencakup output_tokens. Jika Anda menghitung persentase konteks secara manual dari current_usage, gunakan rumus yang sama yang hanya menggunakan input agar cocok dengan used_percentage. Objek current_usage bernilai null sebelum panggilan API pertama dalam sesi, dan kembali null segera setelah /compact hingga panggilan API berikutnya mengisinya kembali.

Field batas pengeluaran

Di balik Claude apps gateway dengan batas pengeluaran, objek rate_limits.spend_limit mendeskripsikan batas pengeluaran yang berlaku untuk Anda. Objek ini muncul setelah respons API pertama dalam sesi dan memerlukan Claude Code v2.1.251 atau lebih baru. Skrip Anda menerima field-fieldnya dengan jadwal yang terpisah:
  • used_percentage dan resets_at: disertakan di setiap respons, sehingga keduanya ada setiap kali spend_limit ada. used_percentage berkisar dari 0 hingga 100, atau di atas 100 setelah Anda melebihi batas, dan resets_at adalah detik Unix epoch ketika periode batas direset.
  • used_usd, limit_usd, dan period: estimasi pengeluaran Anda sejauh ini dan batas Anda dalam dolar AS, serta periode yang dicakup batas tersebut, salah satu dari daily, weekly, atau monthly. Gateway menghitung used_usd dari jumlah token, sehingga nilainya merupakan estimasi dan bukan jumlah yang ditagihkan. Claude Code membacanya dari gateway dalam permintaan terpisah, sekitar setiap lima menit selama Anda mengirim permintaan. Jumlah dolar bisa sekitar lima menit lebih lama daripada used_percentage, sehingga keduanya mungkin sempat tidak sesuai. Memerlukan v2.1.284 atau lebih baru pada Claude Code dan gateway.
Perlakukan used_usd, limit_usd, dan period sebagai opsional bahkan ketika spend_limit ada, karena skrip Anda menerima persentase sebelum field-field tersebut. Baca masing-masing dengan fallback di skrip Anda, seperti jq -r '.rate_limits.spend_limit.used_usd // empty'. Sebelum Claude Code v2.1.295, field-field tersebut tetap tidak ada jika Anda menetapkan CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, yang menonaktifkan permintaan tersebut.

Field prompt cache

Objek prompt_cache merangkum bagaimana percakapan utama sesi menggunakan prompt cache. Claude Code menghitungnya dari jumlah token cache dalam respons API, sehingga objek ini berfungsi di setiap penyedia. Objek ini muncul setelah respons API pertama dari percakapan utama. Claude Code tidak menghitung permintaan subagent dalam statistik ini. Memerlukan Claude Code v2.1.251 atau lebih baru. Tabel berikut mencantumkan setiap field beserta artinya. Timestamp dalam detik Unix epoch, satuan yang sama dengan rate_limits.*.resets_at. Baris status yang ringkas biasanya menampilkan satu atau dua di antaranya; warm dan hit_ratio merangkum status cache secara paling langsung. Claude Code menampilkan statistik yang sama di terminal, pada baris Prompt cache (main) dari perintah /usage.

Penyebab miss terakhir

Objek last_miss_cause melaporkan apa yang diidentifikasi Claude Code sebagai kemungkinan penyebab miss terbaru. Array causes-nya berisi satu atau lebih nama penyebab, seperti tools_changed, system_prompt_changed, ttl_expired_5m, atau likely_server_side. Objek ini bernilai null hingga miss pertama dalam sesi, dan kembali null setiap kali Claude Code tidak dapat mengidentifikasi penyebab miss terbaru. Memerlukan Claude Code v2.1.260 atau lebih baru. Dua penyebab menambahkan jumlah ke objek tersebut:
  • tools_added dan tools_removed: bersama tools_changed, berapa banyak tool yang ditambahkan ke atau dihapus dari permintaan
  • system_char_delta: bersama system_prompt_changed, perubahan panjang system prompt, dalam karakter

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

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:

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

Tampilkan beberapa baris

Skrip Anda dapat menampilkan beberapa baris untuk membuat tampilan yang lebih kaya.
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:
Contoh ini membuat tautan yang dapat diklik ke repositori GitHub Anda. 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:

Penggunaan batas laju

Tampilkan penggunaan rate limit langganan claude.ai, atau pengeluaran Anda terhadap batas pengeluaran gateway aplikasi Claude, dalam baris status. Untuk pelanggan, objek rate_limits dapat berisi jendela bergulir five_hour dan jendela mingguan seven_day. Setiap jendela menyediakan used_percentage, dari 0 hingga 100, dan resets_at, detik epoch Unix ketika jendela direset. Di balik gateway, baca objek spend_limit, yang dijelaskan di bidang batas pengeluaran. Objek rate_limits hanya ada untuk pelanggan claude.ai Pro, Max, dan Ultra, atau di balik gateway aplikasi Claude dengan batas pengeluaran, dan hanya setelah respons API pertama. Setiap skrip menangani bidang yang tidak ada dengan anggun, dan di balik gateway mencetak spend: $314.12 / $500, atau spend: 63% selama bidang dolar tidak ada:

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. Nama file cache perlu stabil di seluruh invokasi baris status dalam sesi, tetapi unik di seluruh sesi sehingga sesi bersamaan di repositori berbeda tidak membaca keadaan git cache satu sama lain. Pengidentifikasi berbasis proses seperti $$, os.getpid(), atau process.pid berubah pada setiap invokasi dan mengalahkan cache. Gunakan session_id dari input JSON sebagai gantinya: itu stabil untuk seumur hidup sesi dan unik per sesi. Setiap skrip memeriksa apakah file cache hilang atau lebih lama dari 5 detik sebelum menjalankan perintah git:

Konfigurasi Windows

Di Windows, Claude Code menjalankan perintah baris status melalui Git Bash ketika Git Bash diinstal, atau melalui PowerShell ketika Git Bash tidak ada. Git Bash memperlakukan backslash yang tidak dikutip sebagai karakter escape, jadi jalur gaya Windows seperti C:\Users\username\script.mjs mencapai runner skrip dengan pemisahnya dihapus dan perintah gagal tanpa kesalahan yang terlihat. Tulis jalur file dalam string command dengan garis miring ke depan, seperti yang ditunjukkan dalam contoh di bawah ini. Pintasan ~ juga berfungsi dan berkembang ke direktori home Windows Anda. Untuk menjalankan skrip PowerShell sebagai baris status Anda, panggil melalui powershell. Ini berfungsi apakah Claude Code merutekan perintah melalui Git Bash atau PowerShell:
Atau, ketika Git Bash diinstal, jalankan skrip Bash secara langsung:

Tips

  • Uji dengan input mock: echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./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.

Pemecahan masalah

Jika baris status kosong, mulailah dengan Baris status tidak muncul. Folder yang belum Anda percayai dan skrip yang gagal juga membuatnya kosong, seperti yang dijelaskan dalam Kepercayaan workspace diperlukan dan Kesalahan skrip atau hang.

Baris status tidak muncul

Jika Anda telah mengonfigurasi baris status dan tidak ada yang ditampilkan di bagian bawah antarmuka, lakukan pemeriksaan berikut:
  • 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
  • Di Windows dengan Git Bash terinstal, garis miring terbalik dalam jalur command kemungkinan besar dikonsumsi sebagai karakter escape sebelum skrip berjalan. Gunakan garis miring ke depan dalam jalur. Lihat Konfigurasi Windows.
  • Jika disableAllHooks adalah true di luar pengaturan terkelola setelah prioritas pengaturan diterapkan, Claude Code hanya menjalankan statusLine dari pengaturan terkelola, dan tanpa statusLine terkelola baris status dinonaktifkan. Hapus pengaturan, atau atur ke false dalam file yang mengaturnya, untuk mengaktifkan kembali. Lihat disableAllHooks.
  • Jika organisasi Anda mengatur allowManagedHooksOnly dalam pengaturan terkelola, baris status kustom Anda hilang tanpa peringatan: Anda hanya dapat mendapatkan baris status dari nilai statusLine dalam pengaturan terkelola tersebut. Lihat apa yang berjalan di bawah allowManagedHooksOnly untuk perilaku lengkap, dan tanyakan kepada administrator Anda apakah pengaturan ini berlaku untuk Anda.
  • Jalankan claude --debug untuk mencatat stderr skrip Anda pada setiap invokasi baris status, dan kode keluarnya pada invokasi 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, jadi 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

Baris status melaporkan hitungan dari respons API terakhir, sementara /context menambahkan estimasi untuk pesan yang ditambahkan sejak respons itu, jadi /context dapat membaca lebih tinggi sampai respons berikutnya. Gunakan used_percentage untuk keadaan konteks yang paling akurat dan sederhana. Untuk rumus di balik used_percentage, lihat Bidang context window. Apakah sebuah tautan dapat diklik bergantung pada terminal Anda, pada apakah Claude Code mendeteksi dukungan hyperlink di dalamnya, pada apakah SSH atau tmux menghapus urutan escape, dan pada cara skrip Anda mencetaknya:
  • Verifikasi terminal Anda mendukung hyperlink OSC 8 (iTerm2, Kitty, WezTerm)
  • Terminal.app tidak mendukung tautan yang dapat diklik
  • Jika teks tautan muncul tetapi tidak dapat diklik, Claude Code mungkin tidak mendeteksi dukungan hyperlink di terminal Anda. Atur environment variable FORCE_HYPERLINK untuk menimpa deteksi sebelum meluncurkan Claude Code:
    Di PowerShell, atur variabel dalam sesi saat ini terlebih dahulu:
  • 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. Baris status multi-baris dengan kode escape lebih rentan terhadap masalah rendering daripada teks biasa satu baris. Jika Anda melihat teks yang rusak, coba sederhanakan skrip Anda ke output teks biasa.

Kepercayaan workspace diperlukan

Sampai Anda menerima dialog kepercayaan workspace, baris status tetap kosong. Karena statusLine mengeksekusi perintah shell, Claude Code menjalankannya di bawah aturan kepercayaan workspace yang sama seperti hook dalam file pengaturan. Menerima dialog untuk folder, atau untuk direktori induk yang kepercayaannya meluas ke dalamnya, sudah cukup. Sampai saat itu, claude --debug mencatat Status line command skipped: workspace trust not accepted. Mulai ulang Claude Code dan terima dialog kepercayaan untuk mengaktifkannya.

Kesalahan skrip atau hang

Claude Code menampilkan output skrip Anda hanya setelah skrip keluar dengan kode 0:
  • 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

Di luar rendering fullscreen, Claude Code menampilkan notifikasi pada baris yang sama dengan baris status Anda. Dalam rendering fullscreen, Claude Code memberikan notifikasi baris mereka sendiri.
  • Notifikasi sistem seperti kesalahan server MCP dan pembaruan otomatis ditampilkan di sisi kanan baris. Notifikasi sementara seperti peringatan konteks-rendah juga bersiklus melalui area ini.
  • Mengaktifkan mode verbose menambahkan penghitung token ke area ini, yang menampilkan ukuran konteks Anda sebagaimana dilaporkan oleh respons API terakhir, bukan hitungan per giliran di samping spinner
  • Di terminal sempit, notifikasi ini mungkin memotong output baris status Anda