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.
Configuration
Every Kazzle app has a kazzle.config.ts at the project root. This file defines what your app contains — components, skills, and metadata.
Quick start
import { defineConfig } from './kazzle.types';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' }
]
});
The 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 (png, jpg, svg, webp, ico) |
components | object[] | no | Executable components — UI frontends, background processes, or Chrome extensions |
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 in components[]:
| Field | Type | Required | Description |
|---|
name | string | yes | Unique component name within the app |
type | "ui" | "process" | "chrome-extension" | yes | Component type — ui (max 1), process, or chrome-extension |
path | string | yes | Entry path within the app directory |
lifecycle | object | no | Lifecycle commands: { dev?, build?, run? } |
lifecycle.dev | string | no | Command to start the dev server (e.g. "bun run dev") |
lifecycle.build | string | no | Command to build for production (e.g. "vite build") |
lifecycle.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 |
secrets | object | no | Secret collection + environment for env injection |
secrets.collection | string | yes (if secrets) | Secret collection slug |
secrets.env | string | yes (if secrets) | Environment slug |
Skill fields
Each entry in skills[]:
| 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
name values must be unique within the app
Template examples
realtime app
import { defineConfig } from './kazzle.types';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' },
{ name: 'My App server', type: 'process', path: './server/index.ts' },
],
});
process app
import { defineConfig } from './kazzle.types';
export default defineConfig({
components: [
{ name: 'My App', type: 'process', path: './server.ts' },
],
});
ui app
import { defineConfig } from './kazzle.types';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' },
],
});