Metadata-Version: 2.2
Name: fluxative
Version: 0.1.2
Summary: Generate LLM context files from Git repositories
Author: JakePIXL
License: MIT
Project-URL: Homepage, https://github.com/JakePIXL/fluxative
Project-URL: Repository, https://github.com/JakePIXL/fluxative
Project-URL: Issues, https://github.com/JakePIXL/fluxative/issues
Project-URL: Changelog, https://github.com/JakePIXL/fluxative/releases
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gitingest>=0.1.4
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: ruff>=0.9.10; extra == "dev"

# Fluxative

A tool to convert Git repositories into standardized context files for LLM consumption. Consists of three main components:

- `converter.py`: Converts GitIngest output to llms.txt and llms-full.txt formats
- `expander.py`: Expands llms.txt files with actual file content from GitIngest
- `llmgentool.py`: Integrates both modules for an end-to-end solution

## Features

- Generate LLM-friendly context files from Git repositories or GitHub URLs
- Creates five output files:
  - `repo-raw.txt`: Complete original GitIngest output with Summary, Tree, and File Contents
  - `repo-llms.txt`: Basic repository summary with original structure preserved
  - `repo-llms-full.txt`: Comprehensive repository summary with original structure preserved
  - `repo-llms-ctx.txt`: Basic summary with file contents
  - `repo-llms-full-ctx.txt`: Comprehensive summary with file contents
- Preserves the full structure (Summary, Tree, and Content) from GitIngest
- Automatically organizes output files in a directory named after the repository

## Installation

### Using uv

```bash
uv install git+https://github.com/JakePIXL/Fluxative.git
```

### From source

```bash
git clone https://github.com/JakePIXL/Fluxative.git
cd Fluxative
pip install -e .
```

### For development

```bash
git clone https://github.com/JakePIXL/Fluxative.git
cd Fluxative
pip install -e ".[dev]"
```

## Usage

### As a command-line tool

```bash
# Process a local repository
fluxative /path/to/repo

# Process a GitHub URL
fluxative https://github.com/username/repo

# Specify an output directory
fluxative /path/to/repo --output-dir /custom/output/path
```

### With uvx

If you have [uv](https://docs.astral.sh/uv) installed:

```bash
# Process a repository
uvx fluxative /path/to/repo

# With output directory
uvx fluxative /path/to/repo -o /custom/output/path
```

## Output

The tool creates a directory named `<repo-name>-docs` containing:

- `<repo-name>-raw.txt`: Complete original GitIngest output with Summary, Tree structure, and File Contents
- `<repo-name>-llms.txt`: Basic overview of the repository including original structure
- `<repo-name>-llms-full.txt`: Comprehensive overview with all files including original structure
- `<repo-name>-llms-ctx.txt`: Basic overview with embedded file contents
- `<repo-name>-llms-full-ctx.txt`: Comprehensive overview with all embedded file contents

Each file preserves the original structure from GitIngest, ensuring you have access to:
- Repository summary (name, URL, branch, commit)
- Complete directory tree structure
- File contents organized by category

## Requirements

- Python 3.10+
- GitIngest 0.1.4 or higher

## License

MIT License. See [LICENSE](LICENSE) for more information.
