Labs · Impersonation checker

The bot keeps speaking for you?
The card taught it to.

Impersonation — the bot writing your words, your choices, your feelings — is the most complained-about failure in AI roleplay, and the root cause is usually static: bad examples baked into the card’s greeting, example dialogue and description. Drop a .png / .json / .charx here and get every speaking-for-you pattern flagged in place, with why it teaches the model to puppet you and the rewrite that fixes it. Your card never leaves your browser.

Drop a character card here, or click to choose

.png · .json · .charx — or paste a greeting below

Or paste a greeting / any card text

Everything runs in your browser — the card is never uploaded, and the page works offline once loaded. Cards are private things; they stay on your machine.

The diagnosis will appear here.

Where the rules come from

The root cause is documented, not guessed: JanitorAI's help center calls impersonation “one of the most common and frustrating issues”, and the independent guides that actually work (rpwithai, roborhythms) converge on the same diagnosis — the bad examples are usually baked into the card itself: a greeting that narrates you, example dialogue that voices your side, a description that casts you. This checker turns that diagnosis into a static scan. The detection grammar — subject-position “you/{{user}}” plus an act/speak/feel verb, quote attribution, forced reactions — was calibrated against 30 top Chub cards (where “don't write for the user” is the community's first commandment, kept by 25 of 30) and against the impersonation-cutting engine we ship in the Foreverse app's group chats, plus a 97-case golden test set.

What it can't catch (the honest part)

Three limits, stated plainly. One: this reads the card, not the model — some models impersonate on a clean card because of sampling settings, short replies that leave a vacuum, or plain model habit; if a clean card still puppets you, look there next. Two: the scan is deliberately conservative — quoted dialogue, “you” as an object (“she watches you”), conditionals (“if you want”) and code-fenced status bars are all exempt, so some sins of ambiguity walk free; we'd rather miss one than cry wolf. Three: second-person narration itself is not the disease — a card can say “you” all day as long as it describes what the character observes and never decides, speaks or feels for you. The rewrite examples keep that distinction.

Why “don’t speak for me” doesn’t work — and what does

Models are pattern engines, not rule followers. A mid-chat instruction competes with every example the model has already seen — and if the card’s own greeting narrates your actions, the examples win. Worse, negative phrasing (“never speak for {{user}}”) hands the model the very concept you’re banning; community testing keeps finding it backfires about as often as it helps. The fix that holds is upstream: rewrite the card so the model never sees a speaking-for-you example in the first place. The checker above finds each one; the fix playbook shows the subject-swap that removes it without losing the scene.

The two kinds of impersonation — and which one your card invites

Narrative impersonation moves your body (“as you step into the corridor…”); user impersonation writes your dialogue and your mind. Some players tolerate the first as story-steering — almost nobody forgives the second. The trouble is that cards rarely stop at one: a greeting that transports you tends to slide into deciding for you within a paragraph, because each narrated action licenses the next. That’s why the checker separates scene transport (a warning, legal once in an RPG opening) from decisions, dialogue and feelings (flagged every time) — the same line the best community guides draw.

FAQ

Why does my bot keep speaking and acting as my character?

Because language models continue patterns, and the pattern is usually planted in the card itself. If the greeting narrates what “you” do, if the example dialogue writes your side of the conversation, or if the description says who {{user}} is and what they secretly feel — the model reads all of that as a demonstration that this is a both-sides story. JanitorAI's own help center calls impersonation one of the most common and frustrating issues, and the guides that actually fix it all start in the same place: audit the card. That's what this page automates.

Is my card uploaded when I check it?

No. The parser and the detection engine both run in your browser — PNG chunks, JSON and charx zips are decoded locally, and the scan is a set of regular-expression passes over the text. Nothing is sent to any server, and the page keeps working offline once loaded. Cards are private things; that's the point.

Is second-person narration (“you”) always bad?

No — and the checker is built around that distinction. “She watches you from across the room” is fine: you are the object, the character is doing the observing. “You wake up in a cell” is a legitimate RPG opening — it transports your senses, once. What breaks roleplay is “you” in the subject seat with an act/speak/feel verb: “you decide”, “you stammer”, “you feel drawn to him”. The engine checks the grammar seat, not the word.

The card is clean but the bot still impersonates me. What now?

Then the card isn't the culprit, and this tool honestly can't see the rest. Three places to look next: your persona field (trait-stuffed personas force the model to perform you — keep it to physical facts), your reply length (one-line replies after long bot messages leave a vacuum the model fills by writing you), and the model itself (some models impersonate more; neutralizing samplers or switching models fixes stubborn cases). Also check any “never speak for {{user}}” instruction — negative phrasing is a coin flip and can make it worse.

Related tools

← All free tools

Impersonation Checker — Find Out Why Your Bot Speaks and Acts for You · Foreverse · Xinmeng