Metadata-Version: 2.5
Name: aioli-cli
Version: 0.3.6
Summary: aioli — local-first AI media suite CLI (images, video, music, voice, stt, podcast)
Author: aioli contributors
License: MIT
License-File: LICENSE
Keywords: ai,generative,image,local-first,music,tts,video
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27
Requires-Dist: huggingface-hub>=0.30
Requires-Dist: inquirerpy>=0.3.4
Requires-Dist: numpy>=1.26
Requires-Dist: pillow>=13.0
Requires-Dist: pydantic-settings>=2.3
Requires-Dist: pydantic>=2.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: soundfile>=0.12
Requires-Dist: typer>=0.12
Provides-Extra: voice-kokoro
Requires-Dist: kokoro-onnx>=0.4; extra == 'voice-kokoro'
Provides-Extra: voice-piper
Requires-Dist: piper-tts>=1.2; extra == 'voice-piper'
Description-Content-Type: text/markdown

<p align="center">
  <img src="assets/logo-transparent.png" width="220" alt="logo de aioli — ajo robot" />
</p>

<h1 align="center">🧄 aioli</h1>

<p align="center">
  <em>Tu estudio de IA en casa: clona voces, compón canciones, dibuja imágenes,<br />genera vídeo y produce podcasts. Todo en tu máquina. Sin nube.</em>
</p>

<p align="center">
  <a href="https://pypi.org/project/aioli-cli/"><img src="https://img.shields.io/pypi/v/aioli-cli" alt="versión en PyPI" /></a>
  <img src="https://img.shields.io/badge/python-%3E%3D3.12-blue" alt="python >= 3.12" />
  <img src="https://img.shields.io/badge/license-MIT-green" alt="MIT" />
  <img src="https://img.shields.io/badge/GPU-NVIDIA%20recomendada-orange" alt="GPU NVIDIA recomendada" />
</p>

<p align="center">
  🎙️ Voz &nbsp;•&nbsp; 🎵 Música &nbsp;•&nbsp; 🖼️ Imagen &nbsp;•&nbsp; 🎬 Vídeo &nbsp;•&nbsp; 🎧 Master &nbsp;•&nbsp; 📻 Podcast
</p>

---

## Qué hace (con ejemplos reales)

| Plugin | Produce | Ejemplo |
| --- | --- | --- |
| 🎙️ `voice` | Voz clonada o sintética en WAV (español nativo con chatterbox, borradores gratis en CPU con piper) | `aioli voice "Hola mundo" --profile vega -o hola.wav` |
| 🎵 `music` | Canción completa (voz + instrumentos) a partir de un estilo y tu letra; canta en español | `aioli music --preset reggae-consciente -l mi-letra.txt -o tema.mp3` |
| 🖼️ `image` | Imagen desde texto, edición, inpainting o referencia de personaje (~9 s con FLUX-klein-4b) | `aioli image "un ajo robot"` |
| 🎬 `video` | Clip MP4 con audio sincronizado desde texto o imagen | `aioli video "un ajo robot bailando" --frames 81 -o ajo.mp4` |
| 📝 `stt` | Transcripción local: audio (o vídeo) a texto y subtítulos `.srt`/`.vtt` con tiempos por palabra | `aioli stt entrevista.mp3 -o subs.srt` |
| 🎧 `master` | Acabado de audio con ffmpeg: mezcla, ducking, reducción de ruido, `-16 LUFS` | `aioli master loudnorm mezcla.wav -o final.wav` |
| 📻 `podcast` | Episodio MP3 + notas del programa a partir de un guion (voces + cama musical + pausas) | `aioli podcast episode guion.md -o ./ep1` |

19 canciones, sus carátulas y varios clips se hicieron así, en local,
con estos comandos. Sin cuentas ni suscripciones.

## Cómo funciona

1. `aioli install` inspecciona tu máquina y te dice qué cabe en tu GPU.
2. `aioli models download` descarga pesos verificados (sha256, reanudables)
   en `~/.local/share/aioli/models` (o donde apunte `AIOLI_MODELS_DIR`).
3. Generas en local: ni un byte sale de tu máquina. Sin cuentas ni
   suscripciones (ningún modelo del catálogo pide cuenta de HuggingFace).

## Instalación

Tres pasos (Linux, Mac y Windows):

```bash
# 1. uv, el instalador de Python de Astral (si no lo tienes ya)
curl -LsSf https://astral.sh/uv/install.sh | sh          # Linux y Mac
# Windows (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 2. aioli
uv tool install aioli-cli

# 3. el asistente: mira tu equipo, te recomienda qué cabe y descarga solo lo que elijas
aioli install
```

Necesitas también `ffmpeg` (Linux: `sudo apt install ffmpeg` · Mac:
`brew install ffmpeg` · Windows: `winget install ffmpeg`). `aioli doctor`
te dice si falta algo y cómo arreglarlo. Para actualizar: `aioli update`.

> Próximamente: instalador de un solo comando que hace los tres pasos (y
> ffmpeg, preguntando antes). Ya está en `install.sh` del repo.

### ¿No eres técnico? Pídeselo a tu asistente de IA

Si usas Claude Code (u otro asistente que ejecuta comandos):

```bash
aioli agent install     # le enseña a tu asistente a instalar y usar aioli
```

Y luego pídele, sin más: *«instálame aioli para hacer canciones con mi letra»*.
El asistente mira tu equipo (`aioli status --json`), te propone qué instalar con
su tamaño y licencia, **pregunta antes de descargar** y nunca usa `sudo`.
Para otros asistentes, `aioli agent guide` imprime la misma guía.

## Requisitos

| Qué | Mínimo | Recomendado |
| --- | --- | --- |
| SO | Linux (Ubuntu 22.04+), Mac | Ubuntu 24.04 |
| GPU | ninguna (voz en CPU con piper) | NVIDIA 12–16 GB de VRAM |
| Disco | 15 GB (un plugin) | 100 GB (el conjunto completo ≈ 60 GB) |
| Cuenta | — | — (sin cuentas: espejos públicos verificados) |

`aioli install` detecta tu máquina (nivel `patata/modesta/capaz/bicha`,
sí, de patata a bestia) y solo descarga lo que cabe. Los pesos se verifican
con sha256 y se reanudan si se corta tu conexión.

## Uso

Camino feliz: `aioli install` → `aioli <plugin> "texto"` → `aioli doctor`
(solo si algo falla). Las recetas por modelo están en `docs/USAGE.md`.

```bash
# imagen: texto → PNG (edición, inpainting y referencia disponibles)
aioli image "un faro en la niebla"
aioli image "un faro en la niebla" -m z-image-turbo -o faro.png

# música: estilo + tu letra → canción completa
aioli music "rumba alegre" -l mi-letra.txt -o tema.mp3
aioli music generate --preset reggae-consciente -l mi-letra.txt -o tema.mp3

# voz: crea un perfil, añade una muestra con su transcripción, genera
aioli voice profiles create vega --language es
aioli voice profiles add-sample vega ref.wav -t "transcripción exacta del audio"
aioli voice "Hola mundo" --profile vega --engine chatterbox -o hola.wav

# vídeo: texto o imagen → clip con audio
aioli video "un ajo robot bailando" --frames 81 -o ajo.mp4

# podcast: guion con [ROL], [MUSIC:] y [PAUSE:] → episodio + notas
aioli podcast episode guion.md -o ./ep1

# master: remata cualquier audio (mezcla, ducking, -16 LUFS…)
aioli master loudnorm mezcla.wav -o final.wav
```

`aioli <plugin> --help` detalla cada comando; `aioli doctor` diagnostica
los fallos.

## Licencia

MIT. Los pesos de terceros llevan su propia licencia (algunos no comerciales
o con aceptación previa en HuggingFace); `aioli models` te avisa.
