--- title: "Claude Codeの使用料金を可視化するCLIツール「ccusage」を作った" date: '2025-05-29' isPublished: true lang: 'ja' --- ## 追記(2025-07-18) 多くの方にみていただきありがとうございます!! この記事のものと実際の実装はすでに少し異なっているので以下の記事も併せてご覧ください。 /blog/2025-06-18-zenn-aad087994f26a7-ja そしてccusageの解説動画もあります!併せてご覧ください https://www.youtube.com/watch?v=Ak6qpQ5qdgk https://www.youtube.com/live/APlwZrf7eUM?si=tOzHNG61GaSHYVz-&t=4190 ## はじめに みなさん、Claude Code使ってますか?私は毎日使っています。 Vibe Codingガチアンチだったのですが、Claude Code + Sonnet 4の組み合わせがあまりにも強力すぎて、今では手放せません。 ところで Claude Max プラン、最高ですよね。月額$100で使い放題。 https://www.anthropic.com/news/max-plan でも、ふと思いませんか? 「これ、従量課金だったらいくらかかってたんだろう...?」 そんな疑問を解決し、「Maxプランでこんなに得してる!」とニヤニヤするためのCLIツール「ccusage」を作りました。 https://github.com/ryoppippi/ccusage ## きっかけ このツールを作るきっかけになったのは、[@milliondev](https://note.com/milliondev)さんの以下の記事です。 https://note.com/milliondev/n/n1d018da2d769 この記事では、Claude Codeがローカルに保存しているJSONLファイルをDuckDBで分析する方法が紹介されています。 ただ、毎回DuckDBでクエリを書くのは少し面倒ですし、サクッと使用状況を確認したいと思い、CLIツールとして実装しました。 ## ccusageでできること ### 1. インストール不要で即実行 ```bash # npxで実行 npx ccusage@latest # bunxでも実行可能 bunx ccusage ``` インストールしなくても、上記のコマンドを実行するだけですぐに使用状況を確認できます。 ### 2. 日別レポート 日付ごとのtoken使用量とコストを表形式で表示します。 ```bash ccusage # または ccusagge daily ``` 実行結果の例: ``` ╭──────────────────────────────────────────╮ │ │ │ Claude Code Token Usage Report - Daily │ │ │ ╰──────────────────────────────────────────╯ ┌──────────────────┬──────────────┬───────────────┬──────────────┬────────────┐ │ Date │ Input Tokens │ Output Tokens │ Total Tokens │ Cost (USD) │ ├──────────────────┼──────────────┼───────────────┼──────────────┼────────────┤ │ 2025-05-30 │ 277 │ 31,456 │ 31,733 │ $17.45 │ │ 2025-05-29 │ 959 │ 39,662 │ 40,621 │ $16.37 │ │ 2025-05-28 │ 155 │ 21,693 │ 21,848 │ $8.33 │ ├──────────────────┼──────────────┼───────────────┼──────────────┼────────────┤ │ Total │ 11,174 │ 720,366 │ 731,540 │ $336.17 │ └──────────────────┴──────────────┴───────────────┴──────────────┴────────────┘ ``` ### 3. セッション別レポート プロジェクトとセッションごとの使用量を確認できます。どのプロジェクトが一番コストがかかっているかが一目瞭然です。 ```bash ccusage session ``` ### 4. 期間フィルタリング 特定の期間のデータだけを表示できます。 ```bash # 2025年5月25日から5月30日までのデータを表示 ccusage --since 20250525 --until 20250530 ``` ### 5. JSON出力 プログラムで処理しやすいJSON形式での出力もサポートしています。 `jq`などのツールと組み合わせて、さらに詳細な分析が可能です。 ```bash ccusage daily --json | jq .total ``` ## Claude Codeのデータ構造 Claude Codeは使用履歴を`~/.claude/projects/`以下にJSONL形式で保存しています。各行には以下のような情報が含まれています: - メッセージの全て - タイムスタンプ - 入力token数 - 出力token数 - 使用モデル - プロジェクト名 - セッションID などなど... ccusageはこれらのファイルを読み込んで集計し、見やすい形で表示します。 ## コスト計算 ~~料金計算は[litellmが提供しているデータ](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json)を実行時に参照し、モデルごとのtoken単価を取得しています。これにより、最新の料金体系に対応できます。~~ ~~また、モデルの種類によってtoken単価が異なりますが、`ccusage`ではモデルごとに集計し、合計コストを算出しています。~~ ~~そのため、元の記事よりもより正確なコスト計算が可能です。~~ 追記: コストの計算は、logにある`costUSD`をそのまま足し合わせたものなので、モデルごとのtoken単価を参照する必要はありませんでした。現在はその機能は削除されています。 ## 制限 `ccusage` はローカルのClaude Codeの使用履歴ファイルを直接読み込みコストを計算します。そのため、複数マシンでClaude Codeを使用している場合、各マシンの履歴ファイルを統合する必要があります。 もしアカウント全体での使用状況を把握したい場合は、Dropboxなどを使用して履歴ファイルを同期することをおすすめします(もちろんこれは公式に推奨されている方法ではないため、自己責任で行ってください)。 ## まとめ ぜひ一度お試しください! ```bash npx ccusage@latest ``` そして、できたら [`#ccusage`](https://x.com/search?q=%23ccusage&src=typed_query) のハッシュタグをつけて、あなたの使用状況をTwitter/BlueSkyにシェアしてください笑 ## リンク https://github.com/ryoppippi/ccusage https://www.npmjs.com/package/ccusage ## 謝辞 このツールの開発にインスピレーションを与えてくださった[@milliondev](https://note.com/milliondev)さんに感謝します。元記事のDuckDBを使った分析手法は非常に勉強になりました。 ## 余談 ![usage](./1.png) えー、6日ですでに362ドル使ってますね...。 ## 追記 このツールは97%ほどはClaude Codeに書いてもらいました。自分は環境構築とやりたいことを指示して、ライブラリのドキュメントを渡して、自分でやった方が早そうな軽微な修正をし、gitのコミットメッセージを整え、npmへの公開作業を行っただけです。 lintやformatter、テストを適切に設定していれば、それにそってClaude Codeが自律的にコードを記述、修正してくれるので、非常に楽でした。 Vibe Codingアンチでしたが、時代が変わっていくのをこの1週間で実感しています。 ## 追記2 継続的な開発を支援してくださる方は、ぜひGitHub Sponsorsでのサポートをお願いします! https://github.com/sponsors/ryoppippi