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.1.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.1-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for repository_context_packager-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9d27bfdc2928ba879c57fec85a1dec79151f8747ce1f1b92c3a2b1a807e01d49
MD5 e9cec7a074f0be1aa2ec3d6365d99d51
BLAKE2b-256 708ae69e5e0236f510011394ef315ca92d03dc2ce5023e56d2ee0480dcf7983a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for repository_context_packager-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dbecb7e29418341293c0f871ff3ef3fd863139ed56dc24a4b7ef9915af527626
MD5 d00b02c6b52ea664fd9739e781b357d2
BLAKE2b-256 726ef217beda53d9ac5559bb0924f0f0ff7cc884eaa6a28ab4d6db198dc4787a

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