Skip to main content

Generate AI prompts from Git repositories with file tree structures and content

Project description

Codebase AI Prompt Generator

PyPI version Python Versions CI License: MIT

A tool to scan a Git repository and generate a comprehensive prompt for AI models, including file tree structure, file paths, and content.

Features

  • Creates a hierarchical file tree representation of a repository
  • Includes file contents formatted for AI prompts
  • Customizable file inclusion/exclusion via patterns
  • Option to save output to a file or print to console
  • Automatically respects local and global .gitignore files
  • Cursor IDE integration with one command
  • Automatically excludes .git directories
  • Installable CLI tool

Installation

# From PyPI (recommended)
pip install codebase-ai-prompt-generator

# From source
git clone https://github.com/DengYiping/codebase-ai-prompt-generator.git
cd codebase-ai-prompt-generator
pip install -e .

Usage

After installation, you can use the codebase-prompt command directly from your terminal:

# Basic usage (scans current directory)
codebase-prompt

# Scan a specific repository
codebase-prompt /path/to/repository

# Exclude specific file patterns
codebase-prompt --exclude "*.log" "*.tmp" ".env"

# Include only specific file patterns
codebase-prompt --include "*.py" "*.js" "*.html"

# Write output to a file
codebase-prompt --output prompt.md

# Show version information
codebase-prompt --version

# Ignore .gitignore files (both local and global)
codebase-prompt --no-gitignore

# Output to Cursor IDE rules directory
codebase-prompt --cursor

# Combine options
codebase-prompt /path/to/repository --exclude "node_modules" "*.pyc" --include "*.py" "*.js" --output prompt.md

Default Exclusions

The tool automatically excludes certain files and directories to keep the output clean and relevant:

  • .git directory and all its contents (always excluded)
  • Files matching patterns in .gitignore files (unless --no-gitignore is used)
  • Common build artifacts and cache directories (__pycache__, *.pyc, node_modules, etc.)

These exclusions help reduce noise and keep the generated prompt focused on the actual codebase content.

.gitignore Support

By default, the tool respects both:

  • The repository's local .gitignore file
  • The user's global gitignore file (found via git config --global --get core.excludesfile)

Files matching any pattern in these files will be excluded from the output. To disable this feature, use the --no-gitignore flag.

Cursor IDE Integration

The --cursor flag automatically generates a prompt file at .cursor/rules/entire-codebase.mdc in your repository. This allows Cursor IDE to use your codebase as context when you're working with AI assistance.

To use:

  1. Navigate to your repository
  2. Run codebase-prompt --cursor
  3. The prompt will be available to Cursor IDE

The --cursor flag overrides the --output flag if both are specified.

Example Output

The generated prompt will have the following structure:

# Repository: repo-name

## File Tree Structure

📁 src/
📄 src/main.py
📄 src/utils.py
📁 tests/
📄 tests/test_main.py
📄 README.md

## File Contents

### src/main.py

```python
def main():
    print("Hello World")

src/utils.py

def helper():
    return "Helper function"

...


## Use Cases

- Generate prompts for AI code assistants to understand your entire codebase
- Create documentation snapshots of your repository
- Share codebase context with AI models for better assistance
- Provide comprehensive context to LLMs for code-related questions
- Integrate with Cursor IDE for better AI-assisted coding

## Development

To set up the development environment:

```bash
# Clone the repository
git clone https://github.com/DengYiping/codebase-ai-prompt-generator.git
cd codebase-ai-prompt-generator

# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e .

Publishing to PyPI

This project is configured with GitHub Actions to automatically publish to PyPI when a new release is created:

Automated Release Process

  1. Run the release preparation script to update the version:

    python scripts/prepare_release.py [major|minor|patch]
    

    This script will:

    • Update the version in codebase_prompt_gen/__init__.py
    • Create a git commit with the version change
    • Create a git tag for the new version
  2. Push the changes and tag to GitHub:

    git push origin main && git push origin v0.x.y
    
  3. Create a new GitHub release from the tag

    • Go to your repository on GitHub
    • Navigate to "Releases"
    • Click "Create a new release"
    • Select the tag you just pushed
    • Add release notes
    • Publish the release
  4. The GitHub Actions workflow will automatically:

    • Build the package
    • Publish it to PyPI

Setting up PyPI publishing

To set up publishing, you'll need to:

  1. Create an account on PyPI
  2. Generate an API token in your PyPI account settings
  3. Add the token as a secret in your GitHub repository settings:
    • Go to your repository → Settings → Secrets and variables → Actions
    • Add a new secret named PYPI_API_TOKEN with your PyPI token as the value

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

codebase_ai_prompt_generator-0.1.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

codebase_ai_prompt_generator-0.1.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file codebase_ai_prompt_generator-0.1.0.tar.gz.

File metadata

File hashes

Hashes for codebase_ai_prompt_generator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c6ad409c3ea171569d71402c66e099796c13bfd88f93c045a6ac44bf18b362b2
MD5 edf6a3a3a84191bf90fed30d91279720
BLAKE2b-256 eaab25ac6b6841c4007f7c7df8c66675e08adc8fddb5ec445099b812d95acf22

See more details on using hashes here.

Provenance

The following attestation bundles were made for codebase_ai_prompt_generator-0.1.0.tar.gz:

Publisher: publish.yml on DengYiping/codebase-ai-prompt-generator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file codebase_ai_prompt_generator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for codebase_ai_prompt_generator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1eab0386b5173e9f579bd01b75f3271d1622d4f5f461e40087ebaa20d2da941
MD5 a035d5fb96559aaab895e56c64c845b9
BLAKE2b-256 324bbd3210feb2c8dc268e2929c756e2d3e8b0ffc345fe57dd3344d149440090

See more details on using hashes here.

Provenance

The following attestation bundles were made for codebase_ai_prompt_generator-0.1.0-py3-none-any.whl:

Publisher: publish.yml on DengYiping/codebase-ai-prompt-generator

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