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.5.tar.gz (98.1 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.5-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: foldermix-0.1.5.tar.gz
  • Upload date:
  • Size: 98.1 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.5.tar.gz
Algorithm Hash digest
SHA256 87044d95027434b838838b48585006431812e2e5182ad12ae31830fee7c478cb
MD5 f22e7ac932945c91c1581f03d61f4404
BLAKE2b-256 1f486fd78975dbb3865beb4bdf7978de2b37de8166dfeb7f28dc2fde189b2bdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for foldermix-0.1.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: foldermix-0.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cc5c361f7f21e9ac36d15f45bef376c0436606cf655698362710e42fee9ac22b
MD5 4aba291dcd92f97c4f6d174db17c5b6d
BLAKE2b-256 21d3727e093b38daa8a818c99fd2979c93afabb83af227bfde640a987180e10f

See more details on using hashes here.

Provenance

The following attestation bundles were made for foldermix-0.1.5-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