Skip to main content

Pack a folder into a single LLM-friendly context file

Project description

foldermix

Pack a folder into a single LLM-friendly context file.

CI

Installation

pip install foldermix
# With optional extras:
pip install "foldermix[all]"   # adds PDF, Office, tqdm
pip install "foldermix[pdf]"   # pypdf only
pip install "foldermix[office]" # docx/xlsx/pptx support

Homebrew (macOS/Linux)

brew tap shaypal5/tap
brew install foldermix

Quick Start

# Pack current directory to markdown
foldermix pack .

# Pack to XML format
foldermix pack . --format xml

# Pack to JSONL format
foldermix pack . --format jsonl --out context.jsonl

# Dry run - list files without packing
foldermix pack . --dry-run

# List files that would be included
foldermix list .

# Show statistics
foldermix stats .

# Show version
foldermix version

Features

  • Multiple output formats: Markdown, XML, JSONL
  • Smart filtering: gitignore support, extension filters, glob patterns
  • Sensitive file protection: Automatically skips .env, keys, certificates
  • Optional converters: PDF (pypdf), Office docs (python-docx, openpyxl, python-pptx), markitdown
  • Redaction: Email and phone number redaction via --redact
  • SHA-256 checksums per file
  • Parallel processing with configurable workers
  • Table of contents in Markdown output

Options

foldermix pack [OPTIONS] [PATH]

Options:
  -o, --out PATH                Output file path
  -f, --format TEXT             Output format: md, xml, jsonl [default: md]
  --include-ext TEXT            Comma-separated extensions to include
  --exclude-ext TEXT            Comma-separated extensions to exclude
  --exclude-dirs TEXT           Comma-separated directory names to exclude
  --exclude-glob TEXT           Glob patterns to exclude
  --include-glob TEXT           Glob patterns to include
  --max-bytes INTEGER           Max bytes per file [default: 10000000]
  --max-total-bytes INTEGER     Max total bytes
  --max-files INTEGER           Max number of files
  --hidden                      Include hidden files
  --follow-symlinks             Follow symbolic links
  --respect-gitignore / --no-respect-gitignore  [default: respect]
  --workers INTEGER             Number of worker threads [default: 4]
  --progress                    Show progress bar (requires tqdm)
  --dry-run                     List files without packing
  --report PATH                 Write JSON report to path
  --continue-on-error           Skip files that fail to convert
  --on-oversize TEXT            skip or truncate [default: skip]
  --redact TEXT                 none, emails, phones, all [default: none]
  --strip-frontmatter           Strip YAML frontmatter from files
  --include-sha256 / --no-include-sha256  [default: include]
  --include-toc / --no-include-toc        [default: include]

Security

See SECURITY.md for details on sensitive file handling.

Contributing

See CONTRIBUTING.md.

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foldermix-0.1.4.tar.gz (99.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foldermix-0.1.4-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file foldermix-0.1.4.tar.gz.

File metadata

  • Download URL: foldermix-0.1.4.tar.gz
  • Upload date:
  • Size: 99.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for foldermix-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1c92dda967e14c0949cddec9581a29ec586f813e1bf175b1c4b938b13239fd7a
MD5 e726ccec40b2442417386b77ce458d9d
BLAKE2b-256 23338f7652d085d6dc97c928416a726ce7590129af176592b9440e14866b9780

See more details on using hashes here.

Provenance

The following attestation bundles were made for foldermix-0.1.4.tar.gz:

Publisher: ci.yml on shaypal5/foldermix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file foldermix-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: foldermix-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for foldermix-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 778b538c21c0501e0f9a269e7aea5db13b5af39a8775c9f1f8f58466189aba86
MD5 937c353758030269a5dae94dfb699f78
BLAKE2b-256 3b69dc759c82f840b7a352d7b306a81c8f25a3c5fc76ea14eb963cdd6f7bbcec

See more details on using hashes here.

Provenance

The following attestation bundles were made for foldermix-0.1.4-py3-none-any.whl:

Publisher: ci.yml on shaypal5/foldermix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page