feedyourai 1.0.13

A tool to combine text files for AI processing with filtering options.
# FeedYourAI

A command-line tool to combine text files from a directory into a single file for AI processing, with flexible filtering options.

## Features

- Combines multiple text files into one output file
- Filters files by:
  - Size
  - File extensions (e.g., `.txt`, `.md`)
  - Custom minimum and maximum size limits
- Preserves file boundaries with headers showing filename and size
- Customizable input directory and output file

## Installation

### Prerequisites

- [Rust]https://www.rust-lang.org/tools/install (latest stable version recommended)

### Install via Cargo

```bash
cargo install --git https://github.com/alexandretrotel/feedyourai.git
```

Or, clone and install locally:

```bash
git clone https://github.com/alexandretrotel/feedyourai.git
cd feedyourai
cargo install --path .
```

This installs the `feedyourai` binary to `~/.cargo/bin/`. Ensure this directory is in your `PATH`.

## Usage

Run `fyai` in your terminal to combine files:

### Basic Usage

```bash
fyai
```

- Combines all files ≥ 50KB from the current directory into `feedyourai.txt`

### Options

```
USAGE:
    fyai [OPTIONS]

OPTIONS:
    -d, --dir <DIR>          Sets the input directory [default: .]
    -o, --output <FILE>      Sets the output file [default: feedyourai.txt]
    -e, --ext <EXT>          Comma-separated list of file extensions to include (e.g., txt,md)
    -n, --min-size <BYTES>   Exclude files smaller than this size in bytes (default: 51200)
    -m, --max-size <BYTES>   Exclude files larger than this size in bytes
    -h, --help               Print help information
    -V, --version            Print version information
```

### Examples

- Combine `.txt` and `.md` files from a specific directory:

  ```bash
  fyai -d ./docs -e txt,md
  ```

- Include all files (no size minimum) up to 1MB:

  ```bash
  fyai -n 0 -m 1048576
  ```

- Custom output file with files between 10KB and 500KB:
  ```bash
  fyai -n 10240 -m 512000 -o ai_input.txt
  ```

## Output Format

The combined file includes headers for each source file:

```
=== File: example.txt (12345 bytes) ===
[contents of example.txt]

=== File: notes.md (67890 bytes) ===
[contents of notes.md]
```

## Building from Source

1. Clone the repository:

   ```bash
   git clone https://github.com/alexandretrotel/feedyourai.git
   cd feedyourai
   ```

2. Build the project:

   ```bash
   cargo build --release
   ```

3. Run it directly:
   ```bash
   ./target/release/fyai
   ```

## Contributing

Contributions are welcome! Please:

1. Fork the repository
2. Create a feature branch
3. Submit a pull request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built with [Rust]https://www.rust-lang.org/
- Uses [clap]https://crates.io/crates/clap for command-line parsing