<img src="https://github.com/Javis603/token-monitor/raw/v0.21.0/github/assets/app.png" alt="Token Monitor logo" width="120">
<h1>Token Monitor</h1>
<em>すべての AI コーディングツールのリアルタイム使用量を一画面で、複数デバイス間で同期。</em>
<a href="https://github.com/Javis603/token-monitor/releases"><img src="https://img.shields.io/github/v/release/Javis603/token-monitor?include_prereleases&style=flat-square&label=release&color=22c55e" alt="最新リリース" /></a>
<a href="https://github.com/Javis603/token-monitor/releases"><img src="https://img.shields.io/github/downloads/Javis603/token-monitor/total?style=flat-square&color=22c55e" alt="総ダウンロード数" /></a>
<img src="https://img.shields.io/badge/Windows-10%2B-0078D4?style=flat-square" alt="Windows 10 以降" />
<img src="https://img.shields.io/badge/macOS-14%2B-0A84FF?style=flat-square&logo=apple&logoColor=white" alt="macOS 14 以降" />
<img src="https://img.shields.io/badge/Linux-x64-64748b?style=flat-square&logo=linux&logoColor=white" alt="Linux x64" />
<a href="https://discord.gg/HmdNVVvw5P"><img src="https://img.shields.io/discord/1344259784219689031?color=5865F2&label=Discord&logo=discord&logoColor=white&style=flat-square" alt="Discord"></a>
<a href="https://github.com/Javis603/token-monitor/raw/v0.21.0/LICENSE"><img src="https://img.shields.io/badge/license-MIT-A855F7?style=flat-square" alt="ライセンス: MIT" /></a>
<img src="https://github.com/Javis603/token-monitor/raw/v0.21.0/github/assets/demo.gif">
Claude Code、Codex、Hermes Agent、OpenCode、OpenClaw、Cursor、Antigravity、Cline など、さまざまな AI コーディングツールのリアルタイムトークン使用量と AI ツール制限を表示するデスクトップウィジェットです。複数デバイス間のリアルタイム同期、使用履歴トレンド、ツール・デバイス・モデル・セッション別の内訳表示に対応しています。
Token Monitor は トークン使用量、アカウント制限、セッション詳細 を個別にサポートします。
| Logo | ツール | データパス | トークン使用量 | AI ツール制限 | セッション詳細 |
|---|---|---|---|---|---|
| Claude Code | ~/.claude/projects/, ~/.claude/transcripts/ |
✅ | ✅ | ✅ | |
| Codex | ~/.codex/sessions/ |
✅ | ✅ | ✅ | |
| OpenCode | ~/.local/share/opencode/ |
✅ | ✅ | ✅ | |
| Hermes Agent | $HERMES_HOME/state.db または ~/.hermes/state.db |
✅ | — | — | |
| OpenClaw | ~/.openclaw/agents/ |
✅ | — | — | |
| Cursor | ~/.config/tokscale/cursor-cache/(Cursor 同期で更新) |
✅ | ✅ | — | |
| Antigravity | ~/.config/tokscale/antigravity-cache/(Antigravity 同期で更新) |
✅ | ✅ | — | |
| Cline | VS Code globalStorage tasks (.../saoudrizwan.claude-dev/tasks/) |
✅ | — | — | |
| Kimi CLI / Kimi Code | ~/.kimi/sessions/, ~/.kimi-code/sessions/ (KIMI_CODE_HOME) |
✅ | — | — | |
| Qwen CLI | ~/.qwen/projects/ |
✅ | — | — | |
| Grok Build | $GROK_HOME/sessions/ または ~/.grok/sessions/ |
✅ | ✅ | — | |
| GitHub Copilot CLI | ~/.copilot/otel/ |
✅ | ✅ | — | |
| Pi | ~/.pi/agent/sessions/, ~/.omp/agent/sessions/ (Oh My Pi) |
✅ | — | — | |
| Zed | ~/.local/share/zed/threads/threads.db |
✅ | — | — | |
| Kilo Code | VS Code globalStorage tasks (.../kilocode.kilo-code/tasks/) — Linux およびリモート/WSL のみ |
✅ | — | — | |
| MiMo Code | ~/.local/share/mimocode/mimocode.db |
✅ | — | — | |
| ZCode | ~/.zcode/projects/ |
✅ | — | — | |
| Kiro | ~/.kiro/sessions/cli/, Kiro IDE globalStorage および kiro-cli DB |
✅ | ✅ | — | |
| CodeBuddy | ~/.codebuddy/projects/ + IDE / VS Code 拡張ログ |
✅ | — | — | |
| WorkBuddy | ~/.workbuddy/projects/, ~/.workbuddy/workbuddy.db |
✅ | — | — | |
| DeepSeek | DeepSeek API キー(DeepSeek API で残高取得) | — | ✅ | — | |
| Minimax | Minimax API キー(Minimax API で Token Plan クォータ取得) | — | ✅ | — |
多くの使用量モニターは、実行しているマシン上でのみ役立ちます。Token Monitor はマルチデバイス作業のために設計されています。各デバイスがローカルログを監視し、hub にサマリーを送信すると、接続されたすべてのウィジェットがトークンの変化をほぼリアルタイムで確認できます。
| 制限ビュー | デバイスビュー | モデルビュー |
|---|---|---|
![]() |
![]() |
![]() |
| セッションビュー | セッション詳細 | サービスステータス |
|---|---|---|
![]() |
![]() |
![]() |
| 使用ダッシュボード — 概要 | 使用ダッシュボード — トレンド |
|---|---|
![]() |
![]() |
デフォルト。hub、agent、設定は不要です。
npm install
npm start
すべてのデバイス(および headless agent)が接続する hub を 1 つ 選びます。各デバイスでウィジェットを開き、設定 → マルチデバイス同期 でモードを選択します。ウィジェットがこのデバイスの使用量を自動的にアップロードします。ウィジェットがないマシンでのみ npm run agent を実行してください。
常時起動のマシンで 設定 → マルチデバイス同期 → Host hub on this device を選択します。ウィジェットが secret を生成し、LAN URL(Tailscale/ZeroTier 含む)を表示します。他のデバイスでは Connect to a hub に URL と secret を貼り付けます。
Token Monitor が実行中の間のみ hub が動作します。アプリを終了すると(ウィンドウを閉じるだけではなく)hub が停止し、接続されたデバイスが切断されます。
# 常時起動のマシンで
cp .env.example .env
# TOKEN_MONITOR_SECRET を非公開の値に設定してから:
npm run hub
ワンクリックデプロイでは TOKEN_MONITOR_SECRET の入力を求められます。手動デプロイ:
cd worker
npm install
npx wrangler login
npx wrangler secret put TOKEN_MONITOR_SECRET
npx wrangler deploy
デプロイ URL を各デバイスの 設定 → マルチデバイス同期 に貼り付けます。iOS ウィジェットは worker/README.md、HTTP API は docs/API.md を参照してください。
releases ページ からダウンロードできます。リリースは署名されていません。macOS (arm64)、Windows (x64)、Linux x64 AppImage の初回起動手順はリリースノートに記載されています。その他のプラットフォームは npm start でソースから実行します。
アプリの状態は OS のユーザーデータディレクトリに保存されます。アプリと一緒にそのフォルダを削除すると完全にアンインストールできます。
| プラットフォーム | パス |
|---|---|
| macOS | ~/Library/Application Support/Token Monitor/ |
| Windows | %APPDATA%/Token Monitor/ |
| Linux | ~/.config/Token Monitor/ |
リリースは署名されていないため、自分でビルドできます。Node.js 22.13+ と 対象 OS が必要です(electron-builder は macOS .dmg と Windows .exe のクロスビルド不可)。
npm install
npm run dist:mac # macOS arm64 .dmg → dist/
npm run dist:win # Windows x64 installer .exe → dist/
npm run dist:linux # Linux x64 AppImage → dist/
npm run pack # インストーラーなしのアプリディレクトリ(ローカルテスト用)
出力は dist/ に生成されます。その他のプラットフォームにはパッケージング対象がないため、npm start で実行してください。
モード A — ローカル(デフォルト、設定不要)
ウィジェット (Electron) ──▶ tokscale ──▶ ~/.claude, ~/.codex, $HERMES_HOME
モード B — 同期(オプトイン、マルチデバイス)
デバイス A agent ──▶
デバイス B agent ──▶ hub ──▶ 任意のデバイスのウィジェット
デバイス C agent ──▶
ウィジェットは 設定 → マルチデバイス同期 に応じてローカル/同期を選択します。hub は npm run hub、Cloudflare Worker、またはウィジェット内 Host モードで実行できます。同期モードでは hub が SSE で集計統計をプッシュし、1 台の変更が数秒以内に他のデバイスに反映されます。
ウィジェットヘッダーの ⚙ ボタンで設定パネルを開きます。
settings.json を直接編集(allTimeSince など)ヘッダーのピンボタンで「常に前面」を切り替えます。
.env)agent と hub には UI がありません。プロジェクトルートの .env(.env.example をコピー)で設定します。
TOKEN_MONITOR_HUB_URL= # 同期に必須 — Worker URL または http://<lan-ip>:17321
TOKEN_MONITOR_SECRET= # hub と同じ secret
TOKEN_MONITOR_DEVICE_ID= # 任意 — デフォルトはホスト名
TOKEN_MONITOR_CLIENTS= # 任意 — デフォルトは全ツール;空にすると追跡無効
TOKEN_MONITOR_HISTORY_ENABLED= # 任意 — デフォルトは有効;0 でトレンド履歴をスキップ
TOKEN_MONITOR_LIMITS_ENABLED= # 任意 — デフォルトは有効;0 で CLI プローブをスキップ
TOKEN_MONITOR_LIMIT_PROVIDERS= # 任意 — claude,codex,cursor,antigravity,opencode,deepseek,minimax,grok,copilot,kiro
ウィジェットは同じ env を初回実行のデフォルトとして読み込み、その後 GUI 設定で上書きします。
CLI フラグ(--hub=、--secret=、--device=、--clients=、--history=、--limits=、--limitProviders=)は env より優先されます。
一回限りの実行例:
npm run agent -- --clients=claude,codex,opencode --once
hub と agent はサマリーフィールドのみを送信します。
tokscale がコストを返す場合)生の AI ログ、プロンプト、ソースコード、会話内容、OAuth・トークン・メール・プロバイダー生レスポンスは送信しません。.env、data/、node_modules/ は gitignore されます。
Issue や PR を歓迎します。プロジェクトの規約、アーキテクチャノート、コマンドリファレンスは AGENTS.md にあります — コーディングエージェント向けに書かれていますが、コントリビューターガイドとしても使えます。
$ claude mcp add token-monitor \
-- python -m otcore.mcp_server <graph>