Passer au contenu principal

Kazzle CLI

Utilisez la CLI Kazzle pour exécuter les commandes d’app en développement et en aperçu :
kazzle run -- <command>
Tout ce qui suit -- est la vraie commande. Kazzle injecte d’abord l’environnement d’exécution. kazzle run est réservé au développement et à l’aperçu. Il doit figurer dans le script dev, jamais dans start. En production, l’exécution déployée injecte PORT, HOST et les secrets directement, et la commande de production est la commande brute (par ex. bun run index.ts). La CLI kazzle n’est pas installée dans les images déployées, donc une commande de production qui appelle kazzle run échoue avec kazzle: command not found.

Ce que kazzle run injecte

  • les secrets de l’entrée env du composant dans kazzle.config.ts
  • PORT et HOST
  • les URLs des composants frères comme KAZZLE_APP_COMPONENT_SERVER_URL
  • l’identité d’exécution Kazzle telle que l’ID d’app et le nom du composant

Exemple

{
  "scripts": {
    "dev": "kazzle run -- bun --watch server/index.ts",
    "start": "bun server/index.ts"
  }
}
dev s’exécute via kazzle run pour que Kazzle puisse injecter le port d’aperçu et l’env d’exécution. start est la commande brute — la production injecte elle-même PORT/HOST/secrets. Ne mettez pas les noms de collections de secrets dans package.json. Mettez-les dans kazzle.config.ts.
components: [
  {
    name: 'server',
    type: 'process',
    path: './server/index.ts',
    env: { collection: 'my-app', environment: 'local' },
  },
]

Lier un checkout à une app

kazzle run doit savoir à quelle app ce répertoire appartient. Ordre de résolution :
  1. --app=<appId> sur la ligne de commande
  2. la variable d’env KAZZLE_APP_ID (définie automatiquement quand Kazzle démarre un composant supervisé)
  3. .kazzle/link.json remonté depuis le répertoire courant
Si aucun de ces éléments ne résout, kazzle run quitte avec :
Error: This directory is not linked to a Kazzle app. Run `kazzle link` to fix.
app { action: "create" } écrit automatiquement <checkout>/.kazzle/link.json — comme le .vercel/project.json de Vercel. Le fichier est par clone et gitignored. Après un git clone frais d’une app existante, exécutez :
kazzle link              # faire correspondre le répertoire courant aux checkouts d'app de votre Space
kazzle link --app=<id>   # forcer une app spécifique
kazzle unlink            # supprimer le fichier de lien
L’IA peut réparer un lien manquant à partir d’un thread avec app { action: "link", appId }.