A CLI tool to bundle coding files into a single Markdown file.
Project description
summd
See below for the English version.
Source code available on GitHub! 👥
summd は、ディレクトリ内のソースコードや設定ファイルを 1つのMarkdownファイル にまとめるためのコマンドラインツールです。
プロジェクト全体の構造を俯瞰したり、LLM(大規模言語モデル)へのインプットとして利用するのに最適です。
✨ 特徴
- 複数ファイルの一括集約: プロジェクト内のコード・設定ファイルをまとめて1ファイル化。
.gitignore対応:.gitignoreの内容を自動反映し、不要ファイルを除外。- Jupyter Notebook 対応:
.ipynbのMarkdownセル・コードセルを抽出して整形。 - 柔軟な除外設定: デフォルト無視パターン(
node_modules/,.venv/,__pycache__/など)に加えて、任意の拡張子やパターンを指定可能。 - 多言語サポート: Python, JavaScript, HTML, CSS, Dockerfile, YAML など主要言語に対応。
🚀 インストール
開発中のツールのため、pipx でのインストールを推奨します。
pipx install summd
※ pip install summd でも利用可能ですが、CLIツールは pipx 管理が便利です。
⸻
💡 使い方
基本コマンド:summd <対象ディレクトリ> <出力ファイルパス>
例: 現在のディレクトリをまとめる
summd . output/summary.md
⸻
⚙️ オプション
-i, --ignore
特定の拡張子を持つファイルを除外します。複数指定可能。
例: .log と .tmp を無視
summd . summary.md --ignore .log .tmp
⸻
📚 ユースケース
- LLMへのインプット用に、リポジトリを丸ごとMarkdown化
- プロジェクト概要をキャッチアップするためのドキュメント生成
- レビューやアーカイブ用途でのコードスナップショット化
⸻
📝 ライセンス
このプロジェクトは MITライセンス の下で公開されています。
summd is a command-line tool that consolidates source code and configuration files in a directory into a single Markdown file.
It’s ideal for getting an overview of an entire project or preparing input for LLMs (Large Language Models).
✨ Features
- Aggregate multiple files: Combine code and config files across a project into one Markdown file.
.gitignoresupport: Automatically respects.gitignorerules to exclude unwanted files.- Jupyter Notebook support: Parses
.ipynbfiles, extracting and formatting Markdown and code cells. - Flexible exclusions: Skips default patterns (
node_modules/,.venv/,__pycache__/, etc.) and lets you specify custom extensions or patterns. - Multi-language support: Handles Python, JavaScript, HTML, CSS, Dockerfile, YAML, and many more.
🚀 Installation
As this tool is still under development, we recommend installing with pipx:
pipx install summd
※ pip install summdalso works, but pipx is generally better for managing CLI tools.
⸻
💡 Usage
Basic command:summd <target-directory> <output-file>
Example: consolidate the current directory into output/summary.md
summd . output/summary.md
⸻
⚙️ Options
-i, --ignore
Exclude files with specific extensions. Multiple extensions can be specified.
Example: ignore .log and .tmp files:
summd . summary.md --ignore .log .tmp
⸻
📚 Use Cases
- Consolidate a repository into Markdown for LLM input
- Generate project overviews for quick onboarding
- Create code snapshots for review or archiving
⸻
📝 License
This project is released under the MIT License.
⸻
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file summd-0.1.0.tar.gz.
File metadata
- Download URL: summd-0.1.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.13 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef6d93106423ec989e39a632dee34bee12388df42636d24f001ec4e2f8762e25
|
|
| MD5 |
7ea71478c94307590c8454827e879ecd
|
|
| BLAKE2b-256 |
bee4bea914314f8f929e7c7f7efe9e94e10b93442e6f43d3fe929ba09a038a6d
|
File details
Details for the file summd-0.1.0-py3-none-any.whl.
File metadata
- Download URL: summd-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.13 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
932570c054f56e9aa0a21236a601e6fd22bce9e22e75916f4b809bcbe6637872
|
|
| MD5 |
5783f69ca51a34a86e730c84aed0bffd
|
|
| BLAKE2b-256 |
fb0a4f11d543e8885e64d1b7a09db7fa0e5d5947f2024f7961f3799ee25ead56
|