はじめに
Homebrewには7000以上のFormulaと数千のCaskが登録されています。しかし、パッケージを探す方法は brew search のキーワード検索くらいしかありません。公式サイト(formulae.brew.sh)にも「人気順」や「カテゴリ別」の一覧はなく、名前を知らないパッケージにはたどり着けない状態です。
「みんなが使っている定番ツールは何か」「開発系で便利なものはないか」――こういった探し方ができるCLIツール brew-discover を作りました。
この記事でわかること。
– brew-discoverの機能と使い方(人気ランキング、カテゴリブラウズ、ランダム発見)
– Homebrew公式APIからインストール統計を取得する仕組み
– 7000パッケージを7カテゴリに自動分類するキーワードマッチングの実装
作ったもの

brew-discover は、以下の機能を提供します。
| 機能 | 説明 |
|---|---|
| 人気ランキング | インストール数順でTop 20を表示 |
| カテゴリブラウズ | 7カテゴリで分類(dev, media, utils等) |
| ランダム発見 | 人気パッケージからランダムでおすすめ |
| 強化検索 | 説明文も含めて検索、人気順でソート |
| 詳細情報 | パッケージの人気度(Top何%か)も表示 |
日本語と英語の両方に対応しています。
インストール
brew tap atani/tap
brew install brew-discover
使い方
人気ランキングを見る
# Formula Top 20
brew-discover top
# Cask Top 10
brew-discover top --cask -n 10
出力例です。
Homebrew Formula Top 5 (installs in last 30 days)
# Name Installs Description
────────────────────────────────────────────────────────────────
1 ca-certificates 348.3K Mozilla CA certificate store
2 openssl@3 330.5K Cryptography and SSL/TLS Toolkit
3 xz 313.7K General-purpose data compression
4 sqlite 280.8K Command-line interface for SQLite
5 readline 273.6K Library for command-line editing
カテゴリでブラウズ
# カテゴリ一覧
brew-discover browse
📂 カテゴリを選択
🛠️ dev 開発ツール (2077 packages)
🎬 media メディア・動画・音声 (419 packages)
🔧 utils ユーティリティ (2226 packages)
🌐 network ネットワーク (1063 packages)
🔒 security セキュリティ (316 packages)
📊 data データベース・データ処理 (861 packages)
🎮 games ゲーム (230 packages)
# 開発ツールを見る
brew-discover browse dev
ランダムで発見
# 1つおすすめ
brew-discover random
# 5つおすすめ
brew-discover random -n 5
# おすすめ + 即インストール確認
brew-discover random --lucky
パッケージ詳細
brew-discover info bat
📦 bat
Clone of cat(1) with syntax highlighting and Git integration
────────────────────────────────────────────────────────────────
📊 人気度
インストール数: 16.9K (30d)
ランキング: #260 / 8004+ packages
人気度: ⭐⭐⭐⭐ Top 5%
📋 詳細
バージョン: 0.26.1
ライセンス: Apache-2.0 OR MIT
ホームページ: https://github.com/sharkdp/bat
📎 依存関係
libgit2, oniguruma
💻 インストール
brew install bat
────────────────────────────────────────────────────────────────
技術的なポイント
データソース
Homebrew公式のAPIを使用しています。
formulae.brew.sh/api/formula.json– パッケージ情報formulae.brew.sh/api/analytics/install/homebrew-core/30d.json– インストール統計
APIはキャッシュして、Formula/Caskは24時間、Analyticsは6時間保持します。
なぜGoで作ったか
シングルバイナリで配布でき、brew tap + brew install だけで使える手軽さを重視しました。Homebrew自体がmacOS/Linuxのツールなので、クロスコンパイルの容易さもGoを選んだ理由です。
カテゴリ自動分類
7000以上のパッケージを自動で7カテゴリに分類しています。パッケージ名と説明文からキーワードマッチングでスコアリングする仕組みです。
var categoryKeywords = map[Category][]string{
CategoryDev: {
"compiler", "build", "git", "docker", "kubernetes",
"python", "node", "ruby", "rust", "go", ...
},
CategoryMedia: {
"video", "audio", "image", "ffmpeg", "youtube", ...
},
// ...
}
多言語対応(i18n)
Go の embed を使って翻訳JSONファイルをバイナリに埋め込んでいます。
//go:embed locales/*.json
var localesFS embed.FS
言語は以下の優先順位で決定します。
--langフラグ- 環境変数
BREW_DISCOVER_LANG - 環境変数
LANG(ja_JP.UTF-8→ja) - デフォルト:
en
おわりに
brew search だけでは出会えないパッケージを発見できるツールになりました。
特に brew-discover random は、知らなかった便利ツールを見つけるのにおすすめです。ぜひ使ってみてください。
関連記事
CLIツールやOSSの開発記事をほかにも書いています。
- Chrome拡張の手動アップロードをやめた — release-please + GitHub Actionsで公開を完全自動化
- ターミナルでMermaidを描画できるMarkdown CLIツール glowm
リンク
- GitHub: https://github.com/atani/brew-discover

