⭐️

思いつきで作ったAIツールが5000スターを獲得した話

2025/01/09に公開

とにかくケチりたい、そんな気持ちで作ったツールの話です。

元々開発にCline(Claude Dev)やAiderなどの開発ツールを駆使していました。
ただ、APIの料金が常に心配で、できる限り安く済ませたい気持ちもあり、Claude Proを契約してWeb版にファイルを1つ1つアップロードする日々を過ごしていました。

ある日それが面倒になってきて「全部1ファイルにしたらいい感じに読み込んでくれるのでは?」と思い、作ってみたら思いのほかうまくいったので公開しました。

https://github.com/yamadashy/repomix

百聞は一見にしかずということで、
こちらのデモにお気に入りのGitHubリポジトリ(例: honojs/hono)を入力してみてください。
https://repomix.com

Claudeが得意とするXMLっぽいフォーマットで出力し、そのままClaudeにアップロードすることができます。

repomix.com

完全にAIバブルの波に乗ったとも言えるのですが、多くの競合がいる中でスター数が増えたのは、CLIの使い心地の良さとRedditでの地道な活動が効いたのではないかなと思っています。

自分で使っている感想

下記コマンドでできたファイルをClaudeにアップロードし、リファクタなり実装なりを依頼できます。小さめのプロジェクトであればかなりワークします。

npx repomix

大規模なプロジェクトだと100万トークンは余裕で超えるので、焦点を絞らないと使えないことのほうが多いですね。
ただ、inputを選ばないので、定額のAIサービスで使えるという意味ではかなりコスパがいいツールだと思います。

まだまだ日本のユーザーはかなり少なそうですが、使っていただいている方もちらほらいるので開発のモチベになっています。

https://x.com/takkuso1105/status/1869412198742884718

https://x.com/xXxuutaxXx/status/1858177001720614960

別のツールですが、コピペなどが面倒でぱっと聞きたい時はこちらもおすすめです。

https://laiso.hatenablog.com/entry/2024/11/04/113928

モデルごとの比較

Gemini 2.0 Flash ExperimentalChatGPT o1 を使ってみましたが、現状は Claude 3.5 Sonnet が一番良いという印象です。
特に複雑な実装の依頼に強みを発揮します。ただし、扱える範囲は4~5モジュールぐらいが限界でしょうか。

なお、Claudeはレート制限が厳しいので、雑なタスクは Gemini 2.0 Flash Experimental に任せています。Geminiは100万トークンという圧倒的なコンテキスト長を活かして、リリースノートの作成やIssue対応、Discordでのやりとりのサポート、その他翻訳作業など重宝していますね。

DeepSeekもたまに使っていて、Claudeが使えないときの補助として頼りになります。

Repomix の道のり

最初は本当に単純な発想でした。
「コードベースを1つのファイルにまとめたら、いい感じに読んでくれたりしないか?」と。
そして作ってみると驚くほどうまくいきました。

これは早く皆に共有せねばと思い、勢いでGitHubへの公開とQiitaにも記事を書きましたが、初日のいいねは3つでした。
https://qiita.com/yamadashy/items/d150576759b84ea36274

公開してから気づいたのですが、既に似たようなツールが多数存在しています。

ただ、これらのツールは開発が活発ではなく、また自分の理想とする使い心地でもなかったので「ただ自分が最も使いやすい形にしよう」と開発を続けました。

Redditでの活動

ツールの良さが伝わらない中、「自分と同じように困っている人に直接おすすめしてファンを増やそう」と考え、Redditで困っている人にコメントを始めました。

https://www.reddit.com/r/ClaudeAI/comments/1dsudc4/comment/ldg6bg5/

ほぼほぼスパムのような行為ですが、気にしたら負けなので積極的にコメントを続けたところ、予想以上に反応が良くGitHubのスター数が徐々に伸び始めたのです。

そして、改名

元々このツールは「Repopack」という名前でした。
GitHubのスターが1000を超えた頃、突如海外から商標の問題を指摘され、弁理士と相談した結果「Repomix」に改名することになりました。

OSSプロジェクトとして許してほしい気持ちもありましたが、相手もソフトウェア関連の商標でかつ紳士的な対応だったことから、紛争は避けることにしました。

日本弁理士会で無料で相談できるので、何かあった時はおすすめです。

https://www.jpaa.or.jp/free_consultation/

技術面

CLI実装

正直ファイルをまとめるだけのそれ以上でもそれ以下でもないツールで、他の競合とそんなに差異はありません。

違いがあるとすれば下記の点でしょう。

  • secretlintを使って予期せず機密情報が流出するのを多少防いでいる
  • configファイルで細かく設定できる
  • CLIの出力が少しフレンドリー?

secretlint をライブラリとして使ったのは初めてでしたが、その手軽さに感動しました。さすがazuさん。

https://github.com/secretlint/secretlint

あとは repomix --init@clack/prompts を使っていて、単純に見た目が気に入っています。

https://github.com/bombshell-dev/clack

ウェブサイト

長らくウェブサイトがなかったのですが、年末年始で暇だったこともありオンラインデモサイトを作ることにしました。

フロントエンド

フロントエンドは Vitepress + Cloudflare Pages を採用しました。
以下の点が良いなと思っています。

  • Cloudflare Pagesは無料プランでも十分な機能を提供
  • デプロイが早く、開発効率が良い
  • GitHubのPRにプレビューURLを自動生成してくれる

特にPRへのプレビューURL自動生成は最高です。
https://github.com/yamadashy/repomix/pull/277#issuecomment-2576721485

RspressやDocusaurusも検討しましたが、デザインと触り心地が一番好みだったのでVitepressを選択しました。VueかReactかは今回はシンプルな構成なのでそこまでこだわっていません。

バックエンド

APIは Cloud Run + Hono.js で、Cloud Buildでビルドとデプロイを行っています。CloudflareのDNSでオリジンの保護。

前からHonoを使ってみたかったので、今回のシンプルな用途にはちょうど良い機会だと思い採用しました。

中規模レベル以上になると設計者の腕が試されそうだなと感じつつも、さくっと開発できるところはとても気に入っています。(そして名前がいい!)
日本人発のフレームワークとして応援していきたいです。
https://zenn.dev/yusukebe/articles/0c7fed0949e6f7

今回はgitコマンドの実行が必要だったのでCloud Runを選択しましたが、もし他のAPIを作る際はCloudflare Workersを使ってみたいと思っています。

これから

現状のRepomixは個人開発や小規模プロジェクトでは十分な機能を提供できていますが、中規模以上のプロジェクトではほぼ使い物にならないので、今後はそちらに注力していこうと思っています。

ぜひ使っていただいて、フィードバックなどいただけると励みになります。
https://github.com/yamadashy/repomix

Discussion