シェルスクリプトから Mac アプリへ:Mole の成長
何年ものあいだ、私は Mac のゴミ掃除だけを仕事にする個人用のシェルスクリプトを手元に置いていました。軽快に動くマシンが好きなので、ある人が庭を手入れするように、500 行から 2,000 行を超えるまで磨き続けていました。2025 年 10 月、ディスクがまたいっぱいになりました。有名なクリーナーをいくつか試してもほとんど効果がなく、自分のスクリプトを走らせると一気に数十ギガバイトが消えていくのを見ました。これは共有する価値があると思いました。
そのとき私は三亜で休暇中で、ホテルのプールサイドに座り、このスクリプトをちゃんとしたオープンソースの CLI ツールにしようと決めました。名前が必要でした。モグラ(mole)は前脚が強く、地下にトンネルを掘り、地中のものを見つけるのが得意な小さな動物です。まさにスクリプトの仕事そのものでした。macOS の隅々に溜まるゴミを深く掘り出す。そうして Mole になりました。最初のバージョンのバナーは "can dig deep to clean your Mac" と書いてあり、今もそのままです。
コミュニティがやってくれたこと
数百人くらいの小さなツールになるだろうと思っていました。半年が経つ頃には、リポジトリは GitHub で 50,000 スターを超えていました。スターより大事だったのは、ユーザーが私の知らないクリーンアップ先をおよそ 800 件の issue で教えてくれ、機能 PR が約 300 件届き、世界中で約 120 人の開発者がコントリビューターになってくれたことです。開発者マシンごとに捨ててよい成果物の置き場所は違い、コミュニティが一人では到底たどり着けない広さまで地図を描いてくれました。
その広さが、より難しい教訓も生みました。新しいクリーンアップ対象は、そのまま新しい破壊的ミスの場所でもあるということです。パスのカタログだけでは足りません。共有のパスガード、保護場所、稼働中プロセスのチェック、タイムアウト、レビュー、そして拒否すべきケースを固定するテストが必要でした。コミュニティの規模はカバレッジを増やしただけでなく、安全モデルを元のスクリプトより一般化するよう迫りました。
規模を実感した瞬間は、請求書でした。README にスクリーンショットを 2 枚載せ、Vercel の CDN 経由で配信していました。ある週、帯域の上限を超えてしまい、2 枚の画像だけで Vercel に 80 ドルを払うことになりました。
なぜ Mac アプリなのか
早い段階から、ユーザーは同じ要望を書き続けていました。両親に使わせたい、妹にも、でもターミナルは絶対に開かない、と。CLI がデスクトップ版を背負えるほど成熟していないと感じ、何ヶ月も先延ばしにしていました。2026 年の春にはその段階に達したので、週末をいくつか使って Mac アプリを作り、2026 年 5 月 11 日の夜に公開しました。Mole for Mac です。Mac 2 台まで、生涯アップデート、ずっとテストしてくれていたユーザーへの感謝として早期特価でした。
アプリを、ただスクリプトを実行するボタンにはしたくありませんでした。ファイルを探す段階と削除する段階を分け、途中でキャンセルできるようにし、必要な権限を説明する。スキャン中もウィンドウががたつかず、シェルコマンドを読んだことがない人でも、削除前に対象と戻せる範囲を確認できる必要がありました。CLI で培った知識をもとに「何を探すか」を決め、アプリではその過程を目で確認し、途中で止められるようにしました。
惑星たち
アプリはメニューバーのユーティリティにクリーンボタンを足すだけでもよかったし、それで十分売れたでしょう。でも世の中には AI 生成の粗悪ソフトがすでに多すぎます。せっかく手をかけるなら、タイムラインを汚すもう一つのものではなく、前に座っていられる心地よいものにしたかったのです。
子どものころから惑星を眺めるのが好きで、10 年前、フロントエンドを覚えた直後に一番やりたかったのは WebGL で惑星を描くことでした。このアプリを作って、ようやくその二つが重なりました。五つの機能それぞれに、仕事の性格に合う惑星を与えました。
- Clean は地球:山の雨が古い埃を洗い流す。
- Software は火星:赤い砂が古い痕跡を埋める。
- Optimize は水星:太陽にいちばん近く、いちばん速く飛ぶ。
- Analyze は木星:もっとも広い眼。
- Status は太陽:眠らない光。
テクスチャは天文画像から来ており、地球は NASA の Blue Marble を基にしています。各惑星がしっくり来るまで、テクスチャは 10 回以上差し替えました。自転の向きと相対的な速さは実在の天体に合わせ、操作完了時の小さな飛行エフェクトもそうです。厳密に言えば、これらはモグラとはほとんど関係がありません。むしろ、土を掘る小さな動物がトンネルから顔を上げて、とても大きな空を見上げ、静かにしている、そんな感じに近いです。
公開の夜
夜 10 時ごろ公開しました。友だちがリツイートしてくれ、やがてスマホがおよそ 10 秒に 1 回、購入通知で震え始めました。フランスやドイツからの注文が届き、それまで受け取ったことのない通貨も並びました。iPhone は通知を表示するだけで熱くなり、バッテリーがどんどん減っていきました。眠るためにメール通知を切っても、朝まで購入は続いていました。CLI が役に立ったからと、アプリを買ってくれた人もかなりいたようです。
Mac アプリには、まだ足りないところがたくさんあります。この小さなおもちゃを買い、少しずつ仕上げていくのを待ってくれる人たちに感謝しています。結果を急がず、自分のペースで育てていくのが好きです。Mole は個人用スクリプトからオープンソースの CLI、そして有料アプリになるまで何年もかかりました。その間に重ねた改良と、世界中の開発者との友情が、売上の数字よりも大切なものとして残っています。