Saltar al contenido principal

Kazzle CLI

Usa Kazzle CLI para ejecutar comandos de app en desarrollo y vista previa:
kazzle run -- <command>
Todo después de -- es el comando real. Kazzle inyecta el entorno de runtime primero. kazzle run es solo para desarrollo y vista previa. Pertenece al script dev, nunca a start. En producción, el runtime desplegado inyecta PORT, HOST y secretos directamente, y el comando de producción es el comando simple (p. ej. bun run index.ts). Kazzle CLI no está instalado en imágenes desplegadas, así que un comando de producción que llama a kazzle run falla con kazzle: command not found.

Qué inyecta kazzle run

  • secretos de la entrada env del componente en kazzle.config.ts
  • PORT y HOST
  • URLs de componentes hermanos como KAZZLE_APP_COMPONENT_SERVER_URL
  • identidad de runtime de Kazzle como ID de app y nombre del componente

Ejemplo

{
  "scripts": {
    "dev": "kazzle run -- bun --watch server/index.ts",
    "start": "bun server/index.ts"
  }
}
dev se ejecuta a través de kazzle run para que Kazzle pueda inyectar el puerto de vista previa y el entorno de runtime. start es el comando simple — producción inyecta PORT/HOST/secretos por sí misma. No pongas nombres de colecciones de secretos en package.json. Ponlos en kazzle.config.ts.
components: [
  {
    name: 'server',
    type: 'process',
    path: './server/index.ts',
    env: { collection: 'my-app', environment: 'local' },
  },
]

Vincular un checkout a una app

kazzle run necesita saber a qué app pertenece este directorio. Orden de resolución:
  1. --app=<appId> en la línea de comandos
  2. variable de entorno KAZZLE_APP_ID (se establece automáticamente cuando Kazzle inicia un componente supervisado)
  3. .kazzle/link.json buscado desde el directorio actual
Si ninguno de esos se resuelve, kazzle run sale con:
Error: This directory is not linked to a Kazzle app. Run `kazzle link` to fix.
app { action: "create" } escribe <checkout>/.kazzle/link.json automáticamente — como .vercel/project.json de Vercel. El archivo es por clon y está en gitignore. Después de un git clone nuevo de una app existente, ejecuta:
kazzle link              # coincide el directorio actual con los checkouts de app de tu space
kazzle link --app=<id>   # fuerza una app específica
kazzle unlink            # elimina el archivo de vínculo
La IA puede reparar un vínculo faltante desde un thread con app { action: "link", appId }.