複数のMarkdownファイルを一つにまとめるCLIツール「md-concatter」を作ってみた

複数のMarkdownファイルを一つにまとめるCLIツール「md-concatter」を作ってみた

Clock Icon2025.06.09

こんにちは、リテールアプリ共創部の戸田駿太です。

今回は、複数のMarkdownファイルを一つにまとめるCLIツール「md-concatter」をご紹介します。

はじめに

複数のMarkdownファイルが散らばっていて、一つのファイルにまとめたいと思ったことはありませんか?
特にAIに読み込ませたいときに複数ファイルあると読み込むのが大変ですよね。

そんな悩みを解決するCLIツール「md-concatter」をご紹介します。

md-concatterとは

md-concatterは、階層構造に配置された複数のMarkdownファイルを一つの統合されたファイルにまとめるCLIツールです。

開発の流れはこちらで紹介しています。

https://dev.classmethod.jp/articles/md-concatter-development-history/

基本的な動作

npx md-concatter@latest ./docs

このコマンド一つで、docsフォルダ内のすべての.mdファイルを再帰的に検索し、一つのmerged.mdファイルにまとめてくれます。

主な特徴

🔄 階層構造に完全対応

フォルダの深い階層にあるファイルも自動的に検索・統合します。

docs/
├── README.md
├── installation/
│   ├── quick-start.md
│   └── advanced.md
├── api/
│   ├── overview.md
│   └── endpoints/
│       ├── users.md
│       └── posts.md
└── troubleshooting.md

このような構造でも、すべてのファイルを適切に統合できます。

📦 インストール不要で即利用

npxを使えば、グローバルインストールせずに直接実行できます。

# インストール不要で実行
npx md-concatter@latest ./docs

# もちろんグローバルインストールも可能
npm install -g md-concatter
md-concatter ./docs

🎯 柔軟な除外機能

不要なファイルはglobパターンで簡単に除外できます。

# ドラフトファイルを除外
npx md-concatter@latest ./docs --exclude "draft/**" "*.draft.md"

# 一時ファイルを除外
npx md-concatter@latest ./docs --exclude "*.tmp.md" "temp/**"

🛡️ 安全性を重視した設計

  • ファイルサイズ制限(単体10MB)
  • 最大階層制限(デフォルト10階層)
  • 総ファイル数制限(1000ファイル)
  • 包括的なエラーハンドリング

実際の使用例

プロジェクトドキュメントの統合

# プロジェクト全体のドキュメントを一つにまとめる
npx md-concatter@latest ./docs -o project-documentation.md

APIドキュメントの作成

# API関連のドキュメントのみを統合
npx md-concatter@latest ./docs/api -o api-reference.md

レビュー用資料の準備

# ドラフトを除外して最終版のみ統合
npx md-concatter@latest ./docs --exclude "draft/**" -o review-docs.md

出力フォーマット

md-concatterは、各ファイルの相対パスとコンテンツを明確に区別できる形式で出力します。

README.md

# プロジェクト名
このプロジェクトは...
---

docs/installation.md

## インストール方法
以下の手順でインストールできます...
---

docs/api/overview.md

## API概要
このAPIは...
---

このように、どのファイルの内容なのかが一目で分かる形式になっています。

豊富なオプション

出力ファイル名の指定

npx md-concatter@latest ./docs -o documentation.md

階層の深さ制限

# 3階層までのファイルのみ統合
npx md-concatter@latest ./docs -d 3

複数の除外パターン

npx md-concatter@latest ./docs --exclude "*.tmp.md" "draft/**" "archive/**"

オプションの組み合わせ

npx md-concatter@latest ./docs \
  -o final-docs.md \
  -d 5 \
  --exclude "draft/**" "*.tmp.md"

技術仕様

  • 対応環境: Node.js >= 14.0.0
  • 依存関係: commander, glob

実用的な活用シーン

🤖 AIにプロジェクト全体を理解させる

複数のREADME、API仕様書、設計書をまとめて、AIにプロジェクト全体の理解を促進。ChatGPTやClaude等に一度に読み込ませることで、より正確で一貫性のある回答を得られます。

🔍 AIによる文書チェック・改善アドバイス

  • 文書の読みやすさチェック: 説明が分かりにくい部分や表現のバラつきを指摘
  • 設計の見直し: 作った仕組みで困りそうなポイントや改善案を提案
  • ドキュメントの不足: 説明が足りない部分や、説明が間違っている部分の指摘

📊 NotebookLMとの連携活用

  • プロジェクト全体のQ&A生成: 統合されたドキュメントから自動的にFAQを作成
  • 関連情報の横断検索: 複数ファイルにまたがる情報を一度に検索・参照
  • 文脈を理解した回答: 単体ファイルでは分からない全体的な文脈を踏まえた回答
  • ポッドキャスト形式での要約: プロジェクト概要を音声で聞ける形に変換

https://dev.classmethod.jp/articles/backlog-notebooklm-rag-construction/

📝 プロジェクト要約・FAQ生成

散らばったドキュメントを統合してAIに渡し、プロジェクトサマリーや新人向けFAQ、技術選定理由の説明資料を自動生成。

🎓 学習教材の自動生成

分散した学習メモやチュートリアルをまとめてAIに渡し、体系的な学習カリキュラムや練習問題を生成してもらう。

🌐 多言語翻訳の一括処理

英語で書かれた複数の技術文書をまとめて、AIに一括翻訳を依頼。文脈を保った自然な翻訳が可能になります。

まとめ

md-concatterは、シンプルながら実用性の高いツールです。
特に生成AIでまとめて情報を送信する際には日常的に使えるツールかと思います!

# 今すぐ試してみましょう
npx md-concatter@latest ./your-docs-folder

ぜひ一度お試しください!

リンク

https://www.npmjs.com/package/md-concatter

https://github.com/ShuntaToda/md-concatter

https://dev.classmethod.jp/articles/md-concatter-development-history/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.