Lamplit documentation
Lamplit documentation
Everything here describes the app as it actually behaves. The pictures are generated by driving
the real build with a real browser (npm run screenshots), so if one of them looks out of date,
it is out of date and worth an issue.
New here? Start with Getting started.
The guide
- Getting started — installing, the first run, and writing the first chapter of a story.
- Reading and writing — the page itself: the composer, what each message offers, book style, text size, light and dark.
- Chapters — scenes, closing a chapter so the story carries forward as a summary, and the chapters list.
- Story and world — narrator or role-play, the persona you play, the story so far, and lore that fires on keywords.
- The prompt — exactly how each request is assembled, in what order, and how to look at it before you send it.
- Models and parameters — connecting to an endpoint, picking a model, and the sampling settings.
- Your data — where your stories live on disk, backups, what happens when the server is not there, and keeping several stories.
- The desktop app — one download, one icon, and where it keeps your stories.
- Running it anywhere — the zip: one download, one call, on any machine that has Node.js.
- On your phone — reading and writing on a phone: getting in, what is there, what is not, and the home-screen icon.
- Upgrading — getting the new version, carrying your stories across, and which build you are running.
- Development — repo layout, npm scripts, the test suites, and how these screenshots are made.
Alongside the guide: Release notes — what changed in each version, which is also what the app shows under ⋯ → About Lamplit → Release notes.
The shape of the thing, in one paragraph
A story holds who tells it, who you play, and its world. A story has chapters, and a chapter is the conversation plus the scene it opens on and the summary it closes with. Only the chapter you are writing is ever sent to the model; earlier chapters reach it through the story so far, which “close chapter” rewrites. Everything is one JSON file per document, saved as you type, and the whole prompt is rebuilt from those documents on every request.
Conventions in these pages
- Bold names a thing you can click.
- Paths like
data/stories/<id>.jsonare relative to wherever the app is running from. - Where a page says “the app insists”, it means exactly one thing: a sheet that will not take Escape for an answer. There are only two in the whole app.