Configuration
Every Kazzle app has akazzle.config.ts at the project root. This file defines what your app contains — components, skills, and metadata.
Quick start
defineConfig helper provides TypeScript autocompletion and validation. The types come from kazzle.types.ts, which is auto-generated and included in every template.
Top-level fields
| Field | Type | Required | Description |
|---|---|---|---|
icon | string | no | Path to the app icon file relative to the repo root (png, jpg, svg, webp, ico). Uploaded to CDN on publish. |
components | object[] | no | Executable components — UI frontends or background processes |
skills | object[] | no | AI skill definitions — markdown files the AI reads for domain knowledge |
capabilities | object | no | Optional desktop integration features such as hotkeys, notifications, and status bar presence |
Component fields
Each entry incomponents[]:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Unique component name within the app |
type | "ui" | "process" | yes | Component type — ui (max 1) or process |
path | string | yes | Entry path within the app directory |
runtime | object | no | Commands: { dev?, build?, run? } |
runtime.dev | string | no | Command to start the dev server (e.g. "bun run dev") |
runtime.build | string | no | Command to build for production (e.g. "vite build") |
runtime.run | string | no | Command to start in production (e.g. "bun run start") |
schedule | string | no | Cron schedule for process components (e.g. "*/5 * * * *") |
trigger | "webhook" | "event" | no | Trigger mode for process components |
env | object | no | Secret collection + environment for env var injection |
env.collection | string | yes (if env) | Secret collection slug |
env.environment | string | yes (if env) | Environment slug |
env.include | string[] | no | Only inject these env var names. If omitted, inject all from the collection+environment. |
Skill fields
Each entry inskills[]:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Skill name |
path | string | yes | Path to the SKILL.md file relative to the app root |
Constraints
- Max 1 UI component per app
- Component
namevalues must be unique within the app