Skip to main content

Concatenate all text files in a directory and its subdirectories

Project description

promcat

A command-line tool for concatenating text files in a directory tree, designed for creating context files for LLM prompting.

Features

  • Recursively finds and concatenates all text files in a directory
  • Respects .gitignore patterns (optional)
  • Multiple header styles for file sections
  • Line numbering support
  • Customizable path display (relative/absolute)
  • Various output formatting options

Installation

Using uv:

uv venv
source .venv/bin/activate  # or Windows equivalent
uv pip install -e .

Usage

Basic usage:

promcat                     # Process current directory, output to stdout
promcat /path/to/project   # Process specific directory
promcat -o output.txt      # Save to file instead of stdout

Options

--output, -o              Output file path (defaults to stdout)
--respect-gitignore       Honor .gitignore patterns
--relative/--absolute     Use relative or absolute paths in headers
--style                   Header style (newline|separator|markdown|xml)
--footer                  Include footers for file sections
--line-numbers           Add line numbers to output
--separator              Custom separator for line numbers (default: '|')

Header Styles

  1. Newline (--style newline):
content of file 1

content of file 2
  1. Separator (--style separator):
=== file1.txt ===
content of file 1
=== end file1.txt ===
  1. Markdown (--style markdown):
## file1.txt
content of file 1
## end file1.txt

# script.py
content of script
# end script.py
  1. XML (--style xml):
<file><path>file1.txt</path><content>content of file 1</content></file>

Line Numbers

Add line numbers with custom separator:

promcat --line-numbers --separator ' > '

Output:

=== file1.txt ===
  1 > First line
  2 > Second line

Use Cases

  1. Creating context files for LLM prompting
  2. Combining multiple source files for analysis
  3. Creating documentation from source files
  4. Code review and auditing
  5. Creating backups of text content

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT 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

promcat-0.1.3.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

promcat-0.1.3-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file promcat-0.1.3.tar.gz.

File metadata

  • Download URL: promcat-0.1.3.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.14

File hashes

Hashes for promcat-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6066fbc36f1650520f8524554a017de47cddc33d4a5eb1e5e42fcb5cfe83a7a8
MD5 367cd1d9c5fdc172724e26668d3f519f
BLAKE2b-256 eecf3f9c4d2a0ac135f01f2348b009aef185c1e9994a6991a61feee1e3917b12

See more details on using hashes here.

File details

Details for the file promcat-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: promcat-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.14

File hashes

Hashes for promcat-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 717f82f3a5386ffe3564914f073148a312e5ef5ddfd79ccbe41c26ff3c2d3a44
MD5 8ce4d889cf846f271bc2b4bad74dffef
BLAKE2b-256 928183ef6920bbc2c12ab775d561ff861389272f0df790a82e5a6cfbd82ea34b

See more details on using hashes here.

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