code2prompt:883⭐のコードをLLMコンテキストに変換するツール
コードベースが複雑になるにつれて、LLMにプロジェクト構造を迅速に理解させるにはどうすればよいか?code2promptはエレガントな解決策を提供する。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | raphaelmansuy/code2prompt |
| Stars | 883 |
| 言語 | Python |
| 特徴 | コード→Markdown変換、.gitignoreフィルタリング、テンプレート対応 |
| 最終更新 | 2025年6月 |
解決する問題
開発者がよく直面する課題:
- ChatGPT/Claudeにコードの質問をしたいが、コピペが面倒
- AIにプロジェクト全体のアーキテクチャレビューを依頼したい
- コードドキュメントやREADMEの生成が必要
- 複数ファイル間のコンテキスト関連付け
code2promptはコードベース全体を構造の整ったMarkdownファイルにパッケージングし、LLMがプロジェクトの全体像を一度に理解できるようにする。
コア機能
スマートフィルタリング
.gitignoreルールを自動遵守し、node_modulesや__pycache__などを除外- カスタム包含/除外パターンをサポート
- ファイルタイプによるフィルタリング(例:.tsと.jsonのみ抽出)
構造化出力
- ディレクトリツリーを生成し、プロジェクト構造を表示
- 各ファイルをコードブロックで囲み、パスを明示
- オプションでファイル統計情報(行数、サイズ)を付加
テンプレートエンジン
- 複数のビルトインプロンプトテンプレート
- カスタムJinja2テンプレートをサポート
- 一般的なユースケース:コードレビュー、ドキュメント生成、Bug分析
Token最適化
- 生成コンテンツのToken数を見積もり
- LLMのコンテキスト制限超過を回避
クイックスタート
# インストール
pip install code2prompt
# 基本的な使い方
code2prompt /path/to/your/project
# テストファイルを除外
code2prompt . --exclude "*.test.js,*.spec.ts"
# テンプレートを使用してコードレビュープロンプトを生成
code2prompt . --template code_review
ツール比較
| ツール | Stars | 特徴 |
|---|---|---|
| gpt-repository-loader | 1.2k | 初期ツール、機能はシンプル |
| repomix | 2.8k | TypeScriptで書き直し、機能豊富 |
| code2prompt | 883 | Python実装、柔軟なテンプレート |
code2promptの強みはテンプレートシステムにある。「APIドキュメント生成」「潜在Bugの発見」「アーキテクチャ説明」などの専用テンプレートを定義し、ワンクリックで目的に応じたプロンプトを生成できる。
適用シナリオ
- コードレビュー:AIにコード規約や潜在問題をチェックさせる
- ドキュメント生成:ソースコードから技術ドキュメントを自動生成
- Onboarding:新しいメンバーがプロジェクト構造を迅速に理解するのを支援
- Bug分析:エラーコンテキストを完全にLLMに提供
注意事項
- 大規模リポジトリ処理時はToken制限に注意(事前に
--filterで範囲を絞ることを推奨) - 機密性の高いコードを外部LLMサービスにアップロードする際は注意が必要
- テンプレート構文はJinja2を使用し、簡単な学習が必要
まとめ
code2promptは「LLMにコードベースを理解させる」という単一の問題に焦点を当てたツールである。多機能を追求するのではなく、「コード→Markdown変換」という機能を極限まで磨き上げている。AIとコードについて頻繁に議論する場合、この883⭐の小さなツールは試す価値がある。
| 属性 | 内容 |
|---|---|
| リポジトリ | https://github.com/raphaelmansuy/code2prompt |
| ライセンス | MIT |
| 言語 | Python |
| 保守者 | @raphaelmansuy |