Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リポジトリをまるっとAIに食わせるRepomixの話

 リポジトリをまるっとAIに食わせるRepomixの話

下記イベントの登壇資料です。
#さくらのAI Meetup vol.9「AIコーディングエージェント活用」

https://sakura-tokyo.connpass.com/event/346616/

GitHubなどのコードリポジトリを1つのファイルにまとめてAIに解析させる「Repomix」の概要と使い方を解説した資料です。

.gitignoreに従ったファイル収集やSecretlintによるセキュアなファイルの除外機能、XML/Markdown/テキストなど複数の出力形式に対応した特徴を紹介しています。

開発背景や実際の使用例、Tree-sitterを活用したコード圧縮機能による最適化、他のAIコーディングツールとの使い分けについても触れており、AIを活用したコード分析や修正の効率化に関心のあるエンジニア向けの内容となっています。

Kazuki Yamada

March 18, 2025
Tweet

Other Decks in Technology

Transcript

  1. 私 やまだし @yamadashy • これまで作ったもの ◦ 企業テックブログRSS ◦ Slack Channels

    Grouping ◦ Repomix ◦ …etc • 仕事ではPHPer • 年一でフルorハーフマラソン 2
  2. Q. Cline, Cursor で良くないか? A. 要件によって使い分けるのが良いと思います。 そもそもRepomixはエージェントではないので比べるものではありません。 Cursor, Cline, Claude

    Code など多くのAIコーディング支援の選択肢がある中で、 一概にどれが良いかで語らずに、要件次第で使い分けるのが良いと思います。 14
  3. Repomixの道のり • Qiitaに投稿しても全く伸びなかった • 公開してから気づく、あまりにも多い競合 • code2prompt, files-to-prompt, 1filellm, ai-digest,

    ingest, repo2file, … • Redditに似たものを投稿すると少し皮肉られる • 「アイデアは10000人、実現は100人、継続は1人」 な時代は終わり 18 Repomixの50番目の 味(亜種)へようこそ
  4. 21

  5. そして、改名 • 元の名前は「Repopack」 • 海外から商標問題の指摘 • 妻に雑談していたら10分後には弁理士への相談予約していた • 学び ◦

    ドメインやGitHubのプロジェクトは調べておくこと ◦ 権利関係で困ったらひとまず日本弁理士会の無料相談へ 22
  6. CLI • .gitignore に従う • Secretlint でセキュアなファイルを除外 • configファイルで細かく設定可能 •

    複数フォーマット: XML, Markdown, テキスト ◦ XMLはAnthropicが推奨 • Git履歴に基づく優先度ソート ◦ LLMは後半の内容が出力に反映されやすい (参考) • コード圧縮機能 ◦ Tree-sitter でコードの一部を抽出 • MCP 25
  7. ウェブサイト • フロントエンド: Vitepress + Cloudflare Pages ◦ 無料プランでも十分な機能 ◦

    デプロイが早く、開発効率が良い ◦ PRごとにプレビューURLを自動生成 • バックエンド: Hono.js + Cloud Run ◦ シンプルな実装でAPI構築が容易 ◦ gitコマンド実行が必要なのでCloud Run採用 ◦ CloudflareのDNSでオリジン保護 26
  8. Tree-sitter によるコード抽出 • --compress : 実装の詳細を省いた状態にする • import • Interface,

    Type • クラス • コメント • メソッドの定義(実装を省く) 27
  9. 28

  10. Tree-sitter によるコード抽出 • 大体半分のサイズに • 使い所 ◦ ドキュメントが整備されていないライブラリの使い方を聞く ◦ ライブラリのアーキテクチャ理解

    29 リポジトリ そのまま compress cline/cline 450 K 208 K vuejs/core 1.3 M 0.6 M facebook/react 5.7 M 2.9 M yamadashy/repomix 240 K 14 K
  11. デモ • Claude Web版 • Claude DesktopでのMCP • 他のモデル ◦

    ChatGPT o3-mini-high ◦ Gemini 2.0 Pro Experimental 32
  12. モデルごとの個人的な使い分け • Claude 3.7/3.5 Sonnet ◦ コーディング。基本はこれ一択 ◦ ただし、制限があるので他のモデルも併用 •

    ChatGPT o3-mini-high ◦ コミュニティのやりとり • Gemini 2.0 Pro Experimental (Google AI Studio) ◦ 無料かつコンテキスト長2Mトークンを活かした分析と雑用 33
  13. 最後に小ネタ Cline/Cursor などにやらせると楽シリーズ • リリースノートの作成 ◦ の結果を貼り付けて書いてもらう ◦ .clinerules に「ghでPR,

    Issuesの詳細を確認して書いて」と書く • ドキュメントの多言語翻訳 ◦ 細かい精度は未検証だが、英語→日本語 はAI感はありつつ悪くない • lint / 静的解析の修正 ◦ Biome, ESLint はうまくいく ◦ PHPStanの修正はまだ人間の役目らしい 34