MXterm Pro

Token Meter: Cek Penggunaan Token dan Kuota Claude Code

Token Meter membaca transkrip yang ditulis Claude Code, Codex, Gemini CLI dan omp ke disk, lalu menjumlahkannya di title bar. Token Meter juga bisa menampilkan batas paket Anda dan, untuk enam provider API, saldo, kuota atau pengeluaran di akun Anda. Batas paket dan batas Codex langsung punya toggle sendiri; provider akun mulai bekerja saat Anda menyimpan key. Popover mencantumkan setiap provider yang Anda atur, dengan provider yang Anda sematkan di urutan pertama.

Chip di title bar

Title bar menampilkan satu chip. Klik chip itu untuk membuka popover dengan satu baris untuk setiap provider yang punya sesuatu untuk ditampilkan: Claude Code, Codex dan Gemini jika folder transkripnya ditemukan di mesin ini, Agen lain jika omp menagihkan akun yang bukan salah satu dari itu dalam 30 hari terakhir, serta setiap provider akun yang key-nya sudah Anda simpan (Kimi juga muncul saat Kimi Code CLI sudah masuk di mesin ini). Urutan baris tetap: Claude Code, Codex, Gemini, Agen lain, DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter, Z.ai, kecuali provider yang Anda sematkan, yang diletakkan paling atas (lihat bagian tentang penyematan di bawah).

Chip mewakili provider yang paling dekat dengan batasnya. Yang ditampilkan bergantung pada apa yang benar-benar diketahui:

  • Persentase jika ada provider yang melaporkan jendela kuota: yang paling terbatas di antara semuanya. Ikon provider berada di sampingnya, dan saat chip di-hover, muncul nama jendela dan waktu reset-nya.
  • Jumlah token jika tidak ada provider yang melaporkan kuota: token yang dipakai dalam 5 jam terakhir, dibaca dari transkrip di mesin ini, untuk yang pertama di antara Claude Code, Codex, Gemini dan Agen lain yang punya baris.
  • Saldo terendah jika tidak ada baris transkrip lokal (Claude Code, Codex, Gemini, Agen lain), tidak ada provider yang melaporkan kuota, dan setidaknya satu provider melaporkan saldo dalam dolar AS: saldo yang paling kecil, dalam bentuk uang (misalnya $12.34), dengan ikon provider tersebut. Saldo tidak punya batas atas, jadi tidak pernah diubah menjadi persentase, dan saldo dalam yuan tidak pernah dikonversi ke dolar untuk perbandingan.
  • Tidak ada angka sama sekali jika tidak ada baris transkrip lokal dan provider yang Anda atur hanya melaporkan pengeluaran, atau hanya saldo dalam yuan. Chip lalu menampilkan ikon gauge polos.

Persentase berwarna netral di bawah 60%, kuning amber mulai 60%, dan merah mulai 85%. Pewarnaan itu hanya berlaku untuk persentase yang dilaporkan provider, tidak pernah untuk jumlah token atau saldo.

Chip disembunyikan sepenuhnya jika tidak ada yang bisa ditampilkan: tidak ada folder transkrip agent di mesin ini dan tidak ada key provider yang tersimpan. Pemindaian pertama dimulai 8 detik setelah aplikasi dibuka, dan angka pertama muncul setelah pemindaian selesai.

Asal angka-angkanya

AgentFolderFile yang dibaca
Claude Code~/.claude/projectsTranskrip .jsonl di folder itu dan subfolder-nya
Codex~/.codexFile sesi .jsonl di folder itu dan subfolder-nya
Gemini CLI~/.gemini/tmpFile chat .jsonl di folder itu dan subfolder-nya
omp~/.omp/agent/sessionsFile sesi .jsonl di folder itu dan subfolder-nya

Penggunaan dihitung per giliran dan dikelompokkan menurut jam dan model. File yang tidak diubah dalam 30 hari terakhir dilewati, dan data yang lebih lama dari 30 hari dibuang. omp bekerja lintas beberapa provider, jadi setiap giliran omp masuk ke baris akun yang ditagih: Anthropic ke Claude Code, OpenAI ke Codex, Google ke Gemini, selain itu (DeepSeek, MiniMax dan seterusnya) ke Agen lain. Giliran yang diimpor omp dari sesi Claude Code atau Codex tidak dihitung dua kali. OpenCode dan agent lain tidak dihitung: aplikasi hanya membaca keempat folder di atas.

MXterm Pro menulis ~/.codex/config.toml untuk menghubungkan Codex ke server MCP-nya (lihat Coding agents and Control Room, sebelumnya War Room), dan itu membuat folder ~/.codex. Mulai saat aplikasi dibuka berikutnya, baris Codex dengan nilai 0 bisa muncul di popover meskipun Codex tidak terpasang.
Token Meter mencari folder transkrip di folder home Anda: HOME jika ada, jika tidak USERPROFILE, jika tidak HOMEDRIVE ditambah HOMEPATH. Aplikasi Windows yang dibuka dari Explorer biasanya hanya memiliki USERPROFILE. Build Windows belum ditandatangani, dan pemindaian transkrip hanya diverifikasi di macOS.

Popover: satu baris per provider

Setiap baris memuat sorotan utama provider itu: hingga tiga bar kecil (5j, mgg, dan bar ketiga yang berupa bln, Kuota atau nama batas khusus model) untuk jendela yang diterbitkannya, atau, untuk saldo atau pengeluaran, satu baris teks. Baris pertama menyebutkan reset jendela yang paling dekat dengan batasnya: Direset dalam … untuk jendela 5 jam, atau misalnya Minggu direset dalam … untuk jendela lain. Jendela yang waktu reset-nya sudah lewat tanpa pembacaan baru sejak itu menampilkan bar kosong dan tanda hubung, bukan angka lama (Direset, belum ada pembacaan sejak itu di detail yang dibuka dan saat di-hover). Baris Claude Code juga menampilkan Tidak dapat menyegarkan · pembacaan terakhir jika pembacaan batas paketnya lebih lama dari 15 menit.

Setiap baris diberi tag yang menunjukkan angka siapa yang ditampilkan. Akun berarti provider melaporkannya untuk seluruh akun Anda, termasuk pemakaian di mesin lain: bar batas paket, saldo, dan pengeluaran sebuah akun. Mac ini berarti angka itu dihitung hanya dari transkrip di komputer ini: baris tanpa batas menampilkan pengeluaran dan token Hari ini, misalnya $1.20 today · 3.4M tokens. Baris Gemini dan Agen lain selalu menampilkan baris lokal itu, karena aplikasi tidak membaca kuota untuk keduanya.

Popover mencantumkan setiap provider yang punya baris, yang disematkan di urutan pertama dan sisanya dalam urutan tetap. Chip bisa mewakili provider yang tidak berada di urutan pertama.

Provider akun yang belum Anda atur dicantumkan setelah baris-baris itu sebagai Atur di Pengaturan. Jika ada dua provider atau lebih, semuanya diciutkan menjadi satu baris Penyedia lainnya… dengan ikonnya; klik baris itu untuk menampilkannya. Baris provider yang sudah diatur membuka Pengaturan → Token Meter.

Klik baris Claude Code, Codex, Gemini atau Agen lain untuk membuka detailnya. Batas milik provider ada lebih dulu di bawah tag Akun, lalu yang dihitung di sini di bawah Mac ini:

  • Bar Sesi dan Minggu, ditambah batas per model yang dilaporkan provider, masing-masing dengan waktu reset-nya. Hanya untuk Claude Code dan Codex, dan hanya jika batas itu tersedia (lihat dua bagian di bawah).
  • Token: dipakai dalam 5 jam terakhir, 7 hari terakhir dan 30 hari terakhir. Jendela 5 jam dan 7 hari dihitung dalam bucket per jam penuh, jadi masing-masing bisa mencakup sebagian dari satu jam tambahan.
  • Biaya: perkiraan untuk hari ini, 7 hari terakhir dan 30 hari terakhir. Angka yang tidak bisa diberi harga menampilkan belum ada harga, dan angka yang mengabaikan sebagian token tanpa harga diawali dengan ≥.
  • 24 jam terakhir: satu bar per jam.
  • 30 hari terakhir: satu bar per hari. Beralih antara Token dan Biaya, lalu arahkan kursor atau fokuskan satu hari untuk melihat totalnya dan tiga model teratasnya menurut token.
  • Rincian 7 hari terakhir yang dibagi ke dalam Input baru, Output, Penulisan cache, Pembacaan cache dan Giliran.
  • Berapa lama lalu angka-angka itu dihitung, dan baris Dibaca dari transkrip tiap agen di Mac ini. Tidak ada yang dikirim ke mana pun.

Di bagian bawah popover, baris Semua agen menjumlahkan Hari ini, 7 hari terakhir dan 30 hari terakhir dari setiap agent, token di atas biaya. Baris ini muncul setelah dua agent atau lebih memakai token dalam 30 hari terakhir, dan mengkliknya menampilkan pembagian per agent.

Menyematkan provider di atas

Provider yang tercantum pertama di popover secara default adalah Claude Code. Untuk menggantinya, buka Pengaturan → Token Meter dan pilih provider lain di bawah Disematkan di atas, atau pilih Tidak ada (urutan tetap).

Penyematan hanya memindahkan satu baris. Setiap provider yang Anda atur tetap tercantum, dan chip tetap mengikuti batas yang paling dekat habis. Jika provider yang disematkan tidak punya baris (Codex tidak ditemukan, tidak ada key tersimpan), tidak ada yang berpindah.

Angka biaya

Biaya adalah jumlah token yang dihargai dengan tarif API publik setiap model, memakai tabel harga yang tertanam di aplikasi. Jika omp mencatat biayanya sendiri untuk sebuah giliran, angka itu dipakai untuk token tersebut. Popover memberinya label Dengan tarif API, bukan yang ditagihkan untuk langganan dan menampilkan tanggal tabel itu. Jika Anda membayar paket langganan, angka itu bukan yang ditagihkan kepada Anda.

  • Hari ini dimulai pada tengah malam waktu lokal. 7 hari terakhir dan 30 hari terakhir adalah jendela bergulir; hanya 30 hari riwayat yang disimpan.
  • Model yang tidak ada di tabel harga dihitung dalam token tetapi tidak dalam biaya. Angka biaya itu lalu ditandai sebagai batas bawah, menyebut model tersebut, dan menampilkan persentase token yang sudah dihargai.
  • Biaya menampilkan — jika tidak ada yang punya harga yang diketahui di jendela itu.
  • Tabel harga belum dicek terhadap halaman harga OpenAI sendiri untuk model OpenAI, jadi anggap biaya Codex sebagai perkiraan.

Cara pembaruannya

  • Pemindaian pertama dimulai 8 detik setelah aplikasi dibuka. Dengan transkrip yang besar, prosesnya bisa cukup lama.
  • Setelah itu aplikasi memindai ulang setiap 60 detik dan hanya membaca bagian yang ditambahkan ke setiap file sejak pemindaian terakhir.
  • Title bar mengambil hasil transkrip terbaru setiap 30 detik, dan meminta batas paket Claude, batas Codex langsung dan pembacaan akun setiap 60 detik. Setiap provider itu tetap menerapkan batas bawah 5 menitnya sendiri.
  • Tombol refresh di bagian atas popover (Periksa ulang semua penyedia) mengambil pembacaan terbaru dari setiap provider sekaligus, tanpa menunggu pembaruan berikutnya. Tombol ini tidak memulai pemindaian transkrip baru dan tidak mempersingkat batas bawah 5 menit pada Anthropic, batas Codex langsung dan provider akun: provider yang dicek kurang dari 5 menit lalu tetap menampilkan pembacaan terakhirnya.
  • Progres pemindaian disimpan di token-meter-cache.json di folder config aplikasi (di macOS, ~/Library/Application Support/com.mxterm.desktop), jadi setelah restart aplikasi hanya membaca yang berubah selagi aplikasi tertutup.

Batas paket Claude yang sebenarnya

Transkrip Claude Code tidak mencatat batas paket Anda, jadi secara default meter menampilkan token, bukan persentase. Untuk melihat persentase yang dilaporkan Anthropic, buka Pengaturan → Token Meter, cari Batas paket dan aktifkan Tampilkan persentase batas sebenarnya untuk Claude. Opsi ini nonaktif secara default dan hanya mencakup Claude Code.

Saat Anda mengaktifkannya:

  1. Aplikasi membaca item keychain milik Claude Code, Claude Code-credentials, lewat alat security milik macOS. Claude Code menulis item itu dengan alat yang sama, jadi macOS biasanya tidak menampilkan prompt.
  2. Aplikasi mengambil token login Claude Code dari item itu dan memanggil GET https://api.anthropic.com/api/oauth/usage dengannya. Token disimpan di memori aplikasi sampai kedaluwarsa atau ditolak Anthropic, jadi keychain dibaca sekali per token. Token tidak pernah ditulis ke disk atau dicatat di log.
  3. Chip dan popover menampilkan persentase 5 jam dan mingguan Anda serta kapan keduanya di-reset.

Aplikasi memanggil endpoint itu maksimal sekali setiap 300 detik dan menampilkan pembacaan terakhir di sela waktu tersebut. Setelah respons rate limit (HTTP 429), aplikasi menunggu 900 detik sebelum percobaan berikutnya. Jika Anthropic tidak dapat dijangkau, pembacaan terakhir tetap ada di layar.

Jika macOS menolak pembacaan (keychain terkunci, atau prompt sistem yang Anda tolak), fitur ini tetap terblokir sampai Anda mematikan lalu menyalakannya lagi atau me-restart aplikasi. Jika Claude Code belum masuk, panel meminta Anda menjalankan claude untuk masuk. Batas paket hanya berfungsi di macOS; di sistem lain kredensialnya tidak dapat dibaca dan panel menampilkan pesan belum-masuk yang sama. Untuk melarang pembacaan keychain di Mac yang dikelola (item Claude Code dan key akun yang disimpan MXterm Pro), jalankan MXterm Pro dengan variabel lingkungan MXTERM_DISABLE_KEYCHAIN=1.

Batas Codex, dari disk atau langsung

Batas Codex tidak memerlukan toggle maupun jaringan. Codex menulis header rate limit yang dikirim server ke file sesinya sendiri, jadi persentase 5 jam dan mingguan yang ditampilkan UI Codex sudah ada di file yang dipindai Token Meter. Baris Codex yang dibuka mencantumkan Seperti dilaporkan Codex … lalu, karena angka itu hanya sebaru giliran Codex terakhir Anda di mesin ini.

Untuk angka yang terkini, Pengaturan → Token Meter punya opsi Batas Codex langsung. Opsi ini nonaktif secara default. Saat Anda mengaktifkannya, aplikasi membaca login ChatGPT milik Codex dari ~/.codex/auth.json dan mengirimkannya hanya ke chatgpt.com untuk mengambil batas Anda saat ini; aplikasi tidak pernah mengubah atau menyegarkan login itu. Pemeriksaan berjalan paling sering sekali setiap 5 menit. Pembacaan langsung yang usianya kurang dari 15 menit menggantikan pembacaan dari disk, dan barisnya lalu menampilkan Langsung dari OpenAI, diperbarui … lalu.

Login yang disimpan di keychain sistem, bukan di ~/.codex/auth.json, tidak dibaca: panel lalu menampilkan Tidak ada login ChatGPT Codex di ~/.codex/auth.json. Jalankan `codex login`. Jika OpenAI membatasi pengecekan dengan rate limit, aplikasi menunggu 15 menit sebelum mencoba lagi.

Saldo akun dari API key Anda

Enam provider dapat melaporkan kondisi akun Anda: saldo, kuota, atau jumlah yang sudah terpakai. Masing-masing dibaca dengan API key yang Anda tempel di Pengaturan → Token Meter, di bawah Penyedia akun. Tanpa key tersimpan, aplikasi tidak memanggil keychain dan, kecuali untuk Kimi saat Kimi Code CLI sudah masuk di mesin ini (lihat catatan di bawah), tidak membuat panggilan jaringan.

ProviderKey yang dibutuhkanYang ditampilkan baris
DeepSeekAPI key dari platform DeepSeek (halaman API keys)Saldo, dibagi menjadi saldo berbayar dan saldo bonus (granted)
MoonshotAPI key dari Moonshot / Kimi Open Platform, dengan Wilayah Internasional atau ChinaSaldo
KimiAPI key Kimi CodeKuota: jendela 7 hari dan jendela rate limit 5 jam
MiniMaxKey MiniMax Coding Plan, yaitu key yang diawali sk-cp-, dengan Wilayah Global atau ChinaKuota yang terpakai di paket, dalam persentase
OpenRouterAPI key dari openrouter.ai/keys, bukan management keyKuota jika key punya batas pengeluaran, jika tidak, pengeluaran sejauh ini
Z.aiAPI key coding plan Z.ai / BigModel Anda, dengan Wilayah Global atau ChinaKuota di paket coding GLM

Setiap key disimpan di credential store sistem Anda (Keychain macOS; di Windows build memakai Credential Manager, yang belum diperiksa) dan hanya dikirim ke API milik provider itu sendiri, dengan dua pengecualian yang dijelaskan di bagian Apa yang keluar dari mesin Anda. Panel menyatakan hal itu, dengan kata-kata yang menyebut macOS Keychain di kedua sistem: Kunci disimpan di macOS Keychain dan hanya dikirim ke penyedia tersebut. Tidak ada data rahasia yang ditulis ke file milik aplikasi. Yang disimpan hanya status apakah provider sudah diatur, wilayahnya, dan empat karakter terakhir key, sehingga panel bisa menampilkan Kunci tersimpan · …abcd. Jika macOS menolak akses Keychain, baris provider yang sudah Anda atur menampilkan Akses macOS Keychain diblokir sampai Anda menyimpan atau menghapus key atau me-restart aplikasi, daripada menunggu pembacaan yang tidak akan datang.

Format respons keenam provider ini belum dicek terhadap respons sungguhan, jadi sebuah baris bisa tidak menampilkan angka, atau menampilkan angka yang salah, sampai dicek. Anggap pembacaan ini belum diverifikasi.

Sebuah provider disegarkan maksimal sekali setiap 5 menit. Provider yang terkena rate limit ditahan selama 15 menit; provider yang menjawab Kunci ditolak, perbarui di Pengaturan ditahan sampai Anda mengganti key. Jika penyegaran gagal karena provider tidak dapat dijangkau atau sedang menerapkan rate limit, setelah pembacaan yang berhasil, baris tetap menampilkan angka lama dan menandainya Tidak dapat menyegarkan · pembacaan terakhir. Key yang ditolak atau balasan yang tidak terbaca membuang angka lama.

Kimi adalah satu-satunya provider yang bisa bekerja tanpa key yang ditempel: jika Kimi Code CLI sudah masuk di mesin ini dan tokennya belum kedaluwarsa, aplikasi membaca token itu dari ~/.kimi-code/credentials/kimi-code.json dan mengirimkannya ke api.kimi.com untuk membaca kuota Anda, tanpa toggle yang perlu diaktifkan. Aplikasi hanya membaca file itu dan tidak pernah menyegarkan tokennya, dan key yang Anda tempel diutamakan.

Di pane dan di tab

Angka token sebuah pane ada di barisnya di sidebar kiri, bukan di header pane atau di tab. Baris kedua menampilkan agent dan apa yang dipakai percakapan pane itu sendiri di Mac ini (sampai 30 hari terakhir), seperti Claude Code · 1.7M · $0.41, dengan harga list dan bukan yang ditagihkan kepada Anda. Baris workspace menampilkan total dari pane-pane yang percakapannya diketahui. Pane yang percakapannya tidak diketahui tidak menampilkan apa pun, begitu pula pane Gemini: tidak ada angka yang ditebak.

Pada pane yang menjalankan Claude Code atau Codex, sebuah pemberitahuan muncul saat persentase yang diterbitkan paket itu sendiri mencapai 80% (mungkin sebaiknya Anda mulai menyelesaikan) dan lagi di 95% (sebaiknya berhenti). Pemberitahuan ini hanya berasal dari persentase nyata, jadi memerlukan batas yang dijelaskan di atas tersedia; agent lain tidak pernah mendapatkannya. Pemberitahuan ini hanya informasi: ditutup dengan ✕, dan tidak menjeda agent maupun mengetik ke pane. Saat baris terakhir Claude Code dalam sebuah percakapan adalah batas paket dengan waktu reset yang masih di depan, header pane menampilkan Menunggu paket diatur ulang beserta waktunya.

Hal-hal ini berasal dari kode dan pengujiannya. Semuanya belum dicoba di mesin sungguhan.

Apa yang keluar dari mesin Anda

Jumlah token dan biaya dihitung di mesin Anda, dan transkrip tidak pernah dikirim ke mana pun. Batas Codex yang dibaca dari disk juga bersifat lokal. Ponsel yang sudah dipasangkan dapat membaca persentase paket Anda dari Mac ini, tidak pernah saldo. Tiga hal dapat membuat permintaan jaringan, dan masing-masing hanya menuju provider-nya sendiri:

  • Tampilkan persentase batas sebenarnya untuk Claude → ke api.anthropic.com, dengan token login milik Claude Code sendiri.
  • Batas Codex langsung → ke chatgpt.com, dengan login yang dipakai oleh Codex sendiri.
  • Penyedia akun → ke API milik provider itu sendiri, dengan key yang Anda simpan untuknya. Ada dua kasus tambahan. Untuk Kimi, jika Anda tidak menyimpan key dan Kimi Code CLI sudah masuk di mesin ini, aplikasi mengirim token CLI itu ke api.kimi.com, tanpa key dan tanpa toggle. Key MiniMax yang ditolak di wilayah Global dicoba ulang di host China milik MiniMax, api.minimaxi.com. Pengalihan (redirect) ditolak sepenuhnya, jadi sebuah key hanya bisa sampai ke host provider tempat key itu disimpan.

Untuk traffic jaringan lain dari aplikasi, lihat Telemetry: what the app sends.

Tanya AI tentang MXterm Pro

Buka jawaban langsung di ChatGPT, Claude atau Perplexity, berdasarkan halaman ini. Jawaban ditulis oleh asisten, bukan kami, jadi periksa sumber yang dikutipnya.

Pertanyaan yang dikirimDari mana Token Meter mendapat angkanya, dan bagaimana membaca chip di bilah judul dan popover-nya?