モデル / データセット
mufeedvh/code2prompt avatar
mufeedvh/code2prompt

code2prompt: リポジトリを1本のLLMプロンプトに畳むCLIの使いどころ

A CLI tool to convert your codebase into a single LLM prompt with source tree, prompt templating, and token counting.

スター 7,656フォーク 436RustMIT

ひと目でわかる

これは何?
Rust製のCLIでコードベースを走査し、ソースツリーとGitメタデータを含む単一のプロンプトに整形する。向くのは手作業のコピペを減らしたい場面で、巨大リポジトリ全体を渡す用途には向かない。
誰に向いている?
採用を検討すべきなのは、Git管理されたリポジトリから特定ディレクトリだけを切り出してLLMに渡す作業を繰り返している人、またはPython SDK経由でエージェントのコンテキスト組み立てに組み込みたい人だ。逆に、リポジトリ全体をそのまま投入したい場合や、トークン数の厳密な見積もりを課金前に確定させたい場合には向かない。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 4 日前です。
何の言語で書かれている?
主に Rust です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

手作業のコピペを置き換える位置づけ

ChatGPTやClaudeにコードを読ませるとき、エディタからファイルを開いて本文をコピーし、パスを手で添え、関連するテストを探して貼り足す、という作業が発生する。code2promptが解くのはこの部分である。READMEは「Stop manually copying files and formatting code for LLMs」と述べており、対象はコードベースを丸ごと、あるいは一部をLLMに渡す開発者と、それを組み込むエージェント作者だ。CLIとして人間が直接使うほか、Rustのコアライブラリ、Python SDK、MCPサーバーという4つの入口が用意されている。つまり単体のコマンドではなく、コンテキスト組み立ての部品として設計されている。

走査からプロンプト整形までの流れ

処理の骨格はREADMEのフロー図と説明から読み取れる。コアライブラリがファイル走査を担当し、.gitignoreの規則を尊重しながらディレクトリをたどり、Gitのメタデータを構造化する。集めたファイルはHandlebarsテンプレートに流し込まれ、ソースツリー、ファイル本文、必要ならGitの差分やログを含む1つのテキストになる。テンプレートは差し替え可能で、用途ごとに出力の形を変えられる。トークン数はファイル単位で並列に数え、テンプレートのオーバーヘッドを足して推定する。READMEはこの推定について、レンダリング済みプロンプト全体を再トークン化しているわけではなく、JSON出力の外枠も含まないと明記している。数字は目安として扱うべきで、厳密な上限管理には向かない。

導入コマンドと出力の逃がし方

導入はcargo install code2prompt、またはbrew install code2prompt。Wayland環境でクリップボード連携を使う場合はcargo install --features wayland code2promptとfeatureフラグを付ける。Pythonから呼ぶならpip install code2prompt-rsでバインディングが入る。基本の実行はcode2prompt .で、出力は標準出力に流れる。-cを付けるとクリップボードへコピーされ、ファイルに残すならcode2prompt path/to/project --output-file prompt.txtとなる。ファイルの取捨はglobパターンで指定し、.gitignoreの規則が併用される。エージェントに使い方を覚えさせる経路としてnpx skills add mufeedvh/code2promptが用意されており、Codexなど特定エージェント向けに--agent codex --globalを付けて全体インストールする例がREADMEに載っている。このスキルはリポジトリを一時的にcloneしてスキルフォルダとテンプレートだけを取得し、CLI本体は別途インストールする必要がある。

推定トークンと巨大リポジトリの壁

最大の制約はコンテキスト長そのものである。どれだけ整形が整っていても、出力がモデルの入力上限を超えれば使えない。READMEの推定トークン機能はこの判断を助けるが、前述のとおり完全な再トークン化ではないため、推定値が上限内でも実際には超える可能性が残る。もう一点、走査は.gitignoreを尊重する設計なので、ビルド成果物や依存ディレクトリは自然に除外される一方、追跡対象の大きなデータファイルや生成コードはそのまま混入しうる。globでの除外指定を詰めないと、プロンプトの大半が読ませたくないファイルで埋まる。モノレポや大規模リポジトリでは、ディレクトリを絞って複数回に分ける運用が前提になる。

repo2txtや手書きスクリプトとの違い

同種の用途にはrepo2txtのようなツールや、findとcatを組み合わせた自作スクリプトがある。違いは出力の作り込みにある。単純な連結では、どのファイルがどこから始まるかが分かりにくく、Gitの差分やログを混ぜるには別途コマンドを噛ませる必要がある。code2promptはソースツリー、ファイル本文、Gitメタデータを1つのテンプレートで組み立て、トークン推定まで同じコマンドで出す。逆に、除外規則を細かく制御したいだけならシェルスクリプトのほうが短く済む。Python SDKやMCPサーバーとして同じコアを再利用できる点は、自作スクリプトにはない利点だ。

ライセンスと更新の追い方

ライセンスはMITで、コピー、改変、再配布、商用利用が許される寛容な条件である。ただし著作権表示とライセンス文の保持は求められる。法的な判断が必要な場合は自分で確認してほしい。更新面では、v3.0.2が2025年4月、v4.0.2が2025年9月、v4.2.0が2025年12月と、メジャー更新を含むリリースが続いている。CLIの引数やテンプレートの変数はメジャー間で変わりうるので、CIやスクリプトに組み込むならバージョンを固定し、リリースノートで破壊的変更を確認してから上げるのが安全だ。cargo installで入れる場合もバージョン指定を併用したい。

編集部の結論

採用を検討すべきなのは、Git管理されたリポジトリから特定ディレクトリだけを切り出してLLMに渡す作業を繰り返している人、またはPython SDK経由でエージェントのコンテキスト組み立てに組み込みたい人だ。逆に、リポジトリ全体をそのまま投入したい場合や、トークン数の厳密な見積もりを課金前に確定させたい場合には向かない。導入前に確かめるべきは、自分の環境でcode2prompt .の出力にどのファイルが含まれるか、--output-fileで書き出したプロンプトの実トークン数とツールの推定値がどれだけずれるか、そしてテンプレートを自作するならHandlebarsの変数がどこまで揃っているかの3点である。

公式情報源

  1. License: MIT
  2. mufeedvh/code2prompt on GitHub
  3. Project website
  4. README
  5. Releases
コミュニティノート

コミュニティノート