write.work — Tone

How it works.

Tone reads a draft the way an editor does — not for errors, but for the moves you made. You decide every change. Nothing is sent anywhere.

the writing
Where does my draft go?

Nowhere. It is read in this browser and never leaves it.

Does it know if a machine wrote it?

No, and it will not guess. Good writers trip every one of these flags, because they are habits, and habits belong to whoever has them.

What is it looking for?

Worn words. Worn constructions. Rhythm too regular to be a person thinking.

And over-correction — prose filed down until it has a uniformity of its own. Nobody else will tell you that.

Why does it group them?

A hundred findings is not a hundred problems. It is four or five habits, each caught several times. Tap one and it says what it knows.

the figures
What are the figures?

The names for things writers do on purpose. 203 ship with Tone, with what each is and where it came from. The reference is here.

How many can it find?

Seven. Anaphora, epistrophe, anadiplosis, tricolon, asyndeton, polysyndeton — each a count of something mechanically there.

Why not metaphor?

Catching it means guessing at meaning, and a tool that guesses will eventually call a plain sentence a metaphor.

A short list that is true beats a long one that flatters.

how it reads
What is a voice?

A register, the words a writer would never use, and — once calibrated on their published work — their cadence. Stored in this browser only.

One writer usually needs several. An email voice, an essay voice, a voice for a toast.

What is the register dial?

How fast the thing was written. A note between meetings and a filed report are not the same document and should not be read the same way.

Can it read my own pages?

Paste URLs under Your pages. Each is fetched, stripped to prose, measured, and dropped. Meant for your sites, not somebody else's.

elsewhere
On my own site

One tag. It runs in your visitors' browsers, so it costs you nothing.

<script src="https://write.work/js/tone-embed.js"
        data-target="#editor"></script>

More options

For an agent

Over MCP, locally, with no network call.

"tone": { "command": "node",
          "args": ["/path/to/mcp/tone-mcp.js"] }

Tools: lint_prose, list_voices, explain_rule. Summary at /llms.txt.

In my own code
curl -O https://write.work/js/tone-lint.js

const Tone = require('./tone-lint.js');
Tone.analyze(text, { form, level, voice });

Returns findings with offsets, habits, rhythm and stats. It does not touch your text and makes no network call.

What does it cost?

Nothing. It runs on your machine rather than ours, which is why it can stay that way.