コードベースが複雑になるにつれて、LLMにプロジェクト構造を迅速に理解させるにはどうすればよいか?code2promptはエレガントな解決策を提供する。

プロジェクト概要

属性内容
GitHubraphaelmansuy/code2prompt
Stars883
言語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-loader1.2k初期ツール、機能はシンプル
repomix2.8kTypeScriptで書き直し、機能豊富
code2prompt883Python実装、柔軟なテンプレート

code2promptの強みはテンプレートシステムにある。「APIドキュメント生成」「潜在Bugの発見」「アーキテクチャ説明」などの専用テンプレートを定義し、ワンクリックで目的に応じたプロンプトを生成できる。

適用シナリオ

  • コードレビュー:AIにコード規約や潜在問題をチェックさせる
  • ドキュメント生成:ソースコードから技術ドキュメントを自動生成
  • Onboarding:新しいメンバーがプロジェクト構造を迅速に理解するのを支援
  • Bug分析:エラーコンテキストを完全にLLMに提供

注意事項

  • 大規模リポジトリ処理時はToken制限に注意(事前に--filterで範囲を絞ることを推奨)
  • 機密性の高いコードを外部LLMサービスにアップロードする際は注意が必要
  • テンプレート構文はJinja2を使用し、簡単な学習が必要

まとめ

code2promptは「LLMにコードベースを理解させる」という単一の問題に焦点を当てたツールである。多機能を追求するのではなく、「コード→Markdown変換」という機能を極限まで磨き上げている。AIとコードについて頻繁に議論する場合、この883⭐の小さなツールは試す価値がある。

属性内容
リポジトリhttps://github.com/raphaelmansuy/code2prompt
ライセンスMIT
言語Python
保守者@raphaelmansuy