khromov/ai-digest
A CLI tool to aggregate your codebase into a single Markdown file for use with Claude Projects or custom ChatGPTs.
ai‑digest
機能
- プロジェクトのファイルを走査し、無視/圧縮ルールでフィルタリングし、オプションで空白を削除して、すべてを単一のMarkdownドキュメント (
codebase.md) に書き出すコマンドラインツール(およびNodeライブラリ)です。 - 生成されたMarkdownは、Claude ProjectsやカスタムChatGPTにアップロードできるため、モデルがコードベース全体を「認識」し、分析、デバッグ、レビューを行うことができます。
使い方
npx ai-digestでCLIをインストール/実行します(またはnpm i ai-digestをインストールしてスクリプトから呼び出します)。- 以下のオプションを選択します:
-i/--input:1つ以上のディレクトリを指定します。-o:出力ファイル名を指定します。--whitespace-removal:テキストサイズを縮小します。--ignore-file/--minify-file:.aidigestignoreおよび.aidigestminifyパターンファイルを指定します。--watch:編集時にMarkdownを最新の状態に保ちます。--show-output-files:各ファイルのサイズを棒グラフで表示します。
- このツールは、各ソースファイルをコードブロックで囲んだMarkdownファイルを作成します。圧縮(リストには含まれるが完全には含まれない)されたファイルにはプレースホルダーが挿入されます。
- そのMarkdownをClaudeやカスタムGPTのナレッジベースにアップロードし、チャットを開始します。
主な特徴
- デフォルトの無視パターン(ビルド成果物、設定ファイル)に加え、カスタム
.aidigestignoreをサポート。 - 圧縮パターン (
.aidigestminify):大きなファイルを短いプレースホルダーに置き換えます。ライブラリ使用時はコールバックでプレースホルダーをカスタマイズ可能です。 - 空白削除(Python/YAMLなど空白に敏感な言語では無効化)によりトークン数を削減。
- ファイルサイズ統計:視覚的な棒グラフを表示し、サイズ順にソート可能。
- ウォッチモード:ファイル変更時に自動的にMarkdownを再構築。
- ライブラリAPI:すべてのCLI機能が非同期関数 (
generateDigest,generateDigestFiles,getFileStatsなど) として公開されており、プログラムから利用可能。
対象ユーザー
- 手動でファイルを圧縮したりコピーしたりせずに、LLMにコードベースの全体像を把握させたい開発者。
- カスタムChatGPTエージェントやClaude Projectsを構築しており、簡潔でトークン効率の良いソースコード表現を必要とするチーム。
典型的なワークフロー
# リポジトリのルートから実行
npx ai-digest # codebase.md を作成
# Claude UI → New Project → codebase.md をアップロード
# または ChatGPT → Custom GPT → 同じファイルをアップロード
制限事項
- テキストファイルのみを集約します。バイナリ/SVGファイルは注釈のみで埋め込まれません。
- 空白削除は、意味が変わってしまう言語ではスキップされます。
- トークンの推定値は提供されますが、実際のモデルの制限が適用されます。
ライセンス
- MITライセンス。自由に使用・改変可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト