> ## 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

> Запускайте згенеровані команди додатків з контекстом Kazzle runtime.

# Kazzle CLI

Використовуйте Kazzle CLI для запуску команд додатків **у розробці та попередньому перегляді**:

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

Все після `--` — це реальна команда. Kazzle спочатку впроваджує середовище runtime.

`kazzle run` призначений тільки для розробки та попереднього перегляду. Він належить до скрипту `dev`, ніколи до `start`. У виробництві розгорнуте середовище runtime впроваджує `PORT`, `HOST` та секрети безпосередньо, а команда виробництва — це проста команда (наприклад `bun run index.ts`). CLI `kazzle` не встановлюється в розгорнутих образах, тому команда виробництва, яка викликає `kazzle run`, падає з помилкою `kazzle: command not found`.

## Що впроваджує `kazzle run`

* секрети з запису `env` компонента в `kazzle.config.ts`
* `PORT` та `HOST`
* URL-адреси сусідніх компонентів, як-от `KAZZLE_APP_COMPONENT_SERVER_URL`
* ідентичність Kazzle runtime, таку як ID додатку та ім'я компонента

## Приклад

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

`dev` запускається через `kazzle run`, щоб Kazzle міг впровадити порт попереднього перегляду та середовище runtime. `start` — це проста команда — виробництво впроваджує `PORT`/`HOST`/секрети саме.

Не вставляйте назви колекцій секретів у `package.json`. Помістіть їх у `kazzle.config.ts`.

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

## Прив'язування перевірки до додатку

`kazzle run` повинен знати, якому додатку належить цей каталог. Порядок розпізнавання:

1. `--app=<appId>` у командному рядку
2. змінна середовища `KAZZLE_APP_ID` (встановлюється автоматично, коли Kazzle запускає контрольований компонент)
3. `.kazzle/link.json` пройдений вгору від поточного каталогу

Якщо жодне з них не розпізнається, `kazzle run` завершується з помилкою:

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

`app { create: {} }` автоматично записує `<checkout>/.kazzle/link.json` — як Vercel's `.vercel/project.json`. Файл є для кожного клону та gitignored. Після свіжого `git clone` існуючого додатку запустіть:

```bash theme={"theme":"material-theme-darker"}
kazzle link              # зіставте поточний каталог з перевірками додатків вашого простору
kazzle link --app=<id>   # примусово встановіть конкретний додаток
kazzle unlink            # видаліть файл посилання
```

ШІ може відновити відсутнє посилання з потоку за допомогою `app { link: { appId } }`.
