本記事では、「OSS応援企画」として記事の最後に「応援ボタン」を設置しています。1回の応援につき、Findyが100円をOSS団体などへ寄付し、エンジニアの成長とOSSの発展を応援する取り組みです。開発者の想いや取り組みに共感した気持ちが、OSSの支援にもつながっていく、そんな前向きな循環をFindyは目指しています。「応援ボタン」は、1日1回まで押すことができます。記事を読んで「いいな」と感じたら、ぜひボタンを押してあなたの応援の気持ちを届けてください。
こんにちは、ryoppippi(@ryoppippi)です。色々手を出す飽き性なエンジニアです。最近はccusageというOSSをつくっています。ccusageはちょうど1周年を迎え、おかげさまで様々な人に愛されるOSSに育ったことに感謝申し上げます。
この1年の歩みはAIの発展と共にありました。Claude Codeでプロトタイプが一瞬でできてしまう驚きから、AIの使用が増加することによってIssueやPRが増えるいわゆるAI Slop問題、バーンアウト、そしてそれを乗り越えた過程の中で、何をやるか、何をやらないかを決める必要がありました。本記事では、ccusageが伸びる前のOSSに対する向き合い方と、この1年を通して感じた絶望、変化した価値観、そしてOSSへの向き合い方がどう変わったかについてお話していきたいと思います。
自分自身の技術倫理の基準に反したものを実装しない
ccusageはジョークツールとして2時間でサクッとつくったものが元です。去年6月に「ccusageのログを見せることで稟議を通した」という声を聞いてから、ジョークツールとはいえコストが大幅に変わらないように気をつけています。OSSとして信頼が大事です。
例えば、類似のOSSにはClaude CodeのPrivate APIを叩くものもあります。APIを叩けばできることは増えますが、自分はそこに乗れませんでした。仕様変更にも弱いですし、ベンダーの意図しない方法で負荷をかけることにもなる。ccusageはあくまでローカルのログを読むツールでありたい。ユーザーのログを外に出さないこと、意図しないAPIに依存しないこと、機密情報を預かる事業にしないことは、全部同じ線の上にありました。
技術倫理は、自分にとって窮屈な制約ではありません。ユーザーからの信頼を損ねないために必要な線引きです。
「セキュリティが心配だからDeno版に移植する」という発言を見かけて一悶着あったこともありました。それ以来、trusted publishの設定を整え、socket.devのスコアを維持するためにできることをすべてやり、テストとlintもかなり几帳面にやっています。またログを絶対に外部に出さないように気をつけています。
Vibe coding向けのツールの中では、かなり過剰なほどセキュリティに気を使っているつもりです。だからこそ、雑に疑われることにはしんどさもありました。
JSで配っていた頃は、バンドルサイズもかなり気にしていました。以前ブログにも書いたのですが、CLIツールは依存パッケージをできるだけゼロにして、インストールを速くし、ユーザーの環境を汚さず、npxで気軽に実行できることが大事だと思っていました。ccusageもminifyなしで1MBを超えないようにしていました。これも結局、ユーザーの利便性と信頼のためです。
後述しますが、貴重なログデータを扱っているのでメンテナーを増やすこともしませんでした。これが自分の首を絞めているわけですが。
色々な人と相談をし、ccusageを商用化することも考えましたが、機密情報の入ったログを預かるリスクと天秤にかけ、見送りました。ユーザーへの信頼を損ねるぐらいならこのままでいようと考えたわけです。
ただの趣味で始めたMITライセンスのOSSにここまでやるのも変な話ですが、信頼は積み上げるしかない。
ここまでは全部、自分が納得してやっていたことです。OSSは巨人の肩に乗る文化であり、自分も誰かが乗れる肩をつくる側でいたいと思っていました。ユーザーに信頼されるOSSでありたくて、セキュリティも、バンドルサイズも、ログの扱いも、できることはかなりやってきました。だからこそ、届く声にもできるだけ応えようとしていました。問題は、その姿勢がそのまま自分を追い詰める方向に働いたことでした。
絶望するまで
以前FindyさんのConferenceで登壇したとき、いかにユーザーの声を聞いて最速でアップデートし続けることでccusageが伸びていき、チャンスを掴んでいったかをお話しました。この発表では基本的にポジティブな話をしたわけですが、このくらい大規模なOSSになるとネガティブな側面も大きくなってきます。
単なるジョークツールとして始めたのに、「これは不正確」みたいなIssueが次々と届くようになりました。さらにAIによって自動生成されたと明らかにわかるIssue・PRの物量も凄まじく、Claude Code自体の度重なる破壊的アップデートへの対応も重なって、夜中の3時まで毎日開発する日々が続きました。数時間おきにXでエゴサーチしてバグをリアルタイムで検知していたので、寝て起きたらIssueに多数のコメントが溜まっている、なんてことも日常でした。
例えば、Gemini 2.5 Proでつくった分析レポートを統合したIssueが来たことがあります。内容の良し悪し以前に、AIでつくられた長文のissueが似たような調子で何本も届くこと自体がしんどい。もっともらしい文章を読むだけで時間が溶けますし、本当に今やるべきかを判断するコストはすべてメンテナー側に乗ります。
もちろんAI生成だから全部ダメ、という話ではありません。Codexが起票したfull ICU locale dataのバグのように、再現手順や原因が具体的で価値のあるIssueもあります。ただ、つくる側のコストが低いぶん、本当に壊れているのか、直すべきなのかを読む側が判断し続けるのはかなり辛いです。
PRも同じです。Copilotがつくった--since/--untilの修正PRや、Claude Codeでつくった「Claudeが入っていない環境でall viewが落ちる」修正、monthly/weeklyのall-agent tableを直すPRのように、実際にmergeしたものもあります。AIを使ったPR自体は悪ではありません。自分も使っています。
一方で、「いや、その機能いるか?」というPRも大量に来ました。ターミナルに棒グラフを出す、別モデルだったらいくらかを比較する、トークン数をK/M/B表記にする、リサイズに追従する。正直、自分のつくりたいccusageには要りません。でも、それを入れた瞬間に、オプション名、表示崩れ、JSON互換性、ドキュメント、バイナリサイズの管理,安全性の担保、ユーザーサポートまで全部こちらの責任になります。欲しい人が1人いることと、プロジェクトが背負うべき機能であることは全然違います。
自分がAI Slopと呼んでいるのは、単に「AIが書いた低品質なコード」のことではありません。誰が責任を持つのかわからないまま、もっともらしいIssueやPRが大量に投げ込まれ、判断・検証・却下・修正のコストだけがメンテナーに残る状態のことです。無責任なPRでも、断る側には負荷があります。「じゃあforkする」と言われることもある。善意っぽいものを断るのは、悪意を無視するよりずっと疲れます。
精神的にきつかったのは批判です。「ccusageのここがダメ!」という発信、better-ccusageやccusage-xxといった名前のOSS、「ccusageは遅い!不正確だから使わないほうがいい」というポスト。当初は皆喜んでccusageをシェアしていたのに、気がつけば悪い発言ばかりが目立つようになっていました。名指しで自分の我が子を非難されるのは辛かったです。
しかも基本的にボランティアなのに。
大きな転機は、10月にClaude Codeがオフィシャルな/usageコマンドを出したことです。
自分としてもユーザーはオフィシャルなものに移行して欲しいと思い始めましたし、近いうちにアーカイブしようと考えていました。
実際この発表をしていた2月時点では、私はすっかりバーンアウトしていました。GitHubでスポンサーをしてくれる方がいらっしゃって月に数万円ほどいただけていたものの、仕事ではないccusageに1日6〜8時間を取られIssueに埋もれる日々。すっかり疲弊し切っていました。

俺のOSSなのだから
2026年5月、もろもろがひと段落して、ようやく立ち止まって考えることができました。
自分はなぜここまで疲弊していたのか。
betterがついた自分のOSSができることが苦痛でした。批判されるのが怖かった。GitHubを開くたびにAI生成された未読のIssueとPRが積み上がっていく。対応しなければ不誠実な気がするし、閉じれば冷たい人間になった気がする。欲しくない機能でも「forkするぞ」と言われると折れてしまった。つまり、ユーザーとコントリビューターの顔色を過度に窺って疲弊していたわけです。自分のOSSなのに、自分が一番「ccusageはこうあるべき」を決められていなかった。
でも、そもそも自分がccusageをつくったのは、自分が欲しかったからです。2時間で書いたジョークツール。それが原点です。全部のIssueに応えなくても、欲しくない機能を入れなくても、ccusageが突然価値を失うわけではありません。better-ccusageが出たとして、それで困るのは誰でしょうか。ccusageが存在することでエコシステム全体が良くなるなら、それで十分です。
そう考えると、少しずつ肩の力が抜けてきました。
ccusageは俺のOSSです。誰かに怒られるから機能を入れるのではなく、自分がいいと思うものだけをつくる。それだけです。この当たり前のことに、1年かかりました。
OSSを自分の手に取り戻す
開き直ってから、やることは明快でした。
まず最初に取り組んだのは、メンテナーの整理です。これまでに貢献してくれた数人以外は自動でIssue/PRをcloseする設定を入れました。5月11日時点で100件開いていたIssueは13にまで減り、88開いていたPRを0にしました。今はGitHubを開くたびに未読が増えていることもありません。冷たいようですが、必要なものだけ見ればいい。もうそれでいいと思っています。
また、TypeScriptの実装をCodexにRustへ書き換えさせました。速度が100倍以上速くなりました。当然既存のAI生成のPRは全部無効です。以前はcontributionしやすい構成やbundle sizeをかなり気にしていましたが、Nixも入れて、開発環境もビルドも自分が一番扱いやすい形に寄せました。やりたい放題です。
以前は責任を感じて、PRのコードを全部読んで、自分で意思決定し、実装まで背負おうとしていました。今はAI codingをもっと使っています。特にCodexのgoalで実装を進めるのは楽です。何を入れるかは自分で決める。でも、実装の重さまで全部抱えなくていい。
誤算だったのは、Rustにしたことで興味を持ってくれる人が増えたことです。ubugeeeiさんをメンテナーとして迎え入れることもできました。機密情報の入ったログを扱うOSSなので、メンテナーを増やすことにはずっと慎重でしたが、孤独だったメンテナンスにようやく仲間ができました。
バイナリサイズは大きくなったけど、Rust製としては小さいです。なぜかダウンロード数まで増えていて、自分でも驚いています。こだわりを捨てて利便性を得て、自分の手にOSSを戻しました。
それでも、OSSは世界を広げてくれた
ccusageはその特性上SNS映えするものでした。口コミで広まっていき、今ではトークン消費を計測するためのデファクトツールと言ってもいいほどになりました。さまざまな人がスクショをシェアして楽しんでいる様は、活動の励みになっています。
ccusageの知名度とともに仕事や登壇の機会にも恵まれました。
Findyさん、TECH WORLDさんをはじめとする日本のメディアだけでなく、イギリスやSF、韓国等海外のMeetupを訪れる際に自分のことを知ってくれる人がいたようでとても嬉しかったです。
現職にたどり着いたのもccusageに目をつけてくれた人たちのおかげです。2025年初め頃まで1年以上無職で職探しに苦労をしていた頃からすると、人生がガラリと変わりました。
加えて、多くのGitHubスポンサーやコントリビューターと繋がれたことも財産です。
いただいたスポンサーの一部は若い開発者や自分が使っているライブラリの作者へと還元しています。自分と同じようにものづくりを継続してくれる人の支えになればいいなと思っています。
メンテナンスは大変なのですが、自分の世界を大きく広げてくれたことは間違いありません。関わってくれたすべての人に感謝しています。
ものづくりは楽しいものだ
GitHubを開くのが苦痛だった時期があります。今はそうじゃない。
やらないことを決めるのは、逃げではありません。技術倫理も、公正さも、ユーザーへの配慮も、今でも大事です。ただ、それを全部ひとりで無理して背負わなくてもよかった。自分の中の線引きを信じて、OSSとの付き合い方を見直して初めて、ものづくりの楽しさが戻ってきました。
ccusageを通して、OSSとの付き合い方を自分の手に戻せた気がしています。これからも、やらないことを決めながら、自分がいいと思う形でOSSを続けていきます。

