# FAQ

---

**Is this an AI app builder?**
No. It is a compiler. The model, if you use one, writes a document; KILN turns that document
into files. Nothing is generated by a model at build time.

**Do I need an API key?**
No. `kiln prompt` prints text and `kiln adopt` reads text. No socket is opened.

**Do I need an internet connection?**
No, for any command. The only step that needs the internet is the one you do by hand, if you
choose to use a model.

**Does it need Python?**
For the command line, yes — 3.9 or newer, standard library only. For `studio.html`, no: that
is one file and a browser.

**Does it work on Windows?**
Yes. The compiler uses `pathlib` throughout and no shell commands in its own path.

**Can I use it on my phone?**
Yes — send yourself `studio.html`, open it, tap Build. The app downloads. No Python involved.

**Why only 14 features?**
Because a bounded catalogue is what makes the output reliable. Every feature has an emitter
and an assertion, and every one is tested. An unbounded list would be a promise nobody can keep.

**Why one entity per app?**
The runtime renders one list. Multi-entity apps need relations, and relations need a UI that
the single-file constraint makes awkward. Not supported, and said plainly rather than half-built.

**Where is my data stored?**
In your browser's `localStorage`, on your device, under `kiln:<namespace>`. Nowhere else.
See [`PRIVACY.md`](PRIVACY.md).

**How do I back it up?**
**Export** in the app. That writes JSON and CSV files. There is no automatic backup, by design.

**What if I clear my browser data?**
The records are gone. There is no server copy. This is stated in [`DISCLAIMER.md`](DISCLAIMER.md)
section 4 because it is the most likely way to lose work with this tool.

**Can I edit the generated HTML?**
You can, but the next build replaces it. The spec is the source; the app is a build artifact.
If you want to own the code, fork the app folder and stop using the spec.

**Can I sell an app I built with KILN?**
The app is yours — see [`TERMS.md`](TERMS.md) section 2. The compiler itself is
noncommercial; see [`COMMERCIAL.md`](COMMERCIAL.md).

**Is the generated app secure?**
It has no network code, escapes user data before it reaches the DOM, and handles four failure
paths. It is not audited, and it stores data where other things on the same device could read
it. See [`SECURITY.md`](SECURITY.md) for the honest list.

**Why does the verifier report SKIP instead of passing?**
Because a check that did not run must never look like a check that passed. Install `node`
to turn that SKIP into a real check.

**Can I add a feature?**
Yes — four files, listed in [`CONTRIBUTING.md`](CONTRIBUTING.md). CI enforces all four.

**Why is the studio a separate generated file?**
Because a browser cannot run Python, and a phone is a legitimate place to build a small app.
It is generated from the same template and catalogue, and `kiln audit` fails if it drifts.

**What is the relationship to Forge?**
KILN is the compiler that Forge's app factory needed. The defects it avoids are listed, with
evidence, in [`AUDIT-FORGE.md`](AUDIT-FORGE.md). It depends on nothing from Forge.

**Does it collect any telemetry?**
No. There is no analytics code in the repository. `RUNS.jsonl` is a local file of build
results, written on your own disk, and it is gitignored.

**How big is a generated app?**
About 21 KB. Under 60 KB is the enforced budget.
