Community threads report the Janitor AI persona box cutting off at 2,000 characters, at 4,560 characters, and at figures in between. The number that decides whether a bot uses your persona is smaller than any of them, around 350 tokens, and the line doing the most work is the one telling the bot what it may not do with your character.
Copy this Janitor AI persona template
A Janitor AI persona describes you inside the roleplay: the person the bot is talking to, not the bot itself. The feature launched on February 28, 2024 as a set of customizable profiles with their own name and photo. Open My Personas from the site menu, paste one of the blocks below into the persona text field, save, then pick that persona when you start a chat.
The short template (start here)
Name: [fictional name]
Age: [clearly adult age]
Role: [job, archetype, or story function]
Relationship to {{char}}: [how the two of you already know each other]
Appearance cues: [2 details a bot can point at in a scene]
Speech: [sentence length, verbal habit, what you do when uncomfortable]
Stable traits: [2-3 things that hold between chats]
Boundaries: [what the bot must not do with your character]
Current goal: [one durable reason this conversation is happening]
Nine labelled fields, no nesting, no W++ brackets. Plain Field: value lines are the safest default because they stay readable across JLLM and proxy models without depending on W++ or JSON syntax.
The prose variant
Some bots respond better to persona text that reads like the rest of the chat rather than like a form. Same information, one paragraph:
I'm [name], [age], a [role] who [one habit that shows the role]. [{{char}} and I know each other because…]. People recognise me by [appearance cue 1] and [appearance cue 2]. I speak in [speech pattern] and I [what you do under pressure]. I will not [boundary], and right now I want [current goal].
The boundary block
Append these three lines to either version when a bot keeps taking over your character:
Boundaries: do not write {{user}}'s dialogue, thoughts, or actions.
End each reply at the point where {{user}} would respond.
If unsure what {{user}} does next, describe the scene and wait.
The third line matters more than it looks. A bare prohibition leaves the model with nothing to generate when it reaches the end of its own turn, so it fills the space with your character anyway. A fallback action, describe then stop, replaces the behaviour instead of banning it.
What to put in each field, and what to leave out
The filter for every line is whether it changes how the bot addresses or responds to you more than once. Anything that only matters in the current scene belongs in chat memory. Anything about the world belongs in a lorebook.
| Field | Put in | Keep out |
|---|---|---|
| Name / Age | Fictional name, clearly adult age | Your real name, city, employer, health details |
| Role | What you do that the bot can reference | Full career history |
| Relationship | The current dynamic in one clause | Every past event between you |
| Appearance cues | 2 details with sensory or narrative hooks | Height, weight, eye colour, hair colour lists |
| Speech | Observable patterns the bot can imitate | "Witty", "charming", "intelligent" |
| Stable traits | 2-3 traits that hold across chats | Today's mood, today's outfit |
| Boundaries | Specific behaviour, phrased as an action | "Respect my boundaries" |
| Current goal | One reason to keep talking | The ending you want the story to reach |
Filled in, the short template looks like this:
Name: Rhea Calloway
Age: 31
Role: Night-shift paramedic, works doubles she does not need
Relationship to {{char}}: Former colleague, now an uneasy friend
Appearance cues: burn scar on left forearm, same grey field jacket in every season
Speech: short sentences, deflects with dry jokes, goes silent when something is serious
Stable traits: keeps promises, refuses to be managed, reads injuries before faces
Boundaries: do not write {{user}}'s dialogue, thoughts, or actions
Current goal: find out what happened on the call {{char}} walked away from
That is 84 words, and each line gives the model something to do: a scar to notice, a jacket to recognise, a joke reflex to push against, a silence to read, a question to dodge. The default the community falls back on, described by one X user as "baseline descriptions like personality traits and hair color", produces no behaviour at all.
How long a persona can run before it costs you
Reported field limits do not agree, and none come from official documentation. One r/JanitorAI_Official thread reports the My Personas appearance field accepting 4,560 characters / 1,246 tokens. Another thread has multiple users working to a 2,000-character ceiling, templates in circulation are commonly built to stay under 1,984 characters, and users comparing notes on how much they write for personas report tighter behaviour on mobile than on desktop.
The useful number is not the field cap. A persona ships with the prompt on each reply rather than once per chat, which is why users in that 2,000-character thread describe long personas as eating permanent context. The community rule of thumb from a widely linked guide to functional personas is roughly 350 tokens, preferably under 500, well below every reported field limit.
Using the common rough estimate of 1.35 tokens per English word, a 600-word persona costs about seven times the 84-word one on every message of the chat, and those extra 500 words are usually backstory the bot cannot act on.
When you do need to cut, cut in this order:
- Backstory with no present consequence
- Appearance details beyond two
- Preferences the bot has no way to observe
- Anything already stated in the character's own card
- Traits that contradict each other without being interesting
Copy a long persona somewhere else before editing it. At least one user reports losing a long persona to a single click and asking Janitor AI for a confirmation prompt: "DO YOU KNOW HOW PAINFUL IT IS TO REWRITE THE ENTIRE SHIT AGAIN".
Persona, character card, chat memory, lorebook: where each fact goes
Four fields hold four kinds of information, and the persona is the only one describing you. Duplicating a fact across them is the most common way to waste context.
| Layer | Holds | Update frequency | Symptom when misused |
|---|---|---|---|
| Persona | Who you are, how you speak, what the bot may not do | Rarely | Bot copies your traits onto itself |
| Character card / personality | Who the bot is | Rarely | Your persona gets overwritten by the card's voice |
| Chat memory | What has happened so far | After real plot changes | Persona bloats with events |
| Lorebook | Keyed world facts, triggered by terms | When worldbuilding changes | Persona carries setting exposition |
| First message | One opening scene | Per chat | Scene facts treated as permanent identity |
Creators and chatters use "persona", "personality", and "character card" interchangeably in the same threads, which is why many results for this keyword are bot-side templates built around W++ and JSON. If the block you are copying has fields like Scenario and Initial Message, it belongs to the bot, not to you.
The same persona behaves differently on JLLM, a proxy, and JanitorRouter
Janitor AI runs your persona through whichever model you route to, and the routing choice changes how much persona you should write. Chats reach a model by one of three routes today, and a persona sized for one is usually wrong for the others.
| Route | What it is | Persona adjustment |
|---|---|---|
| JLLM (built-in) | Janitor AI's own model, no setup | Keep to the 350-token guidance and add the boundary block, since turn-taking is what default-setup users report breaking |
| Custom proxy | Your own API key against an OpenAI-compatible endpoint | More context available, but you pay per token per reply, so trim before scaling up |
| JanitorRouter | Third-party models inside the site for Janitor+ subscribers, announced July 30, 2026 | Persona travels unchanged; behaviour shifts with the model you pick |
On the proxy route, your persona is only one of four values that have to line up:
- The persona text itself
- The provider's exact model ID
- The full endpoint, typically ending in
/chat/completions - A key issued by that same endpoint's provider
Get one wrong and the request returns 400 invalid model or 401 before the persona is ever read, so check the route before rewriting your persona. The Janitor AI proxy setup guide covers those fields plus the character-level permission that lets a creator block outside proxies, and running DeepSeek on Janitor AI is the cheapest working version.
If adherence is still poor once the persona is trimmed and clean, the next variable to change is the model rather than the persona text, which is what best AI model for roleplay is for. There is also a bill attached on paid routes: at 84 words the persona adds roughly 113 tokens per request, so a 500-message chat carries about 57,000 tokens of persona alone before a single word of story.
Fixing a persona the bot ignores or talks over
Two failures dominate the complaints, and both have field-level fixes rather than "write more detail" fixes. Neither has an official troubleshooting answer. In the thread where a user asked how to stop being spoken for, the replies came from other users.
"Am I the only one who keeps getting spoken for in all janitor ai chatbots? Even in old ones that never spoke for my character before? It just gives
<|Im_end|>then starts speaking for me each time, how do I fix this?" — @Bruh2067350 on X, with replies from other users reporting the same
A raw <|Im_end|> appearing in a reply points at stop-token handling on the model side rather than at your persona text, so rewriting the persona is unlikely to clear it. What persona edits do fix is the turn-taking habit around it. The other frequent complaint is blunter: @swanwswag listed "Bots literally IGNORE ur personas???" alongside short responses and slow loads.
| Symptom | Likely cause | Fix in the persona |
|---|---|---|
| Bot writes your dialogue or actions | No explicit turn boundary | Add the three-line boundary block, including the "describe and wait" fallback |
| Bot ignores your traits entirely | Persona buried under backstory, or duplicated in chat memory | Cut to 9 lines; delete anything repeated elsewhere |
| Bot adopts your personality | Bot-side traits written into the user persona | Move personality lines to the character card |
| Bot quotes your persona verbatim | Persona written as instructions to recite | Rewrite traits as behaviour, not as adjectives |
| Bot forgets you after ~10 messages | Persona competing with a long card and full history | Shorten the persona; move events to chat memory |
| Persona details contradict the scene | Scene-specific facts stored as permanent identity | Move outfit, location, mood to chat memory |
To check whether the persona is being read at all, run three messages in a fresh chat rather than judging by feel:
- Ask the character to describe you. Appearance cues should come back; invented details mean the persona is not reaching the model.
- Put your character in a position that requires a decision. The bot should stop and hand the turn over instead of deciding for you.
- Contradict one of your stable traits in-chat. A persona with weight produces pushback; silence means the character card is outweighing it.
Janitor AI persona template FAQ
What is the difference between a persona and a character card?
A persona describes the user; a character card describes the bot. Janitor AI feeds both into the same prompt, which is why traits written into the wrong one get mirrored back by the wrong speaker.
Can I switch personas in the middle of a chat?
No. Janitor AI's launch thread states that once a chat starts with a chosen persona, you cannot change it during that chat.
What is the actual persona character limit?
Treat 2,000 characters as the safe cap and about 350 tokens as the real target; no official figure is published, and the repeated context cost matters more than the field limit.
How many personas can I save?
Multiple personas are supported. Separate profiles for different roles work better than one blended identity, and reports about numeric caps contradict each other, so check your own account rather than a guide.
Should appearance go in the persona?
Only details the bot can use: something visible in a scene, something it would react to, something that changes how it addresses you.
Why does the bot repeat my persona word for word?
Because the text reads like a list to be recited. Converting adjectives into observable behaviour, "goes silent when something is serious" instead of "serious, reserved", gives the model something to perform rather than something to quote.
Which template to start from
| Your setup | Start with | Why |
|---|---|---|
| JLLM, default settings | Short template + boundary block | Turn-taking is the common failure and boundaries cost about 30 tokens |
| Multiple OCs across many bots | Short template, one per OC | Field labels make swapping and editing fast between chats |
| Long-running plot with one bot | Prose variant, events in chat memory | Persona stays identity-only while the story lives elsewhere |
| Paid proxy or API route | Short template, trimmed to 7 lines | Every line is re-billed on every reply |
| Bot keeps hijacking your character | Boundary block first, rest after | Isolates the fix so you can tell whether it worked |
Related reading: Janitor AI proxy setup guide for the API configuration itself, and the best OpenRouter roleplay models if adherence is still poor once the template is clean.