Dazzle
Etapas en la nube para agentes de IA: entornos de navegador aislados que renderizan y transmiten tu contenido a Twitch, Kick, Restream y RTMP personalizado.
Documentación
dazzle
El CLI oficial y servidor MCP para Dazzle — etapas en la nube para agentes de IA y transmisión en vivo.
Un binario, dos interfaces:
- CLI — acceso completo a shell para agentes de codificación (Claude Code, Cursor, terminales) y automatización
- Servidor MCP (
dazzle mcp) — integración stdio para clientes en sandbox (Claude Desktop, VS Code, cualquier host MCP)
Instalación
macOS / Linux
curl -sSL https://dazzle.fm/install.sh | sh
Windows (PowerShell)
irm https://dazzle.fm/install.ps1 | iex
Otras opciones
go install github.com/dazzle-labs/cli/cmd/dazzle@latest
Los binarios precompilados para macOS (arm64/amd64), Linux (amd64/arm64) y Windows (amd64/arm64) están en la página de lanzamientos.
Inicio rápido (CLI)
dazzle login # authenticate (opens browser)
dazzle stage create my-stage # create a stage
dazzle stage up # activate — starts streaming
dazzle stage sync ./my-app --watch # push content, auto-refresh on changes
dazzle stage screenshot -o preview.png # verify output
dazzle destination add # add Twitch/Kick/custom RTMP
dazzle destination attach my-destination # go live
Inicio rápido (MCP)
Añade a la configuración de tu cliente MCP:
{
"mcpServers": {
"dazzle": {
"command": "dazzle",
"args": ["mcp"]
}
}
}
El servidor MCP se inicia sin credenciales: los agentes pueden llamar a guide para conocer la plataforma y a cli ["login"] para autenticarse.
Herramientas MCP
| Herramienta | Descripción |
|---|---|
cli | Ejecuta un comando CLI de dazzle. Usa ["--help"] para descubrir los comandos disponibles. La salida es JSON. |
edit_file | Edita un archivo en el espacio de trabajo del stage mediante reemplazo exacto de cadenas. old_string debe coincidir exactamente una vez en el archivo. Usa read_file primero para ver el contenido actual. |
guide | Obtén la referencia completa de Dazzle: introducción, comandos CLI, capacidades de contenido y configuración de streaming. Léelo antes de crear o modificar contenido del stage. |
list_files | Lista todos los archivos en el espacio de trabajo del stage (~/.dazzle/stages/{stage}/). Devuelve rutas relativas, una por línea. |
read_file | Lee un archivo del espacio de trabajo del stage (~/.dazzle/stages/{stage}/{path}). |
screenshot | Captura una captura de pantalla de la salida actual del navegador del stage. Devuelve una imagen PNG. |
sync | Sincroniza el espacio de trabajo del stage (~/.dazzle/stages/{stage}/) con el stage en vivo. Ejecuta esto después de escribir archivos para enviar contenido. Equivalente a 'dazzle stage sync {workspace-dir}'. |
write_file | Escribe un archivo en el espacio de trabajo del stage (~/.dazzle/stages/{stage}/{path}). Crea directorios padre según sea necesario. Úsalo para construir contenido que luego se pueda sincronizar con el stage. |
Herramientas de espacio de trabajo
Las herramientas de espacio de trabajo (write_file, read_file, edit_file, list_files, sync) almacenan archivos en ~/.dazzle/stages/{stage-id}/ en el sistema de archivos del host. Esto conecta entornos en sandbox (por ejemplo, Claude Desktop) donde el bash del agente se ejecuta en un contenedor aislado y no puede compartir archivos con el proceso CLI.
Flujo de trabajo: write_file → edit_file (iterar) → sync → screenshot (verificar)
Limitaciones: Sin shell/exec: no se pueden ejecutar herramientas de compilación (npm, tailwind, etc.) en el espacio de trabajo. El contenido debe ser HTML/CSS/JS precompilado. Los agentes con acceso completo al sistema de archivos y shell (por ejemplo, Claude Code) deberían usar dazzle stage sync directamente para la experiencia completa.
Recursos MCP
| URI | Descripción |
|---|---|
https://dazzle.fm/llms-full.txt | Referencia completa de Dazzle: introducción, ayuda de CLI y guía de creación de contenido. |
https://dazzle.fm/llms.txt | Guía de inicio rápido de Dazzle: descripción general de la plataforma, configuración, conceptos básicos de CLI y enlaces de documentación. |
CLI vs MCP: ¿cuál usar?
| CLI | MCP | |
|---|---|---|
| Mejor para | Agentes de codificación, terminales, CI/CD | Claude Desktop, VS Code, clientes en sandbox |
| Sistema de archivos | Acceso completo: escribe en cualquier lugar, ejecuta herramientas de compilación | Solo espacio de trabajo (~/.dazzle/stages/{id}/) |
| Shell | Sí: npm, tailwind, cualquier cadena de herramientas | No: solo contenido precompilado |
| Sincronización de contenido | dazzle stage sync ./dir | write_file + sync |
| Captura de pantalla | dazzle stage screenshot -o file.png | herramienta screenshot (devuelve JPEG) |
| Autenticación | dazzle login o DAZZLE_API_KEY | cli ["login"] vía MCP |
Referencia CLI
Usage: dazzle <command> [flags]
Dazzle — cloud stages for streaming.
A stage is a cloud browser environment that renders and streams your content.
Sync a local directory (must contain an index.html) and everything visible in
the browser window is what gets streamed to viewers.
Your content runs in a real browser with full access to standard web APIs (DOM,
Canvas, WebGL, Web Audio, fetch, etc.). localStorage is persisted across stage
restarts — use it to store app state that should survive between sessions.
Workflow:
1. dazzle login # authenticate (one-time)
2. dazzle s new my-stage # create a stage
3. dazzle s up # bring it up — starts streaming to Dazzle
4. dazzle s sync ./my-app -w # sync + auto-refresh on changes
5. dazzle s ss -o preview.png # take a screenshot to verify
6. dazzle s down # stop streaming and shut down
Auth: dazzle login, or set DAZZLE_API_KEY for headless/CI use. Stage selection:
use -s <name>, DAZZLE_STAGE env, or auto-selected if only one.
https://dazzle.fm
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
Commands:
version Print version information.
update Update dazzle to the latest release.
guide Show content authoring guide (rendering tips,
performance, best practices).
login Authenticate with Dazzle (opens browser).
logout Clear stored credentials.
whoami Show current user.
stage (s) list (ls) List stages.
stage (s) create (new) Create a stage.
stage (s) delete (rm) Delete a stage.
stage (s) up Activate a stage.
stage (s) down Deactivate a stage.
stage (s) status (st) Show stage status.
stage (s) stats Show live pipeline stats.
stage (s) preview Show the shareable preview URL for a running
stage.
stage (s) sync (sy) Sync a local directory to the stage. This is
the primary way to push content — use --watch
for live development.
stage (s) refresh (r) Reload the stage entry point.
stage (s) event (ev) emit (e) Push a named event with JSON data to
the running page — dispatched as a DOM
CustomEvent. Use this to send real-time data
from external processes (other agents, APIs,
etc.) without re-syncing or reloading.
stage (s) logs (l) Retrieve stage console logs.
stage (s) screenshot (ss) Capture a screenshot of the stage.
stage (s) info Get current stream title and category.
stage (s) title Set the stream title (not supported for
Restream).
stage (s) category Set the stream category or game (not
supported for Restream).
stage (s) chat send Send a message to live chat (not supported
for Restream).
destination (dest) list (ls) List broadcast destinations.
destination (dest) add (create,new)
Add a broadcast destination.
destination (dest) delete (rm)
Remove a broadcast destination.
destination (dest) attach (set)
Attach a destination to a stage.
destination (dest) detach (unset)
Detach a destination from a stage.
Run "dazzle <command> --help" for more information on a command.
Subcomandos de stage
Usage: dazzle stage (s) <command> [flags]
Manage stages — create, sync content, screenshot, stream.
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
Commands:
stage (s) list (ls) List stages.
stage (s) create (new) Create a stage.
stage (s) delete (rm) Delete a stage.
stage (s) up Activate a stage.
stage (s) down Deactivate a stage.
stage (s) status (st) Show stage status.
stage (s) stats Show live pipeline stats.
stage (s) preview Show the shareable preview URL for a running
stage.
stage (s) sync (sy) Sync a local directory to the stage. This is
the primary way to push content — use --watch
for live development.
stage (s) refresh (r) Reload the stage entry point.
stage (s) event (ev) emit (e) Push a named event with JSON data to
the running page — dispatched as a DOM
CustomEvent. Use this to send real-time data
from external processes (other agents, APIs,
etc.) without re-syncing or reloading.
stage (s) logs (l) Retrieve stage console logs.
stage (s) screenshot (ss) Capture a screenshot of the stage.
stage (s) info Get current stream title and category.
stage (s) title Set the stream title (not supported for
Restream).
stage (s) category Set the stream category or game (not
supported for Restream).
stage (s) chat send Send a message to live chat (not supported
for Restream).
Opciones de stage sync
Usage: dazzle stage (s) sync (sy) <dir> [flags]
Sync a local directory to the stage. This is the primary way to push content —
use --watch for live development.
Arguments:
<dir> Local directory to sync (must contain an index.html entry point).
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
-w, --watch Watch for file changes and automatically re-sync.
--entry="index.html" HTML entry point file (default: index.html).
Opciones de stage screenshot
Usage: dazzle stage (s) screenshot (ss) [flags]
Capture a screenshot of the stage.
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
-o, --out=STRING Output file path (default: temp file).
Subcomandos de stage event
Usage: dazzle stage (s) event (ev) <command>
Send real-time data to the running page without reloading. Events are dispatched
as DOM CustomEvents — use this for async updates from subagents, APIs, or other
processes.
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
Commands:
stage (s) event (ev) emit (e) Push a named event with JSON data to
the running page — dispatched as a DOM
CustomEvent. Use this to send real-time data
from external processes (other agents, APIs,
etc.) without re-syncing or reloading.
Subcomandos de destino
Usage: dazzle destination (dest) <command> [flags]
Manage broadcast destinations (Twitch, YouTube, etc).
Flags:
-h, --help Show context-sensitive help.
-j, --json Output as JSON.
-s, --stage=STRING Stage name or ID ($DAZZLE_STAGE).
--api-url=STRING API URL ($DAZZLE_API_URL).
Commands:
destination (dest) list (ls) List broadcast destinations.
destination (dest) add (create,new)
Add a broadcast destination.
destination (dest) delete (rm)
Remove a broadcast destination.
destination (dest) attach (set)
Attach a destination to a stage.
destination (dest) detach (unset)
Detach a destination from a stage.
Resolución de stage
Para comandos con ámbito de stage, el stage se resuelve en este orden:
- Opción
-s/--stageo variable de entornoDAZZLE_STAGE - Selección automática si tienes exactamente un stage
dazzle stage sync ./app --stage my-stage # explicit
export DAZZLE_STAGE=my-stage # or set for your session
Configuración
Variables de entorno (anulan archivos de configuración y credenciales almacenadas):
| Variable | Propósito | Predeterminado |
|---|---|---|
DAZZLE_API_KEY | Clave API: omite dazzle login para CI, scripts y comandos puntuales | credenciales almacenadas |
DAZZLE_API_URL | URL base de API | https://dazzle.fm |
DAZZLE_STAGE | Nombre o ID del stage | selección automática si solo hay uno |
Archivos de configuración (permisos ~/.config/dazzle/, 0600):
config.json # { "api_url": "..." }
credentials.json # { "api_key": "dzl_...", "email": "..." }
Seguridad
- Clave API almacenada en
~/.config/dazzle/credentials.jsoncon permisos0600 - Transmitida como token
Bearersolo a través de HTTPS - Nunca se registra, nunca se muestra, nunca se envía a terceros
- Sin telemetría: sin datos de uso, informes de errores ni análisis
- Todo el código fuente es de código abierto y auditable
Licencia
Apache 2.0 — consulta LICENSE