Skip to main content

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

FieldTypeRequiredDescription
iconstringnoPath to the app icon file (png, jpg, svg, webp, ico)
componentsobject[]noExecutable components — UI frontends, background processes, or Chrome extensions
skillsobject[]noAI skill definitions — markdown files the AI reads for domain knowledge
capabilitiesobjectnoOptional desktop integration features such as hotkeys, notifications, and status bar presence

Component fields

Each entry in components[]:
FieldTypeRequiredDescription
namestringyesUnique component name within the app
type"ui" | "process" | "chrome-extension"yesComponent type — ui (max 1), process, or chrome-extension
pathstringyesEntry path within the app directory
lifecycleobjectnoLifecycle commands: { dev?, build?, run? }
lifecycle.devstringnoCommand to start the dev server (e.g. "bun run dev")
lifecycle.buildstringnoCommand to build for production (e.g. "vite build")
lifecycle.runstringnoCommand to start in production (e.g. "bun run start")
schedulestringnoCron schedule for process components (e.g. "*/5 * * * *")
trigger"webhook" | "event"noTrigger mode for process components
secretsobjectnoSecret collection + environment for env injection
secrets.collectionstringyes (if secrets)Secret collection slug
secrets.envstringyes (if secrets)Environment slug

Skill fields

Each entry in skills[]:
FieldTypeRequiredDescription
namestringyesSkill name
pathstringyesPath 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: '.' },
  ],
});