ScriptGrain makes Cursor better at being you

By Jack Stovell X · Instagram · LinkedIn · published 2026-09-20 · updated 2026-09-30

Cursor can write for you. It cannot measure you. ScriptGrain measures your voice as 45 attributes from writing you have already published, connects to Cursor, and scores every draft against the measurement, so the assistant you already use writes as you rather than as its average.

Start with the prompt builder below: paste your writing and get a system prompt written in measured numbers, ready for custom instructions or a project. The connector does the same with the full profile.

How to connect

Works with Cursor, Windsurf, Zed and any MCP client.

  1. Measure your voice. Create a free ScriptGrain account and paste three or more pieces you wrote (3,000 words works best). The profile usually takes under a minute and costs nothing.
  2. Connect. Add a remote MCP server named scriptgrain with the URL `https://mcp.scriptgrain.com/mcp` in the editor's MCP settings and complete the sign-in when the consent page opens. A plain `Authorization: Bearer sg_live_...` header works where OAuth is not supported.
  3. Write, then score. Docs, changelogs and README copy come out in the maintainer's voice rather than the model's, and `check_voice_match` runs on any file you point it at.

What changes

Without a profile, Cursor writes from a description: whatever you can say about your own style. Most of a voice is what you cannot say: contraction rate, clause ordering, how often you open with a question, the words you reach for without noticing. With ScriptGrain connected, Cursor writes from the measured profile and every draft comes back with a voice-match score and the exact features that moved. On-voice drafts score 0.85 to 0.95; a clearly different voice scores under 0.45. Paste any two pieces into the free off-voice check to see the same measurement with no account.

What stays free

The profile, the connector, scoring any text against your profile, and comparing pieces with no profile at all are free on every plan. Generating drafts in your voice, polishing toward a target and the monthly voice monitor are paid.

What you write in Cursor that has a voice

Cursor is a code editor. You still write prose in it all day.

READMEs. Docs. Changelogs, release notes, the blog post that lives in the repo next to the code it describes. Commit messages, too. Every one of those is writing with a voice, and readers notice when it slips. A README that opens crisp and dry, followed by a changelog that sounds like a press release, reads like two different people maintain the project.

The model doesn't know which person you are. Left alone, it writes from its average, which is polite, padded and faintly enthusiastic. You know the tone. "We're excited to announce a number of improvements" is what it gives you when you wanted "Fixed the retry bug. Sorry about that."

A measured profile fixes the default. ScriptGrain holds your voice as 45 attributes across 8 layers, including contraction rate, comma density, how you open a paragraph and whether you lead with the conclusion. Through the connector, Cursor reads that profile live rather than working from a description you typed once and forgot. And to be fair, the model is perfectly good at prose. It just needs the measurements.

A drafting session, step by step

Say you're shipping a release and need notes. Here's how it runs.

  1. Ask for the draft. In the Cursor chat, tell it to write the release notes for the current changes using your ScriptGrain profile. The assistant calls `generate_content`, which costs 1 credit per draft.
  2. Read the score. The draft comes back with a voice-match score between 0 and 1, plus per-feature deltas showing the draft's value against yours. Say it lands at 0.78: a partial match, where on-voice drafts typically sit at 0.85 to 0.95.
  3. Check the deltas. Maybe your average sentence length is short and the draft's is long. Maybe it hedges where you don't.
  4. Polish. Ask Cursor to run `polish`, which revises toward a target score (the default is 0.9).
  5. Fix and save. Edit the last few lines by hand, then call `save_edit`. It's free, and it feeds learning, so the next draft starts closer.

That's a full loop, and it never leaves the editor. You can also point `check_voice_match` at any file already in the repo, which is handy for auditing a README you wrote six months ago.

When a draft scores off voice

Don't panic over a low number. Read it.

A score between 0.5 and 0.8 is a partial match, which is normal for a first pass. The deltas tell you where it drifted. A clearly different voice lands under 0.45, and that usually means something upstream is wrong, not that the draft needs a nudge.

Start with the cheap fixes. Run `polish` and let it pull the draft toward your target. If the deltas keep pointing at the same two or three features, edit those by hand and save the edit, because that's the signal the app learns from.

Then check the profile itself. A profile needs at least one sample of 50+ words, but three or more pieces and about 3,000 words is the recommendation. A thin profile gives the scorer less to hold a draft against. And if you mixed in a piece written for a different audience, your profile may be averaging two voices into one that matches neither.

So, in order: polish, hand-edit the stubborn features, widen the samples. Most drafts recover at the first step. The ones that don't are usually telling you something about the profile, and that's worth knowing too.

Questions

Do I need a paid plan to connect ScriptGrain to Cursor?

No. The connector, the profile and voice-match scoring are on the Free plan. Paid plans add generation credits, polishing and the monthly voice monitor.

Does Cursor send my conversations to ScriptGrain?

No. Cursor calls ScriptGrain only when it uses a tool (score this text, generate this brief), and ScriptGrain receives only what that call contains. Your API key or sign-in token never appears in the conversation.

What is the voice-match score measuring?

Stylistic alignment: sentence rhythm, punctuation habits, pronoun mix, formality, argument structure and the rest of the measured attributes, compared feature by feature against your profile. It says whether the draft sounds like you, not whether it is any good.

Related