Talk an app into being.
Kiln is experimental — a separate binary that mounts a chat panel on your running GoFastr app. The agent calls a typed tool surface; the in-memory IR mutates; the schema migrates; the app re-renders — all in-process. Freeze the journal when done to emit the canonical entity files you commit.
Your app — being authored live
Illustration — your real app renders here as the agent edits it.
Seven events from prompt to commit
kiln subscribes to its own SSE bus and spawns the configured CLI.
Reads the in-memory IR — current entities, fields, hooks, routes.
Mutates the IR: posts(title, body, status). No DB write yet.
Lists destructive targets (none) and the three add_* operations.
Plan id is stamped onto the agent's retry call.
Up-migration generated and applied; the posts table is live.
kiln freeze --dir build/ snapshots the world; graduate to Go via a gofastr.yml blueprint.
The agent acts within explicit limits
What the agent can do
- Add entities, fields, hooks, routes
- Migrate up + seed data
- Edit pages and screens (non-destructively)
- Inspect logs, run queries, browse docs
Without an approved plan
- Drop entities, fields, hooks, routes
- Migrate down
- Touch credentials, secrets, .env
- Spawn external processes you didn't allow
Two binaries. Three lines of setup.
Install the kiln binary alongside the gofastr CLI. Pick the agent CLI you already use; kiln spawns it as a subprocess with KILN_URL injected.