New project
Onboarding (above) is for a project you already have. New project is for one that doesn't exist yet: a Lovable/v0-style arrival where you name what you're building, watch Potter draft a plan and a starter file tree, refine it in a chat, and watch the v1 land on disk — git initialised, ready to open.
Reach it from File ▸ New Project (⌃⌘N) or the Plan a new project card on the launcher. When no project is open, Kiln rests on the launcher — a small, chrome-less home screen — with two clear paths: plan something new, or open a folder you already have, plus your recent projects. It's where the app lands at first launch with nothing to restore, after Close Folder, and after you close the last project window.
The flow
Describe. Name it, say what it should be in a line or two, and confirm where it lives — ~/Developer by default, changeable with the folder picker. The folder name is slugged from the project name (My Cool App! → my-cool-app), and the flow refuses to build over a folder that already exists, so a new project never clobbers existing work.
Empty start. Don't want Potter to guess? Leave the description blank and skip the gallery: with nothing to plan from — just a name — the button reads Create empty project, and it bypasses the whole AI pass. Instead of asking the model to invent a stack, it seeds a sensible empty repo (a README titled with your project name and a broad, ecosystem-agnostic .gitignore), inits git with a first commit, and drops you straight on the done step. The fast path for "I just want somewhere to start."
Templates. The describe step opens onto a gallery of the things people most often start — marketing site, documentation site, to-do app, blog, portfolio, REST API, CLI tool, native macOS app, AI chat app — the way Logic Pro or v0 open onto starters rather than a blank box. A template is a seed, not a baked file tree: picking one fills the description, suggests a folder name (only when the field is still empty), and biases Potter's stack with a one-line hint — the same plan → review → build pipeline still runs, so there are no mini-repos to keep current and the hint never hard-constrains the result. Tapping the selected card again clears it; you can always ignore the gallery and describe your own.
Planning. Potter takes the description and streams its reasoning live — the "see the agent thinking" beat — while it picks a sensible, modern, minimal stack and sketches a manifest of the files it'll write: each a path and a one-line purpose, not the contents. Keeping the bytes out of this reply is what keeps it small. It prefers the top-tier cloud model (it writes better starter code), falling back to the free on-device model when that's all that's on. Changed your mind while it's thinking? Back to plan drops the in-flight re-plan and returns to the plan you were refining — so a tweak you started typing can be abandoned without losing the plan. (On the very first plan, when there's nothing to fall back to, the same button reads Cancel and returns to the form.)
Review. The plan lands as a summary of the stack it chose, the steps it's taking, and the manifest of files it wants to write, each with its purpose. Read it over and either build it as-is or tweak it in the composer — "use TypeScript", "add tests" — which re-plans carrying the whole conversation. A refinement is never a commitment: backing out of an in-flight re-plan returns you to the plan, and you can always build as-is without giving feedback at all. Start over drops back to the form.
Building. Potter writes each planned file's contents in turn. The generated files land under the target folder only once they're all in hand. Then the template's recommended skills are seeded (if any), git is initialised with a first commit, and the project's dependencies are installed so it's runnable the moment it opens. The dependency installer runs the matching package manager — npm install (or pnpm/yarn if a lockfile says so), pip install -r requirements.txt, cargo fetch, go mod download, swift package resolve, or bundle install. The installed tree (node_modules, .venv) never lands in the first commit. The skills, git, and install are all best-effort: if a package manager isn't on PATH or network is unavailable, you'll see a nudge to finish the setup, but the project still opens.
Skills
Each template can carry skills worth having from day one. They show in the review step before you build, and install at build time, landing under .agents/skills/ with a skills-lock.json. All skill sources pass a safety check before installation to prevent shell injection. Templates with no curated skill just skip the step.
Done. A celebratory beat — the Kiln-ember glow and a success chime — then Open project lands you in the new workspace.