A Python package to convert a repository into flattened files for easier uploading to Large Language Models (LLMs).
- Flattens repository structure by creating single files with path information
- Creates a manifest file showing the original structure
- Configurable ignore lists for directories and file extensions
- Simple command-line interface
pip install repo-flattener
git clone https://github.com/CruiseDevice/repo-flattener.git
cd repo-flattener
pip install -e .
# Basic usage
repo-flattener /path/to/repository
# Specify output directory
repo-flattener /path/to/repository --output flattened_files
# Add custom directories to ignore
repo-flattener /path/to/repository --ignore-dirs build,dist
# Add custom file extensions to ignore
repo-flattener /path/to/repository --ignore-exts .log,.tmp
from repo_flattener import process_repository
# Basic usage
process_repository('/path/to/repository', 'flattened_files')
# With custom ignore lists
process_repository(
'/path/to/repository',
'flattened_files',
ignore_dirs=['build', 'dist'],
ignore_exts=['.log', '.tmp']
)
The tool creates a directory with:
- Flattened files named according to their original path (with path separators replaced by underscores)
- A
file_manifest.txt
showing the original repository structure
pytest
MIT License