claude-unlimited
Construye proyectos enteros gastando una fracción de los tokens de Claude.
claude-unlimited saca el trabajo pesado fuera del contexto de Claude: en lugar de que Claude planee, escriba, revise e itere dentro de tu conversación —quemando tokens en cada vuelta, en cada archivo completo y en cada screenshot— delega todo el loop a una CLI que corre sobre un gateway local. Claude solo gasta tokens en una cosa: mandar el prompt y leer el resumen final.
[!TIP] Por qué gastas muchísimos menos tokens de Claude:
- El loop no vive en el contexto de Claude. Las decenas de iteraciones (plan → code → QA → review → repetir), los contenidos completos de archivos, las capturas y las críticas ocurren en un proceso aparte. Nunca entran a tu ventana de contexto ni a tu factura de Claude.
- Cada rol usa el combo más barato que sirve, no el modelo premium para todo: el reasoning va a
auto/pro-reasoning, el código aauto/best-coding, la visión aauto/best-vision, el reformateo aauto/best-fast. OmniRoute enruta cada combo al proveedor/modelo óptimo (incluidos gratis o económicos).- Resultado: una tarea grande que en Claude directo costaría miles de tokens de contexto, aquí le cuesta a Claude apenas el prompt y el resumen. El resto se externaliza al gateway.
Orquestador multi-agente para desarrollo de software de cualquier tipo (frontend, backend, CLIs, scripts, librerías, config…). A partir de un solo prompt corre el loop plan → code → QA → review → iterar → cierre sobre un gateway local OpenAI-compatible, dejando que el orchestrator decida cómo verificar cada tarea.
El QA visual es opcional: cuando una tarea es de UI web renderizable y ver el resultado aporta, el orchestrator la marca para QA visual y el loop usa una skill externa de renderizado (por defecto websight) para capturar la página y dársela a un modelo con visión. Para todo lo demás la revisión es solo lógica (contenido de archivos contra criterios), sin navegador.
[!NOTE] No necesitas instalar websight.
claude-unlimitedywebsightson skills separadas. websight (o cualquier renderizador equivalente víaRENDER_BIN) solo se usa si el orchestrator activa QA visual en alguna tarea. Si no hay renderizador disponible, el loop avisa y degrada a revisión solo lógica — nunca se cae ni te obliga a instalar nada. Para proyectos sin UI (backend, CLIs, scripts, librerías, config) websight no se toca en absoluto.
Cero dependencias de runtime (Node 24 trae fetch y web-streams nativos). El CLI
solo habla con el gateway local: no pide, lee ni almacena claves de proveedores
(Regla de Cero Claves). Las claves viven en el gateway, no aquí.
Gateway: OmniRoute
claude-unlimited habla con OmniRoute
(de @diegosouzapw), un gateway local
OpenAI-compatible que expone combos como modelos (auto/pro-reasoning,
auto/best-coding, auto/best-vision, auto/best-fast, …) y enruta a los proveedores
por debajo. claude-unlimited no es OmniRoute ni lo incluye; solo lo consume.
Cómo funciona
- plan — el orchestrator (
auto/pro-reasoning) descompone el objetivo en un Blueprint JSON: tareas, archivos objetivo, criterios de QA y, por tarea, un booleanovisual_qa(si esa tarea necesita QA visual con websight o no). - Por cada tarea, hasta
max_iterationsveces:- code — el coder (
auto/best-coding) devuelve el contenido completo de los archivos y se escriben en--target-dir(con guard de path-traversal). - QA visual (opcional) — si
visual_qaes true,websightrenderiza la página y devuelve un screenshot comodata:image/...;base64(bloqueimage_url). - review — el reviewer (
auto/best-vision) recibe el contenido de los archivos- los criterios (y el screenshot si hubo QA visual) y responde
{approved, critiques}.
- los criterios (y el screenshot si hubo QA visual) y responde
- Si aprueba, la tarea termina; si no, las críticas se realimentan al coder.
- code — el coder (
- cierre — resumen por tarea y código de salida (
0todo aprobado,2algo sin aprobar,1error de arranque).
Las respuestas de los roles son JSON estricto; el parseo tolera fences ```json
y, si un modelo se sale del formato, un formateador hace una pasada correctiva
(vía auto/best-fast) para recuperar el JSON antes de rendirse. El loop es resiliente:
un fallo en una tarea no tumba la corrida ni pierde los resultados previos.
Requisitos
- Node.js ≥ 20 (probado en v24).
- OmniRoute corriendo en local, exponiendo al menos los combos
auto/pro-reasoning,auto/best-coding,auto/best-fast(yauto/best-visionsi usarás QA visual). - Una skill de renderizado instalada solo si vas a usar QA visual — por defecto
websight
(
npm i -g github:luisxavierxd/websight), pero sirve cualquier CLI con el contratorender <target> --viewport <vp> --base64→ data-URI (apúntala conRENDER_BIN). No es obligatoria: si una tarea pide QA visual y no hay renderizador disponible, el loop avisa y degrada a revisión solo lógica (no falla la tarea). Si no usas QA visual, no necesitas instalar nada de esto.
Instalación
npm install -g github:luisxavierxd/claude-unlimited
O para trabajarlo localmente:
git clone https://github.com/luisxavierxd/claude-unlimited.git
cd claude-unlimited
npm link # (opcional) expone el bin `claude-unlimited` global
Como plugin de Claude Code
El repo es también un marketplace/plugin de Claude Code autocontenido:
/plugin marketplace add luisxavierxd/claude-unlimited
/plugin install claude-unlimited@claude-unlimited
Instala una skill que enseña al agente cómo orquestar claude-unlimited y qué prompts convienen para cada tipo de proyecto (ver SKILL.md).
Uso
claude-unlimited "<prompt>" [--target-dir .] [--url URL] [--viewport desktop|mobile] [--max-iterations N]
Ejemplo (UI web → el orchestrator activará QA visual):
claude-unlimited "una landing con hero centrado, botón CTA y fondo degradado azul→rojo" \
--target-dir ./demo
# abre ./demo/index.html en el navegador para ver el resultado
Ejemplo (backend/CLI → revisión solo lógica, sin websight):
claude-unlimited "un script Node que lea un CSV y emita un resumen JSON por columna" \
--target-dir ./tool
--target-dir— dónde escribe el coder (default.). El render por defecto (si hay QA visual) es<target-dir>/index.html.--url— renderiza una URL en vez del archivo local generado (QA visual).--viewport—desktop(default) omobile.--max-iterations— tope de iteraciones por tarea (si no, usa el del Blueprint).
Los eventos (planeando, coder, captura, reviewer, críticas, errores, resumen) se streamean a stderr; el texto generado por los modelos va a stdout.
Variables de entorno
| Variable | Default | Para qué |
|---|---|---|
OMNIROUTE_BASE_URL |
http://localhost:20128/v1 |
Base URL del gateway. |
OMNIROUTE_API_KEY |
(vacío) | Token propio del gateway (opcional). No es clave de proveedor. |
RENDER_BIN |
(descubre) | Binario de la skill de renderizado para QA visual (websight u otra con el mismo contrato). Si no se define, se busca websight en el PATH. |
WEBSIGHT_BIN |
websight |
Alias retrocompatible de RENDER_BIN. |
Tests
npm test # node --test, sin red real ni navegador
Los tests usan un mock de OmniRoute (servidor HTTP con SSE) y un stub de websight, así que corren sin gateway ni Chromium.
Limitaciones conocidas (MVP)
- El
targetde QA visual debe ser una URLhttp(s)://simple o una ruta absoluta, sin metacaracteres de shell (& | ( ) % " ...); rutas con espacios no están soportadas (endurecimiento de seguridad del subproceso en Windows). - Fuera de alcance de este MVP: quality floor por tier, Graceful Exit por piso,
--resume/estado, prompt caching, audit log, proyectos multi-repo.
Licencia
MIT © 2026 Luis Xavier García Pimentel Ascencio — ver LICENSE.
No comments yet
Be the first to share your take.