Daniel3 downloadsWrite fiction and screenplays with a writing panel: stats, a reorderable outline, style insights, English and Spanish grammar checks, paragraph alignment and Fountain scripts.
Writing tools for fiction writers and screenwriters in Obsidian. It adds a writing panel with statistics, a reorderable outline, style insights and an English/Spanish spelling and grammar check. It also covers paragraph alignment, images in the text, Spanish dialogue dashes, and a complete screenplay mode based on Fountain.
It works on macOS, Windows, Linux, iPhone and iPad and requires Obsidian 1.7.2 or later. It uses no Node.js or Electron APIs, and every control is touch-friendly.
A sidebar for the note you're working on. Open it from the pen icon in the ribbon or with the command Open writing panel. It updates as you type.
| Tab | What it shows |
|---|---|
| Stats | Word count with a length label (flash fiction → short story → novelette → novella → novel); characters with and without spaces; paragraphs and sentences; average sentence and paragraph length; reading and read-aloud time; share of dialogue; lexical variety (moving-average type/token ratio); readability (Flesch / Flesch–Kincaid for English, INFLESZ for Spanish); a sentence-rhythm chart (one bar per sentence); a per-note word goal with a progress bar; words written today; live counts for the selected text. |
| Outline | Chapters (headings) and scenes (separated by ---, * * *, ⁂ or #) with word counts. Tap to jump. Drag the ⠿ handle, or use the ⋯ menu, to reorder chapters and scenes. Each move is a single undo step. |
| Style | Long sentences; words repeated close together; three or more sentences in a row that start with the same word; adverbs (‑ly / ‑mente); your crutch words; most-used words; names and places; longest paragraphs. Tap any item to highlight it in the text, and tap again to step to the next occurrence. |
| Check | Spelling and grammar suggestions (see below). |
Headings, comments, callouts, code blocks and front matter are not counted, so the numbers reflect your prose.
Obsidian has no grammar checker of its own, and its spellcheck follows the operating system. On macOS it often offers no suggestions when you write in more than one language. Authors Toolbox adds an on-demand check powered by LanguageTool:
lang property and also sets hyphenation for justified text.Nothing is sent until you press Check, and the first check asks for permission. See Network use and privacy.
Center, right-align, left-align or justify only the selected paragraphs: right-click → Center, or use the commands. Each paragraph gets an invisible marker (%%center%%), so the alignment holds in Live Preview, Reading view and PDF export. Running the same command again toggles it off.
Insert image… lets you browse your vault's folders for an image (it opens in your attachments folder) or upload one from your device. You can set its width, alignment and an optional italic caption.
In Markdown, a line that starts with - becomes a bullet list, which breaks Spanish-style dialogue. In story notes, Authors Toolbox handles this:
- typed at the start of a line becomes —, so —¿Vienes? —preguntó. stays dialogue.-- anywhere becomes —.Story notes are notes with type: story, or notes in the folders you list in the settings.
Notes with type: script are written in Fountain, the plain-text screenplay format, and laid out as a screenplay. The layout uses Courier with standard indents and works in the editor, in Reading view and in PDF export.
(V.O.), (O.S.) and (CONT'D).DAY/NIGHT, DÍA/NOCHE…).# headings.Exports folder next to the script.The spelling and grammar check skips character names, scene headings and transitions in scripts.
| Command | |
|---|---|
| Open writing panel | |
| Center / Align right / Align left / Justify selected text, Clear alignment | also in the right-click menu |
| Insert image… | also in the right-click menu |
| Check spelling & grammar: selection / current section / whole note | |
| Clear spelling & grammar underlines | |
| Set note language: Español / English / auto-detect | |
| Convert dialogue dashes (- → —) in this note | |
| Screenplay: new script… / adapt this story into a script / export as .fountain | |
| Screenplay: format line as Scene heading / Action / Character / Parenthetical / Transition / Centered | also in the right-click menu in scripts |
| Screenplay: insert page break | |
| Screenplay: turn script formatting on/off for this note |
On iPhone and iPad, add the commands you use most to the mobile toolbar (Settings → Mobile).
| Property | Used for |
|---|---|
type: story |
Marks a story: turns on the dialogue dash. |
type: script (+ cssclasses: [screenplay]) |
Turns on screenplay mode. |
lang: es / en-US / en-GB |
Language for statistics, readability, crutch words and the grammar check. |
word_goal: 3000 |
Word goal shown in the Stats tab. |
format: short / feature / pilot |
Script length target shown in the Script tab. |
title, credit, author, adapted_from, draft_date, contact |
Title page of the .fountain export. |
Authors Toolbox uses the network only for the spelling and grammar check, and only when you ask for it.
https://api.languagetool.org.The free LanguageTool service is limited to about 20 KB per request and 75 KB per minute. Authors Toolbox splits long notes and waits between parts when needed. LanguageTool Premium (a paid LanguageTool service) is optional.
Everything else runs entirely on your device: statistics, style insights, outline, alignment and screenplay layout. The plugin stores its settings and a small daily word count in its own data.json inside your vault. It includes no telemetry and no ads.
From Obsidian: Settings → Community plugins → Browse → search Authors Toolbox → Install → Enable.
Manually:
main.js, manifest.json and styles.css from the latest release.<your vault>/.obsidian/plugins/authors-toolbox/.Beta versions: install from this repository with the BRAT plugin.
Ideas under consideration, roughly in order of priority. Nothing here is promised; suggestions are welcome in the issues.
Prose formatting gets in the way of poetry. Markdown merges lines, eats indentation and justifies text. The plan is a dedicated mode for notes with type: poem:
(MORE)/(CONT'D) across pages, scene numbers)..fountain files.npm install
npm run dev # rebuild main.js on every change (copy or symlink the folder into a test vault)
npm run lint # Obsidian's official ESLint rules (the same checks as the directory's automated review)
npm run typecheck # TypeScript strict-mode check
npm run build # type-check + production build → main.js
Source layout (TypeScript in strict mode, bundled by esbuild into main.js):
src/
├── main.ts # plugin entry: commands, events, panel state, grammar check, screenplay commands
├── constants.ts # defaults and shared constants
├── settings.ts # settings tab
├── text/analysis.ts # pure text analysis: prose map, stats, readability, style, outline, LanguageTool chunks
├── screenplay/
│ ├── fountain.ts # Fountain parser, script analysis, scene outline, .fountain export
│ ├── editor.ts # editor formatting, smart Enter, suggestions, Reading view, script template
│ └── panel.ts # writing-panel tabs for scripts
├── editor/
│ ├── alignment.ts # per-paragraph alignment markers and decorations
│ ├── issues.ts # grammar underlines and find highlights (CodeMirror state)
│ └── raya.ts # Spanish dialogue dash
├── view/
│ ├── writing-view.ts # the writing panel
│ └── helpers.ts # formatting helpers and labels
└── modals/
├── insert-image.ts
└── prompts.ts
version in manifest.json and package.json, and add the version to versions.json.git tag -a 1.4.1 -m "1.4.1"
git push origin 1.4.1
main.js, manifest.json and styles.css and a build-provenance attestation. Review it and publish.See CHANGELOG.md for the version history.
MIT © 2026 Daniel Roa