# シェルスクリプトから Mac アプリへ：Mole の成長

> 個人用の掃除スクリプトが、オープンソース CLI、より厳格な安全モデル、見える中断可能な作業向けのネイティブアプリになった経緯をたどります。

Published: 2026-05-11 | Updated: 2026-08-07

何年ものあいだ、私は Mac のゴミ掃除だけを仕事にする個人用のシェルスクリプトを手元に置いていました。軽快に動くマシンが好きなので、ある人が庭を手入れするように、500 行から 2,000 行を超えるまで磨き続けていました。2025 年 10 月、ディスクがまたいっぱいになりました。有名なクリーナーをいくつか試してもほとんど効果がなく、自分のスクリプトを走らせると一気に数十ギガバイトが消えていくのを見ました。これは共有する価値があると思いました。

そのとき私は三亜で休暇中で、ホテルのプールサイドに座り、このスクリプトをちゃんとしたオープンソースの CLI ツールにしようと決めました。名前が必要でした。モグラ（mole）は前脚が強く、地下にトンネルを掘り、地中のものを見つけるのが得意な小さな動物です。まさにスクリプトの仕事そのものでした。macOS の隅々に溜まるゴミを深く掘り出す。そうして [Mole](https://github.com/tw93/mole) になりました。最初のバージョンのバナーは "can dig deep to clean your Mac" と書いてあり、今もそのままです。

## コミュニティがやってくれたこと

数百人くらいの小さなツールになるだろうと思っていました。半年が経つ頃には、リポジトリは GitHub で 50,000 スターを超えていました。スターより大事だったのは、ユーザーが私の知らないクリーンアップ先をおよそ 500 件の issue で教えてくれ、機能 PR が約 300 件届き、世界中で約 100 人の開発者がコントリビューターになってくれたことです。開発者マシンごとに捨ててよい成果物の置き場所は違い、コミュニティが一人では到底たどり着けない広さまで地図を描いてくれました。

その広さが、より難しい教訓も生みました。新しいクリーンアップ対象は、そのまま新しい破壊的ミスの場所でもあるということです。パスのカタログだけでは足りません。共有のパスガード、保護場所、稼働中プロセスのチェック、タイムアウト、レビュー、そして拒否すべきケースを固定するテストが必要でした。コミュニティの規模はカバレッジを増やしただけでなく、安全モデルを元のスクリプトより一般化するよう迫りました。

<figure class="blog-diagram">
  <video src="https://mole.fit/img/blog/mole-contributors.mp4" width="1600" height="900" autoplay muted loop playsinline></video>
  <figcaption>半年分のコミットを可視化したものです。各クラスターはコードベースの一角、各人物はその周辺のファイルを触ったコントリビューターです。</figcaption>
</figure>

規模を実感した瞬間は、請求書でした。README にスクリーンショットを 2 枚載せ、Vercel の CDN 経由で配信していました。ある週、帯域が 60 テラバイトを食い、2 枚の画像だけで Vercel に 80 ドルを払うことになりました。

## なぜ Mac アプリなのか

早い段階から、ユーザーは同じ要望を書き続けていました。両親に使わせたい、妹にも、でもターミナルは絶対に開かない、と。CLI がデスクトップ版を背負えるほど成熟していないと感じ、何ヶ月も先延ばしにしていました。2026 年の春にはその段階に達したので、週末をいくつか使って Mac アプリを作り、2026 年 5 月 11 日の夜に公開しました。[Mole for Mac](https://mole.fit/) です。Mac 2 台まで、生涯アップデート、ずっとテストしてくれていたユーザーへの感謝として早期特価 9 ドルでした。

アプリは、スクリプトを走らせるボタンであってはなりませんでした。GUI のツールは、発見と削除を分け、キャンセルに耐え、権限を説明し、スキャン中もウィンドウを安定させ、シェルコマンドを読んだことのない人にも取り戻せる計画を見せる必要があります。CLI がアプリに「何を探すか」を教え、アプリは仕事を見える形にし、途中で止められるものに変えました。

<figure class="blog-diagram">
  <video src="https://mole.fit/img/blog/mole-mac-demo.mp4" width="1440" height="1074" autoplay muted loop playsinline></video>
  <figcaption>Mole for Mac：クリーンアップ、アプリ管理、最適化、ディスク分析、ライブステータスをひとつのネイティブアプリに。</figcaption>
</figure>

## 惑星たち

アプリはメニューバーのユーティリティにクリーンボタンを足すだけでもよかったし、それで十分売れたでしょう。でも世の中には AI 生成の粗悪ソフトがすでに多すぎます。せっかく手をかけるなら、タイムラインを汚すもう一つのものではなく、前に座っていられる心地よいものにしたかったのです。

子どものころから惑星を眺めるのが好きで、10 年前、フロントエンドを覚えた直後に一番やりたかったのは WebGL で惑星を描くことでした。このアプリを作って、ようやくその二つが重なりました。五つの機能それぞれに、仕事の性格に合う惑星を与えました。

- Clean は地球：山の雨が古い埃を洗い流す。
- Software は火星：赤い砂が古い痕跡を埋める。
- Optimize は水星：太陽にいちばん近く、いちばん速く飛ぶ。
- Analyze は木星：もっとも広い眼。
- Status は太陽：眠らない光。

テクスチャは天文画像から来ており、地球は NASA の [Blue Marble](https://visibleearth.nasa.gov/images/57752/blue-marble-land-surface-shallow-water-and-shaded-topography) を基にしています。各惑星がしっくり来るまで、テクスチャは 10 回以上差し替えました。自転の向きと相対的な速さは実在の天体に合わせ、操作完了時の小さな飛行エフェクトもそうです。厳密に言えば、これらはモグラとはほとんど関係がありません。むしろ、土を掘る小さな動物がトンネルから顔を上げて、とても大きな空を見上げ、静かにしている、そんな感じに近いです。

## 公開の夜

夜 10 時ごろ公開しました。友だちがリツイートしてくれ、やがてスマホがおよそ 10 秒に 1 回のペースで購入通知で震え始めました。フランス、ドイツ、それまで受取で見たことのない通貨まで。iPhone は通知を表示するだけで熱くなり、バッテリーを食い尽くしました。眠るためにメール通知を切っても、朝まで購入は続いていました。CLI にきちんと扱われてきたというだけで、アプリを買ってくれた人もかなりいたようです。

Mac アプリにはまだ隙間がたくさんあり、かわいいおもちゃに金を払い、私が埋めていくのを待ってくれている人たちがいることに感謝しています。結果を急がず、ものごとを自分のペースで熟させるのが好きです。Mole は個人用スクリプトからオープンソースの CLI、そして有料アプリになるまで何年もかかりました。その軌跡でいちばんよかったのは、長い反復と、世界中の開発者との友情です。それが本当の財産です。

---

Canonical HTML page: https://mole.fit/ja/blog/the-story-of-mole
Blog index for agents: https://mole.fit/ja/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
