join-ai 0.1.0

A tool to traverse files in a folder and concatenate them into a single text file for GenAI models.
Documentation

Join-AI

A CLI tool to intelligently find and concatenate files into a single text file, perfect for creating context for GenAI models like GPT and Gemini.

Tired of manually copying and pasting code into a prompt? join-ai automates the process of gathering all relevant source files into one neatly formatted file, ready for analysis.

Features

  • Recursive File Search: Traverses directories to find all matching files.
  • Powerful Filtering: Include files using glob patterns (-p "*.rs") and exclude specific folders (-e target), extensions, and hidden files.
  • Smart Content Detection: Automatically detects and skips binary files to keep your context clean.
  • Configurable: Control search depth, follow symlinks, and more.
  • Fast: Built in Rust with a parallel file walker for excellent performance.
  • Easy to Use: Simple and intuitive command-line interface inspired by modern CLI tools.

Installation

Make sure you have the Rust toolchain installed. You can get it at rustup.rs.

Then, install join-ai directly from crates.io using Cargo:

cargo install join-ai

Usage Examples

1. Concatenate a Rust Project

This will find all .rs and .toml files in the current directory (.), exclude the target and .git folders, and save the result to rust_project.txt.

join-ai -p "*.rs" -p "*.toml" -e target -e .git -o rust_project.txt .

2. Concatenate a Python Project

This will find all .py files, excluding the virtual environment folder, and use the default output file concatenated.txt.

join-ai -p "*.py" -e .venv .

3. Concatenate Web Project Files

This will find all JavaScript, HTML, and CSS files, excluding the node_modules directory.

join-ai -p "*.js" -p "*.html" -p "*.css" -e node_modules .

Command-Line Options

You can get a full and up-to-date list by running join-ai --help.

Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request.