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にアップロードできるため、モデルがコードベース全体を「認識」し、分析、デバッグ、レビューを行うことができます。

使い方

  1. npx ai-digest でCLIをインストール/実行します(または npm i ai-digest をインストールしてスクリプトから呼び出します)。
  2. 以下のオプションを選択します:
    • -i / --input:1つ以上のディレクトリを指定します。
    • -o:出力ファイル名を指定します。
    • --whitespace-removal:テキストサイズを縮小します。
    • --ignore-file / --minify-file:.aidigestignore および .aidigestminify パターンファイルを指定します。
    • --watch:編集時にMarkdownを最新の状態に保ちます。
    • --show-output-files:各ファイルのサイズを棒グラフで表示します。
  3. このツールは、各ソースファイルをコードブロックで囲んだMarkdownファイルを作成します。圧縮(リストには含まれるが完全には含まれない)されたファイルにはプレースホルダーが挿入されます。
  4. その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ライセンス。自由に使用・改変可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト