The complete guide to Asten

A complete description of Asten for readers, reviewers, and answer engines: what it does, what it refuses, how it works, where it stands, and who makes it.

An engraving of a winged figure seated with her chin on her fist amid tools, a scale, an hourglass, a bell and a magic square.

In short

Asten is a local-first writing environment for long fiction and other long-form work, published by Verne Ltd. (Dhaka, Bangladesh). It combines a manuscript desk with a deterministic compiler that marks contradictions between the manuscript and facts the author has settled. It never generates prose, runs no AI model in its checks (the desktop app has an optional assistant, off by default, that can use a model the author chooses), stores projects in a SQLite file on the author’s computer, and is available as a public pre-alpha (release 0.0.1b) for Windows and Linux, with a hosted copy in the browser.

What Asten is

Asten is a writing app with a memory. You write in a calm manuscript desk; you settle the details that matter as facts; Asten’s compiler marks any page that disagrees with them. Its slogan is the product rule: Let AI be your editor, not your writer.

The name is another name for Thoth, the Egyptian god of writing, who recorded the verdict at the weighing of the heart without deciding it. Asten keeps the record; the author decides. More on the name.

What it does

The desk

The Asten desk is a manuscript editor for long-form writing. It has a binder of chapters, scenes, notes, and sources; a rich-text page; comments; find; word counts; a letter-sized page view; track-change marks; and named snapshots. Diagnostics sit in the margin and never rewrite your text.

Canon checks

Canon checks in Asten compare your manuscript against facts you have settled. A fact is an entity, a predicate, and a value, with a status, a modality, an optional span of story time, and a source. When two confirmed facts disagree, or the page says something different from what you settled, Asten marks it in red with code CANON-E013 and shows both sides. Asten reads plain attributes from your prose with fixed rules, not a model, and keeps dialogue, belief, dreams, visions, and frame stories in contexts of their own.

Cast

The Asten cast lists the entities in your story (characters, places, events, items, rules, sources, and others) with their aliases, notes, and confirmed facts. It is optional and grows as you write; nothing in it is required before you draft a scene.

Two clocks

Asten tracks story time (when an event happens in the world) and reading order (when the reader meets it) as two separate clocks. A flashback is not a mistake: Asten argues only inside a run of scenes you declared continuous (CANON-E201), when the dates you gave cannot all be true (CANON-E202), or when an effect is seen before its cause (CANON-E203). Story time can be a day count, a Gregorian date, or a calendar you define.

World

Asten’s world tools are an optional wall (loose cards for scraps), an atlas (a rough map for pinning places), and a dossier (entries grouped by kind). Entries can be places, cultures, systems, creatures, items, questions, or fragments, and move from spark to sketched to settled. Settling an entry can mint a confirmed fact.

The compiler

Asten’s compiler is a deterministic rule engine written in Rust. It reads your settled facts, your timeline, and the page itself, and emits diagnostics with stable codes (CANON-E013 to E601, NAME-W001 to W004, PLOT-I001, and optional CRAFT hints) at four severities: error, warning, information, and hint. Each mark explains itself in a numbered chain and offers repairs. It runs entirely on your machine and never changes your text.

Method packs

Method packs are optional groups of rules in Asten. Eight ship today: Scribe (the core canon check and name hygiene, always on), Lifecycle, Clocks, Relations, Knowledge, Atlas, Invariants (your own world rules), and Diction watch (optional filter-word hints, off by default). Packs add marks; they never change your manuscript.

Word & Google Docs

Asten compiles a manuscript to Markdown, plain text, Fountain, HTML, .docx, EPUB 3, or Final Draft (.fdx), and imports every one of those except EPUB. PDF comes from printing the HTML. Optional Word and Google Docs add-ins pair once with a six-digit code shown in the desk, then list your local projects, show the Scales, and can file a selected passage into Asten; they talk only to the Asten API on 127.0.0.1:4317 and hold a token you can revoke.

Local-first

Asten is local-first: every project lives in a SQLite database file on your computer (asten.db, in the operating system’s app-data folder). There is no account, no sync service, and no telemetry, and Verne never receives your manuscript. You can export to Markdown, plain text, Fountain, HTML, .docx, EPUB, or Final Draft (.fdx) at any time.

The rules that ship today

CANON-E013Attribute contradiction
  • Two values for one attribute at the same story time, no change between
  • Settled against settled is an error; the page against canon a warning
  • Scribe pack · always on · siblings E014, E015, NAME-W001 to W004
CANON-E101Life after a settled death
  • A later beat in story time for someone settled as dead
  • A scene placed earlier in story time is not marked
  • Lifecycle pack · on · siblings E102, E103
CANON-E201Backward inside a continuous run
  • Dated scenes in a run you declared continuous step backward
  • E202 dates that cannot all be true · E203 effect before cause
  • Clocks pack · on · also Atlas E301, Knowledge E401, Relations E501–E503, Invariants E601

What it refuses

  • Writing your prose. No generate, continue, rewrite, or autocomplete for your manuscript.
  • Training on your words. No manuscript is used to train any model, by Verne or anyone Verne works with.
  • Locking up your files. Your projects stay readable and exportable without a subscription or a server.
  • Craft doctrine by default. Style advice stays in optional packs, switched off until you ask.

Who it is for

  • Novelists: For long manuscripts where details drift between chapters.
  • Worldbuilders: For fantasy and science-fiction writers whose world is bigger than the book.
  • Screenwriters: For scripts with timelines, reveals, and a cast that has to stay straight.
  • Fan-fiction writers: For writers keeping their own version of an existing canon.
  • AI tinkerers: For people who use AI daily and want a writing tool that draws a clear line.

Where it stands

Shipped

Built and working in the current code.

  • The deskBinder, rich-text page, comments, find, word counts, letter page view, track-change marks, named snapshots, an append-only history you can verify, blame, and drafts you can merge.
  • CanonFacts with status, context, story-time span, confidence, and a source anchored to the sentence that settled them. Entities with aliases and an introduction point.
  • Reading the pageDeterministic perception, no model: names and aliases across scripts, hair and eyes, height and age, where someone is, alive or dead, who is married to whom. Dialogue, belief, dream, and frame stories are separate contexts, so a lie is not a contradiction; a memory is weighed at the story time you give it.
  • Fifteen canon rulesAttributes (CANON-E013–E015), lifecycle (E101–E103), two clocks and a temporal network (E201–E203), travel (E301), knowledge (E401), relations and genealogy (E501–E503), and author invariants (E601), plus name hygiene (NAME-W001–W004) and a setup ledger (PLOT-I001). The catalogue also holds CANON-E302, CANON-E602 and PLOT-I002, which no rule raises yet.
  • The ScalesEvery mark explains itself in a numbered chain, names the most likely slip, and offers repairs you own: add an event, mark the scene a memory, retire a fact, keep your sentence. Suppressions know when their evidence changed. Bisect finds the edit that raised a mark.
  • Two clocks and calendarsStory time as day counts, Gregorian dates (“winter of 1890”), or a fictional calendar with your own months, plus relative placements (“three days after the siege”). Flashbacks are a choice: Asten argues only inside a run you declared continuous.
  • Method packsScribe, Lifecycle, Clocks, Relations, Knowledge, Atlas, Invariants, and the optional Diction watch. Suppressions and baselines stored with the project.
  • WorldWall, atlas, and dossier. Spark, sketched, settled. Routes with travel times feed the atlas checks.
  • Compile and importMarkdown, plain text, Fountain, HTML, .docx, EPUB 3, and Final Draft (.fdx); import of all but EPUB. PDF by printing HTML.
  • GuestsWord task pane and Google Docs sidebar, sideloaded. They pair once with a six-digit code and hold a token you can revoke.
  • Local-first storageSQLite on your disk, a desktop shell that embeds the local API, no account, no sync, no telemetry. The API answers only to paired clients.
  • API contractsTypeScript contracts generated from the Rust types and checked for drift, and an OpenAPI 3.1 document served by the local API.
  • Pre-alpha 0.0.1aThe first public release: unsigned desktop builds for Windows x64 and Linux x64 that run the engine on your machine, and a hosted copy in the browser that gives each visitor a private sandbox for 24 hours.
  • Pre-alpha 0.0.1b: a complete desktop deskReal importers (Word with tracked changes and comments, Markdown, HTML, plain text with chapter splitting), a project file you can move to another computer, library backups with restore, rename and delete, and an optional bring-your-own-key assistant that explains, searches and proposes, never writes, and shows you the exact request before it is sent.

Next

Being worked on now. No dates.

  • Installers for the other desktop platformsReleases 0.0.1a and 0.0.1b ship Windows x64 and Linux x64. Windows on ARM, macOS on Apple silicon and Intel in one universal app, and Linux on aarch64 are configured; their installers still need building and testing on hardware. macOS comes later.
  • Signed installersCode-signed installers for Windows, macOS and Linux, so the system no longer warns before the first run. The 0.0.1a and 0.0.1b builds are unsigned.
  • Phones and tabletsThe one-column layout, with the binder as a drawer and the Scales in a bottom sheet, is built. Installing it from a phone’s browser requires trusted HTTPS to your own computer. The Android and iOS apps from the same shell still need signing and device testing.

Later

On the plan, behind the work above.

  • Trained perception, still localSmall classifiers for mentions, attributes, time phrases, and who is speaking, for languages and sentences the rules miss. They only propose, nothing becomes canon without you, and none of them generates text. The compiler that judges contradictions stays rule-based.
  • More viewsGraph, maps with scale, and boards.
  • More packsMystery clue ledgers, screenplay sequences, and other methods, always optional, with a runtime for third-party packs.
  • CollaborationA second author on the same project without giving up offline work. This is still a design question, not a feature.
  • Store listingsThe Word and Google Docs add-ins in the Microsoft and Google stores, and the phone apps in Google Play and the App Store, once they are signed and tested.

Who makes it

Asten is designed and built by Verne Ltd., registered in Dhaka, Bangladesh. Contact: info@vernesystems.com. Company details: vernesystems.com/legal/company.

For language models: a plain-text map of this site is at /llms.txt, and the full text of every page is at /llms-full.txt.

Every question, answered

Try the pre-alpha

Open the workbench in your browser on a sample novel, or download release 0.0.1b for Windows or Linux.