Metadata-Version: 2.4
Name: openrouterfreescanner
Version: 1.0.1
Summary: CLI and programmatically fetcher for open router current free models with advanced filtering.
Home-page: https://github.com/yourusername/openrouter-free-scanner
Author: Your Name
Author-email: tcsenpai <tcsenpai@discus.sh>
Project-URL: Homepage, https://github.com/tcsenpai/openrouter-free-scanner
Project-URL: Bug Tracker, https://github.com/tcsenpai/openrouter-free-scanner/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# OpenRouter Free Scanner

A simple command-line tool and Python library to fetch, filter, and save a list of free models from OpenRouter.ai.

## Installation

```bash
pip install .
```

## Command-Line Usage

To display the list of free models in the console:

```bash
openrouterfreescanner
```

To save the list of free models to a JSON file named `free_models.json`:

```bash
openrouterfreescanner -o
```

### Advanced Usage

- `--limit <N>`: Limit the number of models returned.
- `--name <string>`: Filter models by name.
- `--min-context-length <N>`: Filter by minimum context length.
- `--provider <string>`: Filter by provider.
- `--sort-by <field>`: Sort models by a specific field (e.g., `name`, `context_length`).
- `--reverse`: Reverse the sort order.

**Example:** Get the top 5 free models with the longest context length:

```bash
openrouterfreescanner --limit 5 --sort-by context_length --reverse
```

## Programmatic Usage

You can also use this package as a library in your Python code:

```python
import openrouterfreescanner

# Get only free models
free_models = openrouterfreescanner.get_free_models()

# Get free models, including routers
free_models_with_routers = openrouterfreescanner.get_free_models(exclude_routers=False)

# Filter free models by name
gemma_models = openrouterfreescanner.filter_models(free_models, name="gemma")

# Filter free models by provider and context length
filtered_models = openrouterfreescanner.filter_models(free_models, provider="google", min_context_length=8000)

# Sort free models by context length in descending order
sorted_models = openrouterfreescanner.sort_models(free_models, sort_by="context_length", reverse=True)
```
