Metadata-Version: 2.4
Name: roastapi-sdk
Version: 0.1.0
Summary: Python SDK and CLI for RoastAPI — AI-powered roasts as a service
Author-email: amaziagur <amaziagur@gmail.com>
License: MIT
Project-URL: Homepage, https://roastapi.vercel.app
Project-URL: Repository, https://github.com/amaziahub/roastapi-python
Keywords: roast,ai,cli,api,humor
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.27
Requires-Dist: click>=8.1

# roastapi-python

Python SDK and CLI for [RoastAPI](https://roastapi.vercel.app) — AI-powered roasts as a service.

## Install

```bash
pip install roastapi
```

## CLI

```bash
# Random roast
roast random

# Roast by category
roast category developer --level brutal --style gordon_ramsay

# Personalised roast
roast me --name Chad --job "10x Engineer" --bio "I move fast and break things"

# Roast a file
roast code main.py

# Roast inline code
roast code --code "for i in range(len(arr)):"

# Pipe code in
cat main.py | roast code
```

### Options

| Flag | Options | Default |
|------|---------|---------|
| `--level` / `-l` | `mild` `medium` `savage` `brutal` | `savage` |
| `--style` / `-s` | `default` `gordon_ramsay` `shakespeare` `corporate` `senior_dev` | `default` |

### Example output

```
  Your pull requests have more unresolved comments than a Reddit thread, your
  variable names read like a keyboard smash, and somehow you're still surprised
  when the build breaks. Here's a tip: git blame yourself.

  💥 8.3/10  |  savage  |  gordon_ramsay  |  developer
```

## SDK

```python
from roastapi import RoastAPI

with RoastAPI() as client:
    # Random roast
    r = client.roast(level="brutal")
    print(r.roast)
    print(r.damage_rating)  # e.g. 8.3

    # Roast by category
    r = client.roast_category("developer", style="gordon_ramsay")

    # Personalised roast
    r = client.roast_me(name="Chad", job="10x Engineer")

    # Roast code
    r = client.roast_code(open("main.py").read())
    print(r)  # str(response) returns the roast text
```

### RoastResponse

```python
@dataclass
class RoastResponse:
    roast: str
    damage_rating: float
    level: str
    style: str
    category: str | None
```

## Environment variables

| Variable | Description |
|----------|-------------|
| `ROASTAPI_KEY` | API key for paid tiers |
| `ROASTAPI_URL` | Override base URL (e.g. for local dev) |

```bash
export ROASTAPI_URL=http://localhost:8000
roast random
```
