Files
codebase-to-prompt/README.md
Gabriel Kaszewski 7c8d2e20c4
Some checks failed
Continuous Integration / Build and Test on ubuntu-latest (push) Successful in 2m2s
Continuous Integration / Build and Test on windows-latest (push) Has been cancelled
fix: update installation script URL from 'main' to 'master'
2025-08-24 14:57:19 +02:00

4.1 KiB

Codebase to Prompt

CI Release

codebase-to-prompt is a Rust-based CLI tool designed to bundle files from a directory into a single output file. It supports filtering files by extensions, respecting .gitignore rules, and formatting the output in Markdown, plain text, or console-friendly formats.

Features

  • File Filtering: Include or exclude files based on their extensions.
  • Output Formats: Supports Markdown, plain text, and console-friendly formats.
  • Git Integration: Optionally append the current Git hash to the output file name.
  • Date Integration: Optionally append the current date to the output file name.
  • Line Numbers: Include line numbers in the output.
  • Hidden Files: Optionally ignore hidden files.
  • .gitignore Respect: Optionally respect .gitignore rules.

Installation

There are multiple ways to install codebase-to-prompt.

If you have the Rust toolchain installed, you can easily install the latest version from crates.io:

cargo install codebase-to-prompt

Option 2: Using the Install Script (for Linux & macOS)

You can download and run the installation script, which will install the latest release binary for your system:

curl -fsSL https://raw.githubusercontent.com/GKaszewski/codebase-to-prompt/master/install.sh | sh

Option 3: From GitHub Releases

You can download the pre-compiled binary for your operating system directly from the Releases page.

Option 4: Building from Source

  1. Ensure you have Rust installed.
  2. Clone this repository:
    git clone https://github.com/GKaszewski/codebase-to-prompt
    cd codebase-to-prompt
    
  3. Build the project:
    cargo build --release
    
  4. The binary will be available at target/release/codebase-to-prompt.

Usage

Run the tool with the following options:

codebase-to-prompt [OPTIONS] [DIRECTORY]

Options

  • -o, --output <FILE>: Specify the output file. Defaults to stdout if not provided.
  • -i, --include <EXTENSIONS>: Comma-separated list of file extensions to include.
  • -e, --exclude <EXTENSIONS>: Comma-separated list of file extensions to exclude.
  • --format <FORMAT>: Output format (console, markdown, text). Defaults to console.
  • -d, --append-date: Append the current date to the output file name.
  • -g, --append-git-hash: Append the current Git hash to the output file name.
  • -l, --line-numbers: Include line numbers in the output.
  • -H, --ignore-hidden: Ignore hidden files.
  • -R, --respect-gitignore: Respect .gitignore rules. Enabled by default.

Examples

  1. Bundle all .rs files in the current directory into output.md in Markdown format:

    codebase-to-prompt -o output.md -i rs
    
  2. Bundle all files except .log files, appending the current date and Git hash to the output file name:

    codebase-to-prompt -o output.txt -e log -d -g
    
  3. Output all files to the console, including line numbers:

    codebase-to-prompt -l
    

Development

Prerequisites

  • Rust (latest stable version recommended)

Building

To build the project:

cargo build --release

Running Tests

To run tests:

cargo test

Linting and Formatting

To lint the code:

cargo clippy

To format the code:

cargo fmt

License

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

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.