A VS Code extension · by OkeyLanders

Workshop your prose where you already write it.

AI writing analysis built into VS Code. Select an excerpt from your manuscript, attach a context brief assembled from your own story bible, and run seventeen focused craft tools — dialogue, gesture, cliché, continuity — with your API key staying on your machine.

Add to VS Code See it in action
Claude Opus Claude Sonnet GPT-6 Gemini
the Prose Minion sidebar · live in your editor
One key, every frontier model

Prose Minion reaches OpenRouter's full catalog, and lets you assign a different model to each job — a heavyweight for analysis, something fast for dictionary lookups. Bring your own key.

AssistantClaude Opus 5.5 AssistantClaude Sonnet 5 ContextGPT-5.4 ContextGemini 3.8 Flash DictionaryClaude Haiku 4.5 AssistantGPT-6.1 Sol ContextDeepSeek V4 Pro

Powered by OpenRouter — bring your own key.

What it is

A developmental editor that lives in the margin of your draft.

01

Select an excerpt.

Point Prose Minion at a passage in any Markdown manuscript — a paragraph, a scene, up to 2,000 words.

02

Attach a context brief.

Built automatically from your story bible — character sheets, voice guides, prior chapters — so the analysis knows your world.

03

Run a craft tool.

Dialogue, gesture, cliché, continuity — seventeen focused passes return plain, copyable notes in monospace.

The Assistant tab

The writing room.

Your excerpt, an optional context brief, and a wall of craft tools. Pick an analysis and it runs on the passage with your story bible attached — then hands back notes you can act on.

  • Three primary tools up front — Dialogue & Beats, Prose, Gestures — plus More Tools for every other pass.
  • A live word count and source path keep the excerpt grounded in the real file.
  • Results keep their monospace + emoji character — copy or save any pass to your workspace.

A second reader who already knows your characters.

🔍 Category Search: "prepositions" saved .md
28 matched words · 133 occurrences · Drafts/chapter-6.12.md
through
13
into
12
up
9
beside
8
about
7
against
7
beneath
6
behind
6
+ 20 more words in the saved report
🔍 Category Search: "colors" saved .md
13 matched words · 20 occurrences · Drafts/chapter-6.12.md
white6
golden2
blue2
aureate1
rose1
slate1
purple1
line 181 · …A bracelet of aureate gold coiled his…
🔍 Details & Cluster Analysis saved .md
Context window: 3 words · Cluster window: 300 (min 10 hits)
beside · 8 hits
top pairing: "walked beside" ×4 — presence walked beside ×3
aureate · 1 hit · line 181
…A bracelet of aureate gold coiled his…
through · 13 hits · 0 clusters
evenly spread — no over-tight repetition detected
every hit is linked back to its line in the draft
click to shuffle full pass →
The Search tab

Find your tics across the whole book.

Word and category search scoped to a file, a folder of chapters, or your entire manuscript set. See every occurrence, the gaps between them, and where a word clusters too tightly.

  • Scope it to active file, manuscripts, chapters, or a path pattern.
  • Tune context words, cluster window, and minimum cluster to catch repetition that matters.
  • Results come back as a per-file table with hit counts and average gaps.
📊 Prose Statistics saved .md
📝 Word Count3,087
⚖️ Avg Words per Sentence9.2
🎯 PacingFast (short sentences)
💬 Dialogue Percentage19.1%
🎨 Lexical Density69.8%
🌈 Vocabulary Diversity39.4%
📖 Readability Score81.5
🎓 Readability Grade (FKGL)6.7
⏱️ Reading Time13m
Drafts/chapter-6.12.md · 19 metrics per run
📏 Word Length Distribution saved .md
1 chars
1.6%
2 chars
10.2%
3 chars
21.1%
4 chars
18.6%
5 chars
13.2%
6 chars
10.8%
7 chars
9.2%
8 chars
6.6%
9 chars
4.3%
10 chars
2.2%
3,137 total words · 1,183 unique · 645 hapax (20.6%)
🚩 Style Flags saved .md
💪 Weak Verbs78
hadismadewasdid
🔤 Adverbs (-ly words)59
violentlyreflexivelyfinallysuddenly
🗑️ Filler Words23
justquiteactuallysomehow
👻 Passive Voice2
been druggedbeen transformed
every flag lists its examples — nothing is auto-fixed
🧭 Publishing Standards YA · 5.5×8.5 in
Word Count
min 50000 / max 90000
3087
▼ below
Dialogue %
min 40 / max 55
19.1
▼ below
Lexical Density %
min 50 / max 55
69.8
▲ above
Avg Words/Sentence
min 12 / max 16
9.2
▼ below
est. 12 pages @ 275 words/page — chapter vs. book targets
click to shuffle full pass →
The Metrics tab

The numbers behind the prose.

Prose statistics, style flags, and word-frequency — measured against a publishing standard and trim size you choose. Vocabulary diversity, lexical density, readability, word-length distribution.

  • Pick a publishing standard (YA, adult) and trim size; metrics calibrate to it.
  • Style flags surface weak verbs, adverbs, filler, and passive voice.
  • Visual distributions — word length, frequency — render right in the panel.
The Dictionary tab

Definitions with a sense of the scene.

AI lookups that read your context — definition, IPA pronunciation, and a sense explorer with synonyms tuned to how the word sits in your sentence. Run a full lookup or a fast one, and leave Topic & Related Lexicon on to end each entry with related topics, vocabulary, and books to read next.

📕 Writer's Dictionary Claude Opus 4.8
the determined set of her jaw
Definition

A fixed, tense positioning of the lower face indicating resolve, stubbornness, or quiet defiance — willpower made manifest in bone and sinew.

IPA /ðə dɪˈtɜːmɪnd sɛt əv hɜː dʒɔː/
source: Drafts/chapter-1.5.md · full lookup
🔍 Sense Explorer sense 1 of 3
Physical manifestation of resolve

"The determined set of her jaw told him argument was futile."

Synonyms
firm jawset chinsquared jawjutting chinsteeled expressionhardened features

Nuance: implies control — the character is holding something back while pushing forward.

+ stubbornness/defiance · silent communication
🎭 Character Voice Variations 3 of 12
Spare / minimalist
"Her jaw was set. She wasn't asking permission."
Hardboiled / noir
"That jaw could cut glass. She'd made up her mind before the engine turned over."
YA contemporary
"I knew that look — chin up, jaw tight, zero room for debate."
twelve rewrites calibrated to different narrative voices
🧭 Semantic Gradient weakest → strongest
focused look→firm mouth→set chin→determined set of her jaw→clenched jaw→locked teeth
Tonal sliders
Intimacy
90%
Admiration
70%
Tension
60%
⚠️ cliché alert: rotate the anatomy — chin, mouth, cheek muscle
click to shuffle full pass →
Seventeen writing tools

A guide, not a dropdown.

The tools picker opens as a guide — bigger cards that say what each pass does, grouped Primary, Dialogue, Craft & Voice, and Technical. Continuity even checks your excerpt against prior chapters.

Writing tools Primary

Dialogue & Beats

Dialogue quality and action beats in equal measure — what's said and how it's embodied.

runs on your excerpt · context brief attached
Writing tools Primary

Prose

Diction, imagery, and cadence — with creative sampling across multiple stylistic approaches.

runs on your excerpt · context brief attached
Writing tools Primary

Gestures

Convert static conditions into live events — something happens, something changes, someone must respond.

runs on your excerpt · context brief attached
Writing tools Craft & Voice

Cliché

Dead metaphors, stock phrases, and over-elaborate purple prose — with priority triage.

runs on your excerpt · context brief attached
Writing tools Craft & Voice

Show & Tell

Dramatization balance — under-rendered peaks that should show; over-labored transitions that should tell.

runs on your excerpt · context brief attached
Writing tools Craft & Voice

Craft Steering

Sound, rhythm, and how each sentence carries you into the next — inspired by Le Guin’s Steering the Craft.

runs on your excerpt · context brief attached
Writing tools Technical

Continuity

Internal scene logic — spatial impossibilities, vanishing props, timeline breaks, and info the character couldn't know.

runs on your excerpt · context brief attached
click to shuffle real output →
Account balance
OpenRouter
$12.40
Last request $0.014

↻ refreshes after every request

The balance widget

Always know what a pass costs.

Your live OpenRouter balance sits in the header, with the last request's cost right beneath it — so a single lookup's spend is never a surprise. You pay OpenRouter directly; the extension is free.

The Workshop · beta

A writers’ room, in an editor tab.

Open the Workshop beside your draft and talk a passage through. Jill hosts; invite guests like Felix for rhythm, Quinn for continuity, or Margot for voice, from eleven specialists. Run any craft tool into the thread, and keep the whole room as a named session that lives in your project.

host + guests tools in the thread conversation widgets rewind & branch prompt caching
Prose Minion Workshop
chapter-5.8-rewrite.md
The Prose Minion Workshop: a pinned excerpt and four context files on the left; in the thread, Jill’s take on a Dialogue & Beats report and a reply from the guest Felix, each showing cached tokens; below, the Talking to rail, the context bar, and the composer with Est. Cache Time Remaining
The actual Workshop UI (v2.8.0) with a sample session.
The Invite guest picker: Jill as host, with Sister Agnes, Cliff, Dev, Edna, and Felix, who is already in the room

Host and guests

Jill hosts by default. Invite up to two specialists — rhythm, continuity, dialogue, voice, stakes — who read beside your host and never replace it.

The Workshop Tools picker with Craft Steering selected beside Show & Tell, Choreography, Stock & Signature, and Placeholders

Tools in the thread

Fifteen craft tools, Craft Steering included, run on the pinned excerpt and report into the conversation. Or ask a persona to run one on a line you’re discussing.

The Widgets browser, showing the three widgets that are ready now

Conversation Widgets

Gesture Playground, Creative Variations Explorer, and Lexical Gravity let you play with options first, then commit what you keep to the room.

Conversation settings: response style and persona expression options

Set the room’s style

Choose how personas respond — Analyze, Balanced, or Converse — and how much of their own voice they bring. Your choices stay visible and never change silently.

A reply with Rewind to here and Branch from here, above a writer message with Edit from here

Rewind, edit, branch

Rewind the room to any reply, edit an earlier message and send it again, or branch a saved session to try another direction. The original stays as it was.

The composer with Est. Cache Time Remaining, the context bar, and Jill and Felix in the Talking to rail

Cached, with room to think

Retained conversations ask Claude and supported Qwen routes to cache. A clock estimates the window; each reply shows what was actually cached. Standing context holds up to 100,000 words.

Nothing in the Workshop edits your manuscript. Copy what you want to keep, or save any reply to your notes.

The details that add up

Small things, done right.

Context briefs from your story bible

Character sheets, voice guides, and prior chapters assembled into the prompt automatically.

Seventeen craft tools

Dialogue, gesture, cliché, continuity, craft steering — primary, craft, and technical passes.

Monospace results, kept

Every pass returns plain, copyable notes — save any of them straight to your workspace.

Manuscript-wide scope

Run search and metrics over one file, a chapter folder, or every manuscript at once.

Publishing standards

Calibrate metrics to a YA or adult standard and a real trim size before you measure.

A model per job

Assign a heavyweight to analysis, something fast to dictionary lookups — your call, per task.

Keys stay local

Stored in VS Code SecretStorage — never in settings, never on a server.

Theme-native UI

Follows your VS Code theme by default — or flip one switch for Warm Dark.

Your draft stays yours

Analyses, rewrites, and Workshop replies are suggestions. Prose Minion never edits your manuscript.

Built right

Not a flimsy wrapper. A real tool.

Your key never leaves your machine.

The OpenRouter key lives in VS Code's encrypted SecretStorage — not in settings, not on a server.

No backend, no middleman.

Calls go straight from your editor to OpenRouter. Your manuscript and prompts are yours alone.

Clean architecture.

Layered, typed, tested — built to last. Forked from the pixel-minion framework.

Get started

One key, then you're editing.

1

New to VS Code? See the setup guide

Install VS Code, build a project folder, and configure every setting — the setup guide walks through all of it.

2

Install Prose Minion

Search Prose Minion in the VS Code Extensions view, or grab it from the Marketplace.

3

Add your OpenRouter key

Open the Prose Minion view and paste one OpenRouter key. It's stored in encrypted SecretStorage.

4

Select, pick a tool, analyze

Highlight an excerpt, choose a craft tool, and read the notes — or open the Workshop and keep going.

Add to VS Code View on GitHubsoon

Prose Minion works on Markdown manuscripts in your workspace. Results save right back to a folder you control.

prose-minion
# 1 — install the extension
ext install okeylanders.prose-minion
# 2 — add your key
✓ OpenRouter key stored in SecretStorage
# 3 — workshop a passage
select → tool → analyze → revise ✎
Questions

Good to know.

Do I need an account? +
No account or sign-up — you bring a single OpenRouter API key. That one key covers the Assistant, context, and dictionary models.
What files does it work with? +
Markdown manuscripts in your workspace. Excerpts come from the file you point it at; search and metrics can span a folder or your whole manuscript set.
How much does it cost? +
The extension is free. You pay OpenRouter directly for what you generate — and the header shows your live balance plus the last request’s cost, so you always know your spend.
Which models can I use? +
Anything in OpenRouter’s catalog — Claude, GPT, Gemini, and more. You can assign a different model to the Assistant, the context brief, and dictionary lookups.
What is a context brief? +
An optional bundle assembled from your own story bible — character sheets, voice guides, CLAUDE.md, prior chapters — attached to each analysis so it understands your world and voice.
Where do my results go? +
They stay in the panel as monospace notes you can copy, and you can save any pass straight to a workspace folder you control. Nothing is sent anywhere but the model provider.
Does it change my text? +
No. Analyses, rewrite variations, and Workshop replies are suggestions. Prose Minion never edits your manuscript files — copy what you want to keep.
Does it match my theme? +
Yes. The sidebar follows your active VS Code theme by default; flip the Warm Dark switch in its header for Prose Minion's own palette.
Case studies · from the working sessions

Same enemy, two fronts.

Models reach first for the statistically central move — the familiar idea, the average phrase. Two experiments, documented end to end on real manuscript beats.

Case study 01 · before the choice

Semantic runways

A writer-facing exploration of a beat's meaning-space, laid down before any suggestions arrive. One four-word gesture — "She pinched her face." — from eighteen craft passes to a menu of genuinely different choices. It changes what ideas feel available.

Read case study 01 →
Case study 02 · once the prose moves

Lexical gravity

A weighted word field — an interpretive lens like composition and light — that pulls prose away from the model's vanilla center as it's written. A standing directive on the work, never on the participant. It changes what language feels natural.

Read case study 02 →
Case study 03 · working notes

Lens logic & narrative charge

Part II of lexical gravity. A word field changes the surface of a sentence; an interpretive lens changes what the sentence believes is happening — and a charged movement leaves the scene owing the reader something afterward.

Read case study 03 →
Your editor just learned to read for craft

From rough draft to revision, without leaving VS Code.

Add to VS Code