Skip to main content

A command-line tool to analyze local git repositories and create a text file containing repository content optimized for sharing with Large Language Models

Reason this release was yanked:

Accidental release, use 1.0.0 or 1.0.3

Project description

repository-context-packager

Version: 0.2.1

A command-line tool to analyze local git repositories and create a text file containing repository content optimized for sharing with Large Language Models.


Features

  • Analyze one or more files or directories
  • Extract Git metadata (latest commit, author, branch)
  • Display full file structure (excluding .git)
  • Output contents of each file
  • Supports flexible CLI usage
  • Basic summary statistics (file count, total lines)

Additional features:

  • Output to File: Output can be written to a file or displayed in terminal
  • File Exclusion: Automatically exclude files and directories listed in .gitignore

Installation Guide

Follow these steps to install and run the Repository Context Packager on your system.

1. Prerequisites

Make sure you have the following installed:

  • Python 3.6+

    python --version
    
  • pip (Python package manager)

    pip --version
    
  • Git (for Git metadata extraction)

    git --version
    

2. Clone the Repository

git clone https://github.com/kphero/repository-context-packager.git
cd repo-context-packager

3. Install Dependencies

pip install -r requirements.txt

4. Test the Installation

python scan-repo.py ./test-directory

Or display help:

python scan-repo.py --help

Troubleshooting

  • Permission Denied: Try running with elevated privileges or check file access rights.
  • Missing GitPython: Run pip install GitPython.
  • Script Not Executing: Ensure you're in the correct directory and using the right Python version.

Command-Line Arguments

Argument Alias Type Description
--version -v Flag Displays tool name and version number
--output [filename] -o Optional Write results to a file. If no filename is given, defaults to output.txt.
paths List One or more file or directory paths to analyze. Defaults to current directory.
--recent -r Flag Include only recently modified files (in the last 7 days)

Configuration via TOML

You can also set default options in .scan-repo-config.toml. Example:

output = "default_output.txt"
recent = false        # Include only recent files? (true/false)
verbose = false
paths = ["src"]        # can be a string or a list of paths
max_file_size = 16384  # in bytes

CLI arguments always override values in the config file. If the file exists but is invalid TOML, the tool will exit with an error.


Usage

python scan-repo.py [-h] [-v] [-r] [paths ...] [-o [OUTPUT]]

Examples

  • Analyze current directory and display results:

    python scan-repo.py .
    
  • Analyze a folder and write results to context-package.md:

    python scan-repo.py ./my_project -o context-package.md
    
  • Analyze multiple files:

    python scan-repo.py file1.txt file2.md
    
  • Analyze recent files in current directory:

    python scan-repo.py . -r
    

    Note: scan-repo.py only detects files located in the same directory as the script. Ensure that all target files are placed in the script’s directory before execution, or that scan-repo.py is placed in the directory where the files are located.


Output Format

# Repository Context

## File System Location

/absolute/path/to/repo/being/analyzed

## Git Info

- Commit: <commit-sha>
- Branch: <branch-name>
- Author: <author-name>
- Date: <commit-date>

## Structure
<project-structure>

## File Contents

### File: <file-name>
<file-content>

## Summary
- Total files: <file-count>
- Total lines: <line-count>

License

MIT License. See LICENSE file for details.


Contributing

All contributions welcome—whether it's fixing bugs, improving documentation, suggesting new features, or submitting code enhancements.


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

repository_context_packager-1.0.2.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

repository_context_packager-1.0.2-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file repository_context_packager-1.0.2.tar.gz.

File metadata

File hashes

Hashes for repository_context_packager-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0c9168787ca084a0ca744098b905328909d128250483d2c9affd2d4c7a4043ea
MD5 ee0a9f2e7054559399f8762deff7b96b
BLAKE2b-256 bb9038a14378a8bc6d1cbd1f0aa13413607aa9d8dcc16cefe11a558ab3fd6853

See more details on using hashes here.

File details

Details for the file repository_context_packager-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for repository_context_packager-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fa19780310689fb853a86b10b44f1f2777e8f3709795939125cec6f9289e15dc
MD5 a80772caf9e48c29762040c135cbdf22
BLAKE2b-256 464840e715f8def6c8da8689004d292e2c5c931180b0e4afa70070a8a7010b6f

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