Open-source project
notnotype/neuro-book avatar
notnotype/neuro-book

NeuroBook keeps the world in a ledger instead of in the model's head

An AI-powered IDE for long-form fiction writing, combining software engineering workflows, modern storytelling methodologies, and multi-agent systems.

698 stars66 forksTypeScriptAGPL-3.0

At a glance

What is it?
NeuroBook treats a novel as a data problem: world state recomputed from timestamped slices, foreshadowing kept as a ledger of promises, prose checked by 360 lint rules, and every agent mode change held behind approval. The price is that the whole workspace currently ships as canary builds from a self declared rapid development stage.
Who is it for?
The parts of NeuroBook that hold up are the structural ones: state computed from timestamped slices instead of recalled, foreshadowing kept as a ledger of promises, an agent role that can only read while writing, and a cost meter that splits token spend into four buckets. What is not settled is stability.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

World state is recomputed from slices, never recalled

The World Engine records a state change at each important point on a timeline, then derives the state of any subject at any moment from the slices recorded before it. A character wounded three months ago, a kingdom's grain stores ten years back, both answered by query instead of memory, which is the failure the design sets out to fix: in a plain chat box, settings live in the conversation and drift as the conversation grows. Adding lore means inserting another slice at the right point, so a flashback or a recollection falls out of the data model instead of needing a separate mode. Subjects are whatever the author declares, whether a person, a sect, a kingdom or a continent. The calendar is configurable, from the ordinary Gregorian one to a simplified era count or something fully invented, and dates before the common era are in scope. Every change is timestamped and auditable, so the moment a character obtained a particular sword is a fact in the record rather than something to be recalled.

The rest of the project is built to keep its answers on your own disk rather than in a chat window. The world book, the manuscript and the world configuration are local Markdown or TypeScript files with a project level SQLite database beside them, migrating the whole workspace is a stated design goal rather than an export feature, and any editor can open the files. Spending is metered in four separate buckets, input, output, cache creation and cache hit, each converted into dollars or yuan, so the cost of one chapter can be read off the same ledger that holds the plot.

Chekhov's gun is tracked like technical debt

The plot workbench separates where a story is told from why it happens. A carrier tree handles the first, volumes down to chapters; a causal tree handles the second, plot lines down to scenes. A non linear order can then be arranged freely without scrambling the chain of cause, which is the piece a chapter tree alone cannot give you.

Foreshadowing is registered as a promise with three states, planted, advanced and paid off. The beats hang off scenes, so they move when the plot moves, and a promise whose target chapter arrives enters the writing instruction on its own. The same ledger takes a romance line that owes the reader a payoff every few chapters and will say so when thirty chapters have passed without one, which makes the debt visible instead of remembered. Decisions are filed at the moment they are taken, risk is a required field rather than an optional note, and reversing a decision leaves the reversal in the record instead of erasing the original reason.

Chapter level information control is stored the way the project borrowed it from least privilege: what the reader knows, what the protagonist knows, what must stay hidden, what may only be hinted. Each scene anchors to the world timeline, a place and the cast present, so planning and world state stay coupled instead of drifting into two systems that disagree.

The leader may write, the writer may only read

The multi agent studio divides work by permission rather than by prompt. A leader plans plot and schedules, a writer produces prose and holds no write access to the world, and retrieval and researcher roles look up settings and check facts, so numbers come from the engine's books and details come from a lookup instead of an invention. The documented default chain runs from exploring an idea, to initialising the project and its world book, to filing World Engine records, to plot planning and state advances, to chapter writing, to backfilling what changed afterwards.

Three modes sit above that chain. Discussion produces ideas without touching the manuscript, plan produces a full proposal that runs only after you approve it, and every switch between modes needs an explicit yes. Inline AI in the editor works on the selection with a streaming preview, leaving the main editing flow and the main session undisturbed, which matters when a 200 chapter project has one context window worth of attention to spend.

The claim attached to all of this is deliberately modest: current models cannot finish a quality novel on their own, and the value claimed is the work around the edges, sorting material, verifying detail, arguing with you, and not being alone. Character cards from SillyTavern arrive through a three stage inspect, unpack and import path, with the original card and world book archived whole and the stable parts moved into the world book. The roleplay entry point, by the project's own account, is still being rebuilt to the same standard as writing mode.

llmlint treats prose the way a linter treats code

The prose checker is 360 rules, run on a manuscript the way a linter runs on a repository. The named categories are filler words, mechanical transitions, formulaic questions, binary contrasts, empty summary sentences and monotonous rhythm, which are the shapes a reader spots as machine written without being able to say why. Static rules scan a whole draft in seconds, LLM rules handle the cases that need context to judge, and mechanical findings can be fixed automatically. The same checker is exposed twice, as a polish skill inside the editor and as a standalone command line tool in its own repository at notnotype/llmlint, and it also appears here as the workspace package packages/llmlint, so the package directory and the project name differ by one level.

The stated ancestry is worth reading because each borrow is named rather than implied. World state is event sourcing, credited to Martin Fowler, beside the story bible of long form fiction. The promise ledger is technical debt tracking, credited to Ward Cunningham, beside Chekhov's gun and Sanderson's three rules of planting, advancing and paying off. Chapter information control is least privilege and information isolation beside Hitchcock's bomb under the table. The two trees are separation of concerns beside fabula and sjuzhet. Decision records are an architecture decision record beside the Chinese commentary tradition. Three modes plus approval is code review and a plan then apply split beside an editorial desk that reads a manuscript three times. And this checker is lint, dated to Bell Labs in 1978, beside Orwell's essay on political English.

Four install paths, and two pipe a remote script into a shell

The quick start offers a portable Windows archive, two shell installers and a Bun launcher. On Windows the archive name has to be exact, neuro-book-windows-x64.zip, unzipped and started with Start Neuro Book.cmd. Multi instance management, Docker and builds from source go through NeuroBook Manager instead, installed on PowerShell by fetching a script and running it in the same line:

powershell
irm https://raw.githubusercontent.com/notnotype/neuro-book/master/scripts/install/install.ps1 | iex

On Linux and macOS the same shape, from the raw script path:

bash
curl -fsSL https://raw.githubusercontent.com/notnotype/neuro-book/master/scripts/install/install.sh | sh

If Bun is already installed, on any platform, the launcher is one command:

bash
bunx --bun @notnotype/neuro-book-manager@canary

The manager asks for a directory, a port, an update channel and an authentication method, and runs one environment check before anything is confirmed. Six installation routes are named in total once multi instance, Docker and source builds are counted, and the deployment page carries a SHA256 audit procedure for the bootstrap scripts. That procedure matters more than usual here, because two of the four documented commands execute whatever the branch serves at the moment you run them, with no pin and no hash in the command line itself. A separate operator bridge page exists for handing deployment or troubleshooting to another AI agent.

Every recent release is a canary build stamped with its commit

The three most recent releases are v0.10.2-canary.20260908.091411Z.2e86c254, v0.10.1-canary.20260908.063058Z.1b472a8d and v0.10.0-canary.20260907.031100Z.4b10ab1d, dated 2026-09-08, 2026-09-07 and 2026-09-07 UTC. Each name carries the UTC build time and the short commit hash inside the version string itself rather than in a note beside it, and no stable version appears among the three. The last push to the default branch, master, is dated 2026-09-22, a fortnight after the newest of those builds, so the tag stream and the branch are running on different clocks and a tag tells you less about the current tree than it looks like it does.

The project does not dress this up. A warning directly under the title says it is in a rapid development stage, that the software and its interfaces may be unstable, and that feedback is welcome, and the launcher offered to anyone who already has Bun points at the canary channel by default. What the page does not supply is any statement of what a canary build does guarantee, or any mapping between a canary tag and the Windows archive name that the quick start requires you to get exactly right on first try. For a tool whose pitch is a project measured in years, that gap is the one to watch.

The documentation warns that most of it is AI-generated

A warning above the documentation links states that most of the documentation site is currently generated by AI, and points readers at the community channels instead: a Discord invite and a QQ group numbered 287447372. That single line tells you more about the project's trust posture than any feature claim does.

The written surface is large and split across two trees at the repository root, a docs directory and a vitepress directory. The Chinese README links the VitePress sources by path, among them deployment, operations and privacy, the agent mental model, workflow and job, three modes, profile authoring, and a reference bookshelf inside packages/neuro-book/assets. The front door itself is Simplified Chinese, with a language toggle to README.en.md, and CONTRIBUTING.md sits beside an English twin, so an English path exists in the tree even though the first page a visitor meets is Chinese. The contributing paragraph at the bottom of that page names its first linked item and then breaks off mid sentence, which leaves the repository's own instructions for opening an issue and a pull request inside those two files rather than on the front page. One more small mismatch: the homepage field points at blog.notnotype.com/neuro-book/official/, while the README links the documentation root without that suffix.

Fifteen workspace packages, two harnesses, and a governance script set

The workspace root is named neuro-book-workspace and declares fifteen packages under packages/, from neuro-book-manager and owned-process through nb-history, nb-workflow, nb-memory, nb-session, nb-profile, nb-ui, plus contracts and test support. Two of them carry harness in the name, neuro-agent-harness and nb-harness, and the README calls the multi agent layer NeuroAgentHarness. A postinstall step compiles that package, so the harness is built on the way in rather than consumed as a published artifact:

bash
bun run --cwd packages/neuro-agent-harness build

The script set is broader than an application usually needs. It publishes a container image to GHCR, packages the Windows portable archive, measures the product runtime image, enforces product policies with a required all flag, and runs five governance commands for checking agent governance, printing agent context, creating an agent worktree, and migrating task ownership. The root carries matching files for that layer, AGENTS.md, CLAUDE.md, .agents/, .claude/, .local/ and .omp/, alongside WATCHDOG.md, RELEASE.md, ACKNOWLEDGENCES.md, PROJECT-STATUS.md, a patches directory and a bun.lock beside a bunfig.toml. Licensing is AGPL-3.0-only in package.json against the repository's AGPL-3.0 metadata, and the project currently shows 698 stars, 66 forks and 76 open issues. An agent that reads only the front page will not guess any of that.

Editorial conclusion

The parts of NeuroBook that hold up are the structural ones: state computed from timestamped slices instead of recalled, foreshadowing kept as a ledger of promises, an agent role that can only read while writing, and a cost meter that splits token spend into four buckets. What is not settled is stability. The front page carries its own warning that the software and its interfaces may be unstable, every recent release is a canary build, and the documentation site says most of it was generated by AI. Before committing a year of writing to it, check three things yourself: that the Markdown world book and manuscript stay readable with the application closed, that your model provider and billing survive a canary channel update, and that the Chinese documentation agrees with the English files in the tree about what each setting actually does.

Frequently asked questions

What does NeuroBook keep on my own disk?

The world book, the manuscript and the world configuration are local Markdown or TypeScript files with a project level SQLite database beside them. Moving the whole workspace is a stated design goal rather than an export feature, and any editor can open the files.

How much does a chapter cost in NeuroBook?

Token use is metered in four separate buckets, input, output, cache creation and cache hit, each converted into dollars or yuan. Models are chosen across multiple providers with your own API key, so the spend reflects your own rates.

Can a NeuroBook agent change my world state while it writes?

Not in the writer role, which holds read access only, while the leader role may write. Three modes sit above that split, and each switch between them requires explicit approval before anything runs.

Is the AI prose checker part of the NeuroBook repository?

It is exposed both as a polish skill inside the editor and as a standalone command line tool in a separate repository, notnotype/llmlint. It also ships here as the workspace package packages/llmlint, with 360 rules covering filler words, mechanical transitions and related patterns.

Is NeuroBook settled enough for a novel that takes months?

The README carries a warning that the software is in a rapid development stage and its interfaces may be unstable, the recent releases are all canary builds from the first week of September 2026, and the Bun launcher defaults to the canary channel. Plan for the tool to move while you write.

Official sources

  1. License: AGPL-3.0
  2. notnotype/neuro-book on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/notnotype-neuro-book.svg)](https://hysenlabs.com/projects/notnotype-neuro-book)