Writing voice.
Build a reusable writing voice for your AI assistants from a guided interview and, if you like, samples of your own writing. It is for people who want drafts that sound like them in any assistant connected to Empirical, instead of the same generic tone every time.
What it does and who it is for
Writing Voice interviews you, turns your answers into a short set of plain rules about how you write, shows you every rule, and saves them as ordinary memories in a workspace you choose. Any assistant connected to Empirical can then look the rules up and draft in your voice. It is for people who write emails, posts, docs, or messages with an AI assistant and keep editing out the same stock phrases, and for teams where one person's voice should live in one workspace.
- You paste two or three things you wrote, or describe your style instead
- You compare short versions of the same message and pick the one that sounds like you, then answer questions until the main parts of your voice are covered or the question limit is reached
- Before anything is saved you read a short sample written in the voice, then every rule it will save
- The result is memories you can read, edit, or delete like any others
Before you start
Three things need to be true before the interview starts.
- A paid plan. Guided setups, including this one, are not available on the free plan.
- Memory room. Before the first question the interview checks that you have room for a typical voice: the optional 49 AI-writing rules plus 21 memories of your own (one hub and about 20 rules), so 70 free memories, even if you later decline the optional rules. If you do not have that room, it stops before asking anything and tells you how much room you have.
- What an install costs: one hub memory, one memory per rule (usually about 20, including the two rules every voice gets), and, only if you say yes, 49 optional AI-writing rules. All of them count toward your plan limit, and the review step shows the exact number before you confirm, and a larger voice that does not fit is refused there.
Pick the workspace on purpose: The voice is saved in one workspace and is visible to everyone in it. Choose a personal workspace if the voice is only yours.
Run it
All three paths run the same interview in the same order and need the same confirmation at the end. Nothing is saved until you say yes to the final draft. The steps: pick the workspace (skipped when you can write to only one), paste writing samples or describe how you want to sound, pick the style options that sound like you, compare versions of a short message, answer questions until the main parts of your voice are covered (or the question limit is reached), say what you never want to sound like, choose whether to add the AI-writing rules, read a short sample in your voice, then review the draft and install it. If the workspace already has your voice, you are asked what to keep, change, or drop before the samples step.
- Portal: open the Writing voice blueprint in the blueprint store, choose Start guided setup, answer each step, review the draft, then choose Install my voice. Only the portal lets you jump between parts of your voice and change earlier answers while the interview runs.
- Chat assistant connected to Empirical (ChatGPT, Claude, or another MCP client): say "Start the writing voice setup in Empirical." The assistant asks you each question in order, shows each comparison as a lettered list and your progress as one line, and shows the full draft. Reply yes only after you have read it; confirming is a separate step from answering.
- CLI: run the command below and answer at the prompts (see From the CLI below). Type yes at "Install this?" to install.
empirical setup run setup_writing_voice
Comparing versions
After you pick the style options, the interview runs a series of comparisons. Each round shows the same short message (an email, a short post, or a reply to a message) written four ways, and you pick the one that sounds most like you. The versions are written for you from your own style: the writing you pasted or your description, and the options you picked. They differ in two ways at once, such as how formal, how long, how warm, or how direct, so each pick tells the interview something specific. The page never tells you which style a version is, and the order of the four is shuffled every round. That is on purpose: you pick by ear, not by a label you think should fit.
- Pick one, and add a one-line reason if you like, such as b | shorter is me
- None of these: no version fits (a reason can go with it too)
- Show different ones (skip in a chat assistant or the CLI): a different set for this round
- Enough comparisons (enough in a chat assistant or the CLI): stop comparing and go on to the questions
- There are up to 8 rounds. They stop sooner once every main part of your voice has some evidence from your picks or answers.
Which of these four versions sounds most like you? They say the same thing in different ways.
Situation: asking a neighbour to move their car on [day]
a)
Quick one: could you move your car on [day]? The bins go out.
b)
Hi! Could you move your car on [day]? The bins go out that morning. Thanks so much!
c)
Could you move your car on [day]? Bin day.
d)
Hello, would you mind moving your car on [day]? The bins go out that morning. Many thanks.
Voice profile: 1 of 9 areas. Still missing: sentence length, words you use or avoid, how you start and end, what you never want to sound like.
Reply with one letter, like b, and optionally a | and why, like b | shorter is me. Type none if no version fits, skip for a different set, or enough to stop comparing.
> c | short, but I always say why
How your picks count: A pick counts only for the two ways its versions differed. One pick partly covers that part of your voice; two picks that agree cover it. A style you pass over in several rounds can become something to avoid. A reason you type counts like any other answer.
How it knows it has enough
The interview tracks nine parts of a voice: how formal, sentence length, words you use or avoid, humor, punctuation, how you start and end, who you write for, what you never want to sound like, and posts versus email versus docs. Five of them must be covered before the voice is ready: how formal, sentence length, words you use or avoid, how you start and end, and what you never want to sound like. A part counts as covered only from your own words or your picks. When the interview reads something into an answer, Empirical checks that the quoted words really appear in what you typed or pasted, and drops the reading if they do not. Text the model wrote, such as the questions or the style options, never counts, except a version you picked in a comparison.
- Portal: each part is a chip. A tick means covered, a half circle partly covered, and a ring marks the part your current question is about. Pick a chip with something on it to see what counts so far and where it came from: what you said, the writing you pasted, your own edit, or a version you picked. Pick an empty chip to answer a question about that part now, then go back to where you were.
- Chat assistant and CLI: the questions come in order and the progress is one line, such as Voice profile: 4 of 9 areas. Still missing: how you start and end.
- When the five main parts are covered, the interview says it can write your voice consistently. Go on (Check the voice in the portal, check in text) or keep answering.
- You can stop before that. In the portal choose That's enough, draft it, then Draft it anyway (Continue anyway when the last two steps are still ahead); in text reply enough. The voice may come out inconsistent, and the review says which parts are missing.
- There are at most 20 questions, so the interview always ends. A voice check that says not quite can add a question about what was off.
Change an earlier answer (portal)
In the portal you can go back to what you said, from the chips, while the interview runs. In a chat assistant or the CLI the questions go in order; to change something there, ask for the change in your own words at the review step and the draft is written again.
- Change an answer: open a chip, edit your full answer, and choose Save change. Everything on the chips is checked again against your new words, and anything you no longer said stops counting.
- This is wrong: on any chip that reads you wrongly, choose This is wrong. That part goes back to empty and the same reading, including one from a comparison pick, does not come back.
- Remove my pasted samples: shown on a chip whose evidence came from the writing you pasted. It deletes that writing; quotes from it stop counting, and the style options you picked from it are cleared so you can pick again.
- Draft out of date: if you change anything after the draft is written, the draft is marked out of date and Install my voice is greyed out. Choose Rebuild the draft, read the new draft, then install. In a chat assistant or the CLI, reply rebuild.
- Each new area question and each change counts toward a limit of 40 per setup. Past it you can still answer the current question.
- If the setup changed in another window, the page asks you to reload instead of overwriting the newer answers.
The voice check
After the draft is written, the interview offers a short sample in your drafted voice. Pick one of three topics or write your own, and it writes a passage of 60 to 150 words on that topic, following your rules and the versions you picked.
- Sounds like me: go on to the review.
- Not quite: say what is off (too formal, too long, wrong words, or other) and add your own words if you like. The parts it points at are reopened, the interview asks about them, then writes a new draft and offers another check.
- Skip the check: go straight to the review.
- Up to three checks per setup. In a chat assistant or the CLI reply yes, no with the numbers of what is off and your own words after a |, like no 1,3 | too stiff, or skip.
Verify: The sample uses placeholders such as [date] instead of inventing facts. If it states a number or a name you never gave, say not quite and tell it.
A sample run
Sam, an invented author, runs the interview from the CLI. The options, versions, questions, and sample are written for each person, so yours will differ; the versions and the sample are shortened here, and the run is cut where it says so. The questions and instructions are the real text. Anything after the > is what Sam typed.
Paste two or three things you wrote and like: a post, an email, a message. The text is sent to the model provider and kept for this setup only, so later questions can quote it back to you. It is deleted when your voice is saved, or with the setup if you leave it unfinished for two weeks. Type skip if you would rather describe how you want to sound.
> [Sam pastes a note to a landlord and a short post]
Which of these sound like you? Pick any and add changes in your own words.
1. Plain and direct: short sentences, no preamble
2. Dry, understated humor
3. Formal and polished
4. Warm and chatty
5. Gets to the ask in the first line
Reply with the numbers that fit, like 2,5, and optionally a | and your own changes.
> 1,2,5 | a little warmer with people I know
[comparison rounds, as in Comparing versions above]
How do you usually close an email to someone you have not met?
Voice profile: 4 of 9 areas. Still missing: how you start and end.
Type enough to stop here and go on to two last steps (habits to rule out, and the common AI-writing tells), then a short sample in your voice; with areas still missing the voice may come out inconsistent.
> Just "Thanks," and my first name. Never "Best regards".
Anything you never want to sound like? Pick any, add your own, or type none.
1. Corporate filler: synergy, circle back, touch base
2. Over-apologetic openings
Reply with the numbers that fit, like 2,5, and optionally a | and your own changes.
> 1
Add the common AI-writing tells as 49 rules you avoid? Paraphrased from tropes.fyi. They count toward your memory limit.
Reply yes or no.
> no
Before you review the draft, I can write a short sample in this voice. Pick a topic, or write your own.
1. An email to a coworker moving a meeting to next week
2. A short post about something you learned this week
3. A quick reply to a friend who asked for a recommendation
Reply with one number, or a | and your own topic. Type skip to go straight to the review.
> 1
Does this sound like you?
Sample on "An email to a coworker moving a meeting to next week":
Hi Dana, can we move Thursday's meeting to Monday next week? I am out that afternoon. Thanks, Sam
1. Too formal
2. Too long
3. Wrong words
4. Other
Reply yes if it sounds like you, or no with the numbers of what is off and your own words after a |, like no 1,3 | too stiff.
> yes
Hub: How this person writes: plain, direct, dry humor, asks first, warmer with people they know.
- (avoid) Do not sign off with "Best regards".
- (context, email) Put the ask in the first line.
[10 more rules]
Rules every voice keeps (you did not write these):
- Never invent numbers, dates, names, or facts, and write a bracketed placeholder such as [date] or [name] instead.
Safety rule. It stops an assistant from making up numbers, dates, names, or facts in your name. It stays in every voice. You can change what it writes when a fact is missing, such as leaving the sentence out; ask in a change.
- Use at most one signature phrase per message.
Added to every voice so one favorite phrase does not repeat in a message. Ask for a change to remove it.
To remove one that can be removed, type the change in your own words.
15 memories in your Personal workspace.
Install this? (type yes to install, or type a change you want)
> yes
Check the result: The review shows the memory count and which workspace they land in. The install then runs in the background. When it finishes you get ready-to-paste prompts.
From the CLI
empirical setup run asks each question at the terminal: comparison rounds print as a lettered list, progress prints as one line, and the voice check prints the sample. If you stop partway, the setup waits for you. resume shows the current question with its key, answer sends one answer, and confirm installs a draft you have read. The commands are at the end of this section.
- resume and answer print the setup as JSON on standard output and the question as text on standard error, followed by the exact command to answer it. Every answer carries its question key, so an answer meant for a question that has already moved on is refused ("That question has moved on, so this answer was not saved.") instead of being saved on the wrong question.
- --answers takes a JSON map from question key to answer: q0_workspace, q1_existing, q2_samples (or q2b_describe after skip), q3_generate_voice, p1, p2 and so on for the comparisons, g1, g2 and so on for the questions, q3_avoid, q4_tropes_optin, then vc1_topic and vc1 for the voice check. A missing comparison key sends enough, a missing voice-check key sends skip, and a step left waiting by a failed model call (key retry) is sent retry. Any other missing key stops the run with an error naming it. The questions are written as the interview goes, so you cannot know in advance how many g keys you need; run it interactively first.
- With --answers the run stops at the review and prints the setup as JSON, including the draft and its draftHash. Put "q5_confirm": "confirm" in the file to install in the same run; an out-of-date draft is never confirmed, and the CLI prints the rebuild command instead.
- Exit codes: 0 when the run stops at the review, and after confirm once it has printed the result (installed, still being written, or did not finish). 1 for a usage error, a missing answer key, a refused request (printed as JSON with a code and a message, then the command to run next), three empty answers in a row or the end of input, an empty reply at "Install this?", and a setup that is still busy with its last step. In the interactive run an answer the server refuses as invalid or out of date is explained and the question is asked again instead.
empirical setup run setup_writing_voice
empirical setup resume <sessionId>
empirical setup answer <sessionId> <questionKey> <your answer>
empirical setup confirm <sessionId> <draftHash>
empirical setup run setup_writing_voice --answers answers.json
What gets saved
Everything lands in the workspace you pick, as ordinary memories you can read, edit, or delete. Every voice memory carries the tag writing-voice so assistants can find the whole set.
- One hub memory that describes your voice overall. Its summary starts with "How this person writes:" and it is tagged writing-voice and voice.
- One memory per rule, tagged writing-voice and writing-rule, at most 20 in all.
- Two rules every voice starts with: never invent numbers, dates, names, or facts (write a bracketed placeholder such as [date] instead), and use at most one signature phrase per message. The review lists them under Rules every voice keeps, each with its reason. Ask for a change in your own words to remove the signature-phrase rule or the placeholder habit. The rule against inventing numbers, dates, names, or facts stays in every voice.
- Things to never do, as rules tagged writing-voice, writing-rule, and avoid.
- Per-medium rules for posts, email, docs, code comments, or chat, tagged writing-voice plus the medium, for the media you talked about.
- Optional: 49 rules for avoiding common AI-writing patterns, tagged ai-tropes, paraphrased from the list at tropes.fyi by ossama.is. Only saved if you answer yes.
Use it
When the install finishes, the portal, the CLI, and get_blueprint_install_status show prompts you can paste into any assistant, with your workspace name filled in. Replace the bracketed parts. These three work in ChatGPT, Claude, or any assistant connected to Empirical.
- Marked as a style preference: when an assistant looks your voice up through the query_memories, list_memories, get_memory, or get_memory_neighbors tools, the /recall API, or the CLI, each voice memory comes back with usage: style_preference_only (the CLI's table adds [style]). It tells the assistant the memory is a preference about how you write, not an instruction about tools, data, links, or recipients. The Discord bot does not add this mark.
here's a draft: [paste it]. rewrite it the way i'd write it. my writing rules are in my "Personal" workspace in Empirical: search "how this person writes" and use everything tagged writing-voice. list the rules you used at the end.
what do you know about how i write? search my "Personal" workspace in Empirical for "how this person writes" (tag writing-voice) and read my rules back to me.
write my manager an email about [what happened]. use my voice from my "Personal" workspace in Empirical (search "how this person writes" and use everything tagged writing-voice) and list the rules you used at the end.
In a coding agent: The optional empirical-voice plugin for Claude Code and Codex looks the voice up automatically whenever the agent writes as you, so you do not paste a prompt each time. Install it with empirical plugin install claude --voice, or see the Voice plugin page in the Plugins section of these docs.
Change or replace it
Because the rules are ordinary memories, you can edit or delete any of them from the portal under Manage memories. To rebuild the whole voice, run the interview again in the same workspace. When Empirical Tokens apply to your account, a new run shows its cost before you start (for example, building a writing voice is currently 200). The interview offers to start from what you have (type keep all to begin from it as it is), shows how many existing memories will be replaced, and removes the old voice only after the new one has been saved. If the new install fails, the old voice is left alone.
- One voice per workspace. If another member of a team workspace already has a voice, the interview stops with "This workspace already has a writing voice set up by another member." Pick a different workspace, or ask that person to replace theirs.
- Your own re-run replaces your own voice; it does not touch anyone else's.
Privacy and what is kept
The interview keeps your writing only as long as the setup needs it, and you read every memory before anything is saved.
- Writing you paste is sent to the model provider. Empirical holds it in a separate private store, apart from the interview itself, so later questions can quote it back to you and so a quote can be checked against what you really wrote. It is deleted when your voice is saved, or when you remove it with Remove my pasted samples in the portal.
- If you leave a setup unfinished, you get an email after a week without an answer. If you still do not come back, the setup and the writing you pasted are deleted a week after that email, about two weeks after your last answer. The Empirical Tokens used at the start are not returned when an unfinished setup is deleted. As a backstop, pasted writing that has not been touched for three weeks is deleted automatically.
- While the setup runs it also holds your typed answers, short quotes of your words (the evidence on each chip), the comparison versions, and the voice-check sample. All of that is cleared when your voice is saved. The draft you confirmed is kept with the setup.
- Never kept elsewhere: your pasted writing is not written to Empirical's logs, analytics, or emails, and the portal stores nothing from the interview in your browser. An answer you typed but did not send is gone if you reload the page. Usage analytics record that a step happened, never what you wrote or which parts of your voice it covered.
- You read every memory before it is saved. Nothing is saved without a yes, and a draft that changes after you saw it must be confirmed again.
- Rules are checked so that they only describe writing style. Rules containing links or instruction-like text are rejected, and a rule may not copy a long run of words from your pasted writing.
- Voice memories are visible to everyone in the workspace you chose.
Troubleshooting
The errors you are most likely to see, and what to do.
- Not enough memory room (PLAN_LIMIT_MEMORY_REACHED): the message says how many memories you have room for and how many the voice needs. Upgrade, or delete memories under Manage memories, then start or confirm again. Nothing is lost; the setup stays where it was.
- Guided setups are a paid feature (GUIDED_SETUP_ENTITLEMENT_REQUIRED): your plan is on the free tier. Upgrade, then start again.
- This workspace already has a writing voice set up by another member: pick a different workspace or ask that member to replace the voice.
- That question has moved on, so this answer was not saved (GUIDED_SETUP_VOICE_NOT_WAITING): the setup moved on, for example in another window. In the CLI run empirical setup resume <sessionId> to see the current question and its key; the portal reloads it for you.
- This setup changed in another window (GUIDED_SETUP_VOICE_STALE): reload the page and try again.
- Your answers changed after this draft was written (GUIDED_SETUP_DRAFT_STALE): rebuild the draft (Rebuild the draft in the portal, rebuild in text), read it, then confirm.
- Your answers are saved, but the next step did not finish: a model call failed after your answer was saved. Reply retry, or anything, to continue; nothing is saved twice.
- This setup has reached its limit for new area questions and changes (GUIDED_SETUP_VOICE_NAV_LIMIT): you can still answer the current question and finish.
- Install still running: the install is written by a background job. The CLI checks for about 30 seconds, then prints a command like empirical blueprint status <installId> to check later. The portal shows an installing page.
- Install failed: your existing voice, if any, is untouched, and the setup returns to the review step so you can confirm again. In the portal choose Install my voice again; in the CLI run empirical setup resume <sessionId> to see the draft and its hash, then empirical setup confirm <sessionId> <draftHash>.
- The draft changed after it was shown (GUIDED_SETUP_DRAFT_CHANGED): read the latest draft and confirm that one.
- Confirming is its own step (GUIDED_SETUP_CONFIRM_REQUIRED): an assistant tried to confirm by answering a question. Read the draft, then tell it to confirm; the portal uses the Install button.
- This setup is already processing an answer (GUIDED_SETUP_VOICE_BUSY): another answer is still being handled. Wait a moment and try again; it clears on its own within a few minutes.
- The assistant cannot find your voice: name the workspace the voice was saved in and ask it to search how this person writes with the tag writing-voice, as in the prompts above. If it still finds nothing, open Manage memories in that workspace and check that the memories tagged writing-voice are there.
- Not enough Empirical Tokens (PLAN_LIMIT_EMPIRICAL_TOKENS_REACHED): the interview did not start and nothing was charged. Empirical Tokens reset at the start of the month, shown in your own time zone; see the Empirical Tokens page.
- This interview has used all the AI work one interview includes (GUIDED_SETUP_VOICE_SESSION_LIMIT): install the current draft if it is up to date, or start a new interview.
- This attempt cannot be charged (EMPIRICAL_TOKENS_ATTEMPT_CLOSED): nothing was taken. Start a new interview rather than retrying this one.
- Daily allowance used (GUIDED_SETUP_VOICE_BUDGET_REACHED): there is a daily cap on model use per person, set well above what a real interview needs, so it only stops runaway use. Your answers so far are saved; continue the same setup the next day (UTC).
Limits
Writing Voice has fixed limits so the result stays usable as a set of standing instructions.
- Paid plans only, and one voice per workspace.
- Pasted samples are limited to 6,000 characters in total, each answer to 1,000 characters, a reason in a comparison to 300, and a voice-check topic of your own to 200.
- Each rule is at most 280 characters, the hub at most 600, and a voice has no fixed rule limit, only a high safety ceiling of 60 rules, including the two every voice gets.
- Up to 8 comparison rounds, 20 questions, and 3 voice checks per setup. You can end the comparisons and the questions early.
- When Empirical Tokens apply to your account, each interview includes a limited amount of AI work, and changes asked for at the review (including rebuilds) are capped at 5. Past either, you can install the current draft if it is up to date, or start a new interview (GUIDED_SETUP_VOICE_SESSION_LIMIT).
- It captures how you write, not facts about you, and never writes in your name without you asking an assistant to.
Check the result: After the install finishes, ask your assistant how you like to write. It should answer from the hub and rules in the workspace you chose.
Last updated: October 7, 2026