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](https://rustup.rs/).

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

```bash
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`.

```bash
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`.

```bash
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.

```bash
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.