The page already has the prose
The text you've written is the manuscript. An assistant can read it — but it can't reliably re-derive a consistent world from a fresh read every session, and it won't.
A novel, a manual, a screenplay is a continuity machine — chapter 12 must agree with chapter 3 on every name, date, and decision. But every new chat starts cold and quietly re-invents the canon: the scar moves, a dead character comes back, the voice drifts. PriorStates gives your assistant a persistent, searchable canon — recall before you write, record what you decided as you go — across Claude, ChatGPT, Cursor and the rest.
The prose lives on the page. The world behind it — the part that has to stay consistent — lives nowhere your assistant can reliably recall.
The text you've written is the manuscript. An assistant can read it — but it can't reliably re-derive a consistent world from a fresh read every session, and it won't.
Names, dates, who-knows-what, the narrative voice, the plot points you've committed to. The "story bible" in your head — or a doc you forget to open. This is what PriorStates holds.
Most sessions only do steps 2–3. PriorStates is steps 1, 4, 5 — the brackets that keep the world consistent instead of drifting.
Before drafting the scene, ask what's already true. A memory_search
surfaces the facts that touch it — the scar, the date the war ended, the voice —
and the decisions you've made. You're inside the world before
the first sentence.
With the canon in hand, the assistant writes in-world and in-voice — and doesn't re-pitch the opening you already scrapped or rename a character it forgot existed.
Hold the new passage against the canon. Does anything contradict a settled fact? The check is a recall, not a re-read of eleven chapters.
The scene isn't done when it reads well — it's done when the next session
knows what changed. One memory_add for new canon, a
decision for a craft choice, a loser for a direction you
killed.
Tomorrow's chapter re-runs step 1 and the world is intact — whether it's you in Claude, a co-author in ChatGPT, or a different tool entirely. One canon, every session.
The same recall that opens today's scene already carries everything earlier chapters established — and tomorrow it carries today's turn too.
Step 1 — recall before you write. The canon for this scene appears before you draft a line:
$ memory_search "Mara, the war, narrative voice"
• Mara has a scar over her left eye (since the siege, ch 3)
• The war ended in 1147; the realm has been at peace 9 years
• Voice: present tense, close-third on Mara only — no head-hopping
• Mara does NOT yet know her mentor betrayed herYou — and the assistant — start the scene knowing the scar, the timeline, the voice, and what Mara doesn't know yet. No contradictions waiting to be caught in edits.
Step 4 — record, then recall again. You wrote the betrayal reveal and recorded it. The same search now carries it:
$ memory_search "Mara, the war, narrative voice"
• Mara has a scar over her left eye (since the siege, ch 3)
• The war ended in 1147; the realm has been at peace 9 years
• Voice: present tense, close-third on Mara only — no head-hopping
• Mara learns her mentor betrayed her (ch 12) — shown, not toldChapter 13 — tomorrow, or a co-author, or a different tool — opens knowing the betrayal is now in the open. The world compounds instead of resetting.
Each entry is a plain Markdown file on your disk, semantically searchable — your story bible, but one your assistant actually reads.
A fact the story must honor. “The war ended in 1147.” Recalled whenever it's relevant, so it never quietly changes.
A craft choice you committed to. “Present tense, close-third on Mara.” Stops every new session from drifting the voice.
A direction you scrapped. “Tried opening on the battle flashback — too cold, cut it.” So the assistant doesn't re-pitch it next week.
A trap to avoid. “Three characters' names already start with M — don't add another.” Catches the slip before it's on the page.
You might — and a static doc has the same three problems a developer's notes file does: it isn't recalled, it drifts, and it doesn't travel.
A fact you record in Claude is recalled in ChatGPT and Cursor too. A doc lives in one app; PriorStates is the layer they all share.
Your assistant won't read a 40-page bible before every scene. It will recall the handful of facts that touch this one, by meaning.
A bible is a chore you maintain. The canon accumulates as a side effect of drafting — record-as-you-go, not a doc you keep forgetting to update.
Once installed, your assistant does it on its own.
priorstates init in your manuscript folder
gives the project its own memory and
journal, and wires a short
protocol into Claude, ChatGPT, Gemini, Copilot and
Cursor: recall the canon before you write, record what's now true as you go.
Every entry is a file you can read, edit or delete. It stays on your machine.
One rule keeps the canon trustworthy:
Store what a later chapter could contradict. If it's a fact the story must honor — a name, a date, a decision — it's canon. If it's just words on the page, it's the manuscript. And when the canon changes, supersede the old fact so recall always returns the live truth.
Free, open source, and yours to run.