More technical? Here is how it works.
The rest of this site describes what Proselon does for a novel. This page is the machinery underneath, written for the reader who would rather study the design than be sold the benefit. If you have already rigged something like it yourself, a coding agent pointed at a folder of Markdown, here is the account of what we found had to be true and what we chose to leave out. Everything here ships in the current release, and the numbers below were read out of the code rather than recalled.
A schema, but not a mandatory one.

Most AI writing tools are built from forms. A synopsis field, character sheets in fixed boxes, a beat structure, a generate button. This forces a writer into using a method and structure imposed by the AI, instead of being free to use their own.
Programmers had already left that design behind. They use a coding agent that can read any file in their project at any time. Proselon began as the conviction that writers could have the same thing. So the co-writer is an agent on the book, and the schema it ships with is a convention it knows rather than a form it enforces.
Which also means there is no system to learn. The folders are the method, and they are already yours. A tool built on its own boxes takes your investment in them with it when it goes. A folder of plain files survives any tool, ours included.
- Format
- UTF-8 Markdown, one file per page, with YAML frontmatter on knowledge pages
- Validation
- None. Nothing holds a list of permitted shapes to check yours against
- Adaptation
- The agent derives structure from what it finds, on every read
An agent on your filesystem, not a chat box.
A book with no enforced shape cannot be read back by field identifiers, so something has to go and look. The co-writer is an agentic CLI spawned in a pty on your own machine, with your book directory as its working directory and the ordinary agent tool set scoped to it. Nothing is pasted and nothing is uploaded. And because it works the files directly, one request can move through many of them, so a change to a character or a place runs out through every scene that leans on it instead of being retyped field by field.
Prose quality is a context problem.
The co-writer’s prose is the product, and the prose is decided before the model writes a word, by what is in front of it when it writes. A 120,000-word novel is about 160,000 tokens, and a million-token window swallows it whole. The question is not whether the book fits. It is what sending all of it buys, which is two problems.
- Lost in the middle
Retrieval over a long context is strong at the head, strong at the tail, and measurably worse through the middle. Paste a whole novel and chapters four through thirty land in the trough — where most of the book you are asking about lives.
- Cost and cache
160,000 tokens are billed and processed on every request, forty chapters of which the request had no use for. Prefix caching helps only while the prefix holds still, and drafting is exactly the workload that edits constantly.
How Proselon manages context.
- Framework
- 100,00025%The always-resident core and whichever modules this task triggered
- Project canon
- 46,00012%Series plot, themes, the story bible pages this scene touches
- Voice corpusprose
- 60,00015%Your own prose, held to a floor rather than a ceiling
- Book and chapter canon
- 25,0006%The book plot and the chapter map around this scene
- Scene plan and sheets
- 34,0009%The plan for this scene, and the character pages it names
- Preceding scenesprose
- 75,00019%Three to five, whole, in order
- Headroom
- 60,00015%The margin the pass is allowed to grow into
135,000 of 400,000 characters, 34%, is manuscript. The rest is what makes the manuscript legible — the plan that produced it and the canon it has to agree with. A whole book pasted into the window inverts that ratio and buries the scene being drafted in the middle of it.
If you have built your own writing setup, you may take retrieval as settled, the way to chunk a book into embeddings and pull the nearest passages at each prompt. It is the professional-sounding default, and for prose it is the wrong instrument.
An index is a second copy of the book, embedded and already stale the moment you edit, with a pipeline to rebuild around a manuscript that moves all day. It also returns the wrong unit. Similarity search hands back the few fragments that scored highest, and a judgment about a scene needs the scene whole.
Traversal has neither fault. A file saved a minute ago is as findable as one from last year, a scene is read entire, and a question no index foresaw still resolves, because the agent can open forty files and decide. We left retrieval out to make the writing better, not to spare ourselves the work, though it spares you some too, since nothing here asks to be kept in sync.
Lock a page. Hide a page. Both bind.
Two flags, set by right-clicking any file or folder, cover that item and everything nested inside it, and neither one is something the co-writer can set, clear or negotiate with. They are the writer’s side of the same discipline, deciding what is allowed to influence the prose.
Locked
The co-writer may read it and can never change it. Neither can anything else, your own editor included, until you unlock it.
Hidden
The page is not in the tree the co-writer is given, so it is never opened and never influences a draft.
Hidden, to remove an influence
Ask for a scene, dislike it, and ask again, and the second draft often echoes the first, because the discarded page is still in front of the model and the model conditions on whatever it is given. An abandoned chapter or a cut subplot does the same, pulling new prose back toward the version you meant to leave behind. Hide the page and it is never loaded, by any route, while the file stays where it is, yours to edit. You are removing the influence, not the material. The trash goes further and refuses the co-writer outright.
Locked, to anchor
Locking is the opposite instrument. A locked page is readable and unwritable, the state for chapters a serial has already posted. The co-writer reads it freely and cannot alter a word, so the anchor holds one way. The fixed text shapes everything written after it, and nothing written after it reaches back. Ask for a change it would need and it stops and says so.
The Story Graph, inherited from your own file tree.
Most books share the same core parts, a cast, places, a plot and scenes, whatever shape a writer keeps them in. Open the graph and Proselon reads your book and draws the web of them: who belongs to what, who lives where, which scenes carry which people. It arrives already laid out and fitted to the window. The people and places meet you first, while the manuscript and the plot documents wait in the legend, a click away.
Hover a type to pick it out.
The links are already in your book
If you keep an Obsidian vault, you know the graph view and the typing it cost. Here a character sheet naming a home, a page linking a page, a scene inside its chapter each become a line on the map, typed nowhere. An unrecognised name is left alone, never guessed at.
Nothing to maintain
No tagging chore and no second database. The graph is a fresh read of your files each open. A folder you invent appears in the legend beside the shipped kinds. Prose is never read to build it, and hidden pages stay off the co-writer’s copy.
On your disk, and nowhere else.
We do not collect your books. A book is a folder of plain Markdown files on your own disk, in ~/Documents/Proselon unless you point the app at a folder you like better. No container, no database, no format of ours. Anything that reads text can read your manuscript, today or in thirty years.
The same fact answers the harder question, which is what happens to the work if you stop paying. Nothing happens to the work. The files were on your disk before the subscription and are on your disk after it; they never passed through us on the way.
When the manuscript has somewhere to be, export is one click into DOCX, EPUB, HTML or Markdown, whenever you like. And because the files are already plain text, the last resort is no resort at all. You could walk away with the folder alone and lose nothing.
- Word (for Vellum)A .docx shaped for import into Vellum.
- EPUB (for reading apps)A reading copy for e-readers and reading apps.
- HTML (for posting online)Markup to paste straight into a posting form.
- Plain text (Markdown)A single Markdown file.
- Account
- Email and password hash at signup, with terms acceptance dated. The password never reaches us in the clear.
- Signin
- IP and user agent as the calls arrive, against trial abuse and suspicious signins.
- Billing
- Plan and status, written by Stripe. Card numbers go to Stripe and are never sent to us or held by us.
- Devices
- OS, app version, computer name, last seen. Enforces the five-device limit and backs remote signout.
- Support
- Only when you press Send, via
POST /api/help, with your app version, OS and engine attached. - Updates
- At launch the app asks GitHub, which hosts our downloads, whether a newer version exists.
Everything that happened to the manuscript, on the record.
Versioning is git. Every book is a repository in the book’s own folder, written with a pure-JS implementation, and the app makes the commits: a couple of minutes after you stop typing, at session boundaries, before an update, and whenever you name a version yourself. The agent is barred from every git command that writes, so history costs no tokens and no attention.
Kept by the app, never the agent
There is no native dependency and no git config on your machine to collide with, and the commit identity travels with each commit. Restores are always forward: recovering the chapter you had before the rewrite writes that text back as a new commit rather than resetting to it, so nothing after the restore point is lost. The harness’s own files stay out of your history behind a marked ignore block, so the record is your book and nothing else.
Provenance, if anyone ever asks
The history is a dated record of everything that happened to the manuscript: what changed, when, and around which working sessions. The question is already being asked of finished books, how much of this was machine-drafted and how much was typed by a person across an evening, and the raw material for an answer sits in the book’s own folder, readable by any git tool. We do not decide what the record means. We make sure there is one.
Sign in the way you always do.
The co-writer runs on the AI account you already hold, signed in the way you always sign in, or on a free local model that never leaves your computer. We meter nothing. Six engines are built in.
- Claude
- ChatGPT
- Grok
- Gemini
- Ollama
- LM Studio
None of these require an API key. Should you prefer to bring your own, Proselon accepts that too, whether from OpenRouter, xAI, or any OpenAI-compatible endpoint.
The mechanism is downloadable.
Everything on this page is in the current release, and the download costs nothing. Free for 30 days without a card, then $6 a month, on the Claude or ChatGPT account you already hold or on a free model running on your own machine.
Proselon