kiln: agent build mode

Talk an app into being.

Kiln is experimental: a separate binary that mounts a chat panel on your running GoFastr app. The agent calls typed tools; 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.

Read the docsExperimental

Your app, being authored live

Illustration: your real app renders here as the agent edits it.

localhost:8765
kilnsession #a1b3
you
you

add a posts entity with title, body, status enum

claude-code
claude-codetool: add_entity

Reading your existing schema. Three new tools required, no destructive changes.

you
you

looks good, ship it

claude-code
claude-codetool: propose_plan

Proposing a plan. Approve below to apply.

Plan #4 · 3 ops
3 lines
+ add_entity("posts")
+ add_field("posts", title)
+ add_field("posts", status)

Seven events from prompt to commit

  1. Agent connects

    0s
    kiln subscribes to its own SSE bus and spawns the configured CLI.
  2. Agent calls world_get

    3s
    Reads the in-memory IR: current entities, fields, hooks, routes.
  3. Agent calls add_entity

    8s
    Mutates the IR: posts(title, body, status). No DB write yet.
  4. Agent calls propose_plan

    12s
    Lists destructive targets (none) and the three add_* operations.
  5. You click Approve

    18s
    Plan id is stamped onto the agent's retry call.
  6. Schema auto-migrates

    19s
    The plan applies and the schema auto-migrates in-process; the posts table is live.
  7. Journal freezable

    25s
    kiln freeze --dir build/ snapshots the world; graduate to Go via a gofastr.yml app spec.

The agent acts within explicit limits

What the agent can do

Allowed
  • 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

Blocked
  • Drop entities, fields, hooks, routes
  • Migrate down
  • Touch credentials, secrets, .env
  • Spawn external processes you didn't allow

Two binaries. Two commands 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.

install
$ go install github.com/DonaldMurillo/gofastr/cmd/kiln@latest → installed kiln v0.96.0
serve
$ kiln serve --agent claude-code → panel floats on http://localhost:8765 → MCP server live at /mcp → ready · waiting for the agent.