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)

Dazzle CLI demo

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

HerramientaDescripción
cliEjecuta un comando CLI de dazzle. Usa ["--help"] para descubrir los comandos disponibles. La salida es JSON.
edit_fileEdita 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.
guideObté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_filesLista todos los archivos en el espacio de trabajo del stage (~/.dazzle/stages/{stage}/). Devuelve rutas relativas, una por línea.
read_fileLee un archivo del espacio de trabajo del stage (~/.dazzle/stages/{stage}/{path}).
screenshotCaptura una captura de pantalla de la salida actual del navegador del stage. Devuelve una imagen PNG.
syncSincroniza 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_fileEscribe 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

URIDescripción
https://dazzle.fm/llms-full.txtReferencia completa de Dazzle: introducción, ayuda de CLI y guía de creación de contenido.
https://dazzle.fm/llms.txtGuí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?

CLIMCP
Mejor paraAgentes de codificación, terminales, CI/CDClaude Desktop, VS Code, clientes en sandbox
Sistema de archivosAcceso completo: escribe en cualquier lugar, ejecuta herramientas de compilaciónSolo espacio de trabajo (~/.dazzle/stages/{id}/)
ShellSí: npm, tailwind, cualquier cadena de herramientasNo: solo contenido precompilado
Sincronización de contenidodazzle stage sync ./dirwrite_file + sync
Captura de pantalladazzle stage screenshot -o file.pngherramienta screenshot (devuelve JPEG)
Autenticacióndazzle login o DAZZLE_API_KEYcli ["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:

  1. Opción -s / --stage o variable de entorno DAZZLE_STAGE
  2. 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):

VariablePropósitoPredeterminado
DAZZLE_API_KEYClave API: omite dazzle login para CI, scripts y comandos puntualescredenciales almacenadas
DAZZLE_API_URLURL base de APIhttps://dazzle.fm
DAZZLE_STAGENombre o ID del stageselecció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.json con permisos 0600
  • Transmitida como token Bearer solo 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