> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kazzle CLI

> Voer gegenereerde app-commando's uit met Kazzle runtime-context.

# Kazzle CLI

Gebruik de Kazzle CLI om app-commando's uit te voeren **in ontwikkelings- en preview-modus**:

```bash theme={"theme":"material-theme-darker"}
kazzle run -- <command>
```

Alles na `--` is het werkelijke commando. Kazzle injecteert eerst de runtime-omgeving.

`kazzle run` is alleen voor ontwikkeling en preview. Het hoort in het `dev`-script, nooit in `start`. In productie injecteert de geïmplementeerde runtime `PORT`, `HOST` en secrets rechtstreeks, en is het productiecommando het basiscommando (bijv. `bun run index.ts`). De `kazzle` CLI is niet geïnstalleerd in geïmplementeerde images, dus een productiecommando dat `kazzle run` aanroept, crasht met `kazzle: command not found`.

## Wat `kazzle run` injecteert

* secrets uit de `env`-entry van de component in `kazzle.config.ts`
* `PORT` en `HOST`
* URL's van sibling-componenten zoals `KAZZLE_APP_COMPONENT_SERVER_URL`
* Kazzle runtime-identiteit zoals app-ID en componentnaam

## Voorbeeld

```json theme={"theme":"material-theme-darker"}
{
  "scripts": {
    "dev": "kazzle run -- bun --watch server/index.ts",
    "start": "bun server/index.ts"
  }
}
```

`dev` wordt uitgevoerd via `kazzle run` zodat Kazzle de preview-poort en runtime-omgeving kan injecteren. `start` is het basiscommando — productie injecteert `PORT`/`HOST`/secrets zelf.

Plaats geen geheime collectienamen in `package.json`. Plaats ze in `kazzle.config.ts`.

```ts theme={"theme":"material-theme-darker"}
components: [
  {
    name: 'server',
    type: 'process',
    path: './server/index.ts',
    env: { collection: 'my-app', environment: 'local' },
  },
]
```

## Een checkout aan een app koppelen

`kazzle run` moet weten welke app deze directory is. Resolutievolgorde:

1. `--app=<appId>` op de commandoregel
2. `KAZZLE_APP_ID` omgevingsvariabele (automatisch ingesteld wanneer Kazzle een bewaakte component start)
3. `.kazzle/link.json` opgehaald vanuit de huidige directory

Als geen van deze opties werkt, sluit `kazzle run` af met:

```
Error: This directory is not linked to a Kazzle app. Run `kazzle link` to fix.
```

`app { create: {} }` schrijft automatisch `<checkout>/.kazzle/link.json` — net als Vercel's `.vercel/project.json`. Het bestand is per clone en gitignored. Na een frisse `git clone` van een bestaande app, voer uit:

```bash theme={"theme":"material-theme-darker"}
kazzle link              # match de huidige directory tegen de app-checkouts van je space
kazzle link --app=<id>   # force een specifieke app
kazzle unlink            # verwijder het linkbestand
```

De AI kan een ontbrekende link herstellen vanuit een thread met `app { link: { appId } }`.
