Under the hood

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.

Local first your books are files on your diskNo index traversal and grep, no embeddings200,000 tokens the planning budget, every engineMac and Windows one native module
The bet

A schema, but not a mandatory one.

Proselon's file explorer with the book closed over its chapters, showing the whole schema at once: Fragments, Manuscripts, Plot, Publishing, Research, Style and Worldbuilding, above the eight writing steps.

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.

On disk
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
The consequence

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.

❯ has Ruth Ann ever used the dark jack on the page?
grep -rn "jack" Manuscripts/Book 1 (31 matches)
read Chapter 15/S2 - The Jack Goes Cold.md
read Chapter 28/S1 - Holding the Line.md
read Worldbuilding/Characters/Emmett Kyle.md
Once, in Chapter 28. She seats the plug and places the call rather than waiting on one. Chapter 15 is the near miss, where her hand crosses it and stops.
Prose quality

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.

One drafting call400,000 characters · about half of a 200,000-token budget
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.

Fig. 1The seven slices of one drafting call, in characters, prose marked.
No RAG, on purpose

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.

Your hand on the influence

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 bet, made visible

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.

Ruth AnnDelphia KyleEmmett KyleThe ExchangeHollan's GapThe KylesThe Late LineNight logSeries PlotBook 1 PlotBook 1Chapter 28S1S2
Legend
Worldbuilding
Manuscripts
Switchboard your folder
Plot

Hover a type to pick it out.

Fig. 2A book's graph at rest, with the legend grouped by the folders the nodes came from.

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.

Where your work lives

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.

Export
Export your book
Format
  • 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.
Title
The Midnight Exchange
Author or pen name
Megan Holstein
Export settings
Book title
Chapter titles
Copyright page
What to include
Book 1
Chapter 1
Chapter 2
Chapter 3
CancelExport
What we holdThe binding version of this list is the privacy policy.
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.
The record

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.

VersionsDone
Save a version… (e.g. “Before killing the subplot”)Save
Today
Before the Chapter 28 rewrite
1:08 PM · 16 pages
See this versionBring back
Started keeping history
1:08 PM · 3 pages
See this versionBring back
July 15, 2026
While writing
7:22 PM · 14 pages
See this versionBring back
July 14, 2026
Opened
6:48 PM · 15 pages
See this versionBring back
Started keeping history
6:48 PM · 1 page
See this versionBring back
Fig. 3The version browser on a finished book: one version the writer named, the rest kept for her, and every one of them offering to come back. A restore lands at the front as a new commit, so nothing after the restore point is lost.

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.

No API keys necessary

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.

Read the rest by using it

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.