KILN compiles a small specification into a complete, working, offline application — one HTML file. No model in the loop, no network, no dependencies to install.
A spec is the only input. Whether you type a sentence, paste a model's reply, or fill a form on a phone, the same compiler runs and the same checks pass.
Say what the app is for. Aliases, tf-idf and slot filling turn it into a spec. No model, no key, no network.
kiln new "a tea log with tags"
PROMPT.md carries the catalogue with it. Paste the reply back and
adopt repairs it until it builds.
kiln prompt → paste → kiln adopt
studio.html is the same compiler in a browser. Fill the form, tap
Build, the app downloads.
open studio.html
Both screenshots are real, rendered from the files in this repository.

KILN Studio — pick features, describe the record, build. Runs on a phone, offline.

A generated app — 21 KB, one file, storage on the device, all four failure paths handled.
Every arrow is deterministic. The same spec produces the same bytes.
intent.pyspec.pycompose.pyemit.pyverify.pyguards.pyThis is the difference between a skeleton and an app. Nothing here needs writing per application.
| Part | Behaviour |
|---|---|
| CRUD | List, create, edit, delete — generated from the entity schema |
| Storage | Namespaced localStorage, versioned, quota-aware |
| Search | Field scan with Ctrl-K focus |
| Export | JSON and CSV download, JSON restore |
| Theme | Dark and light, remembered |
| Failure path | Bad input, no network, storage full, corrupt state — all four surfaced |
| Docs | README, manifest, changelog, licence, smoke tests |
An app you generate is yours in both. What changes is the author block the compiler puts in it — and the free edition is the one that pays for the rest.
| Personal — free | Commercial — paid | |
|---|---|---|
| Licence | PolyForm Noncommercial 1.0.0 | a written licence |
| For | personal, academic, hobby, non-profit | businesses, paid work, products you sell |
| Features | all 14 | all 14, unlocked |
| Sponsor block in the app | yes | no |
| Author block in the app | yes | no |
| Compiler credit | "Built with KILN", hyperlinked | one line |
| Try it online | the live demo | — |
Every build carries a fingerprint of the model it came from. Edit the file and the app says so on load. That is evidence, not a lock — the honest list is in SECURITY.md, the full table is in LICENSING.md. No releases are published until the owner says so (RELEASE.md).
Python 3.9 or newer. Nothing else.
# whole pipeline in one command python3 -m kiln pipeline "a reading log with tags and a rating" --zip # or step by step python3 -m kiln new "a notes app with tags, search and export" python3 -m kiln build specs/app-notes.md -o out python3 -m kiln verify out/app-notes ok app-notes.md 43 checks, 0 failed
KILN is free for personal, academic, hobby and non-profit use. If it saved you a week, here is where to put it. None of this is required, and the first thing on the list — telling me what broke — is worth more than any of it.
drsohilboi@ybl
Payee: Dr Sohil Momin · open amount
Buying a book helps the same way a donation does, and you get something to read.
Everything else in the estate — offline-first, single-file, no accounts.
| You need | Where |
|---|---|
| To report a bug | open an issue — the most useful thing you can do |
| To ask a question | discussions |
| To report a vulnerability | SECURITY.md — privately, please |
| A commercial licence | COMMERCIAL.md |
| To contribute | CONTRIBUTING.md — four steps, all checked by CI |
| To email | sohilmomin2000@gmail.com |