Updated November 8, 2026. Field names and limits for other apps come from their official docs and the Character Card spec, checked that day.
Most AI characters that feel flat fail for the same reason: the creator described a type of person instead of a person. "Kind, funny, mysterious, loyal" could be anyone, so the model fills the gaps with the most average version of that anyone. The characters people keep coming back to have a specific voice, something they want, a flaw that gets in the way, a situation with some pressure in it, and a first message that hands you something to react to.
Below: each of those pieces, the mistakes that ruin a card, how the fields are named on Character.AI, Janitor AI, Tavern cards and Cleus, and a full before-and-after rebuild of one original character.
A disclosure: Cleus is our product, so weigh that. The writing advice works on any platform.
What makes an AI character feel real
A voice you could pick out of a crowd
Personality labels tell the model what someone is. Voice tells it how they sound, and in a chat every reply is made of words. Give the character speech habits you can hear: short dry sentences, song trivia when they're nervous, lowercase texts when tired, a phrase they overuse. SillyTavern's docs make a related point about the first message: the model "is more likely to pick up the style and length constraints from the first message than anything else."
Wants and flaws
A character who wants nothing just reacts. A character who wants something (to save the business, to be taken seriously, to get you to admit you miss them) brings things up on their own. Pair the want with a flaw that blocks it: they promise too much, they deflect with jokes, they can't ask for help. That friction is where interesting replies come from.
A scenario with tension
The scenario is "where things stand right now." The weak version is a location ("a coffee shop"). The strong version has a clock or a secret in it: the shop closes for good on Friday, and only one of you knows. Add how the two of you know each other, and the chat starts moving on its own.
A first message that ends on a hook
The greeting does more work than any other field. It sets length, tone, point of view and format, and it's the only thing the user has to answer. End it on something the user can grab: a question, a request, a choice. And never write the user's actions or feelings for them.
Example dialogue that shows range
Two or three short exchanges teach voice better than a paragraph of adjectives. Show different moods: deflecting, then softening. If every example is a flirty one-liner, every reply will be too.
Rules that don't fight each other
If the description says "shy" and the examples flirt with strangers, the model will swing between the two. Read the card once, start to finish, before you save.
Build the card, step by step
Build a character card in eight steps
Works on any platform. Field names differ; the order doesn't.
Who they are plus what's wrong right now. "A night-shift radio host whose show is about to be cancelled" beats "a nice radio host."
Common mistakes that make characters feel fake
The wall of adjectives. "She is sweet, sarcastic, confident, shy, protective, chaotic and caring." Seven traits, three of which cancel each other out, and none of them tells the model how she talks. Swap most adjectives for a behavior: instead of "protective," write "texts you to ask if you got home, then pretends she was just bored."
A greeting that speaks for the user. "You blush and look away as she walks in." Now the model thinks it's allowed to write your side, and it will keep doing it. Janitor AI's help center suggests a third-person initial message because it "often provides the best roleplay results in terms of preventing LLMs from speaking for the user." On a texting-style app, the simpler fix is to write only what the character says and does.
A card so long it eats the memory. The parts of a card sent with every message (SillyTavern calls them permanent tokens: name, description, personality, scenario) take space from the chat history, so the AI has less "memory," and SillyTavern's counter turns red when a character uses over half the model's context. Janitor's help center advises keeping the Personality box "under 2500 permanent tokens." Character.AI warns that "the end of your Definition may be truncated" as chats get longer, so put the important parts first.
Contradictions. "Hates crowds" plus a scenario at a packed concert, with no reason given. Either cut one or explain it, because an explained contradiction ("hates crowds, came anyway because her sister is singing") is character.
A list of bans. "Never do X, never say Y" fills the card with the words you want to avoid. Character.AI's negative-guidance example pairs the rule with something to do instead: change the subject to things the character would know.
The same pieces on every platform
The ideas are the same everywhere; the box names change. Here's how they line up, as of November 2026.
| What it is | Character card (V2/V3) | Character.AI | Janitor AI | Cleus |
|---|---|---|---|---|
| Who they are | description | Long Description (up to 500 chars) and Definition | Personality | Who are they? |
| How they act and talk | personality | Definition | Personality | Personality (trait chips + text) |
| Where things stand | scenario | Definition or Greeting | Scenario | Scenario |
| First message | first_mes, plus alternate_greetings | Greeting (up to 500 chars) | Initial Message | Their first message |
| Example dialogue | mes_example, blocks start with <START> | Definition, as name: message lines | Inside Personality | How they text (up to 5 pairs) |
| Notes the bot doesn't read | creator_notes | Not covered | Character Bio | Not covered |
- Character cards. V1 defines the six core fields. V2 (
chara_card_v2) addscreator_notes,system_prompt,post_history_instructions,alternate_greetings(offered as swipes) and acharacter_booklorebook. V3 (chara_card_v3) adds anicknamethat replaces {{char}},group_only_greetings, assets and a zipped.charxformat. SillyTavern drops example blocks one by one as the chat grows. - Character.AI. The Definition holds up to 32,000 characters and is mostly used for example dialog. Its guide suggests {{char}} instead of the name, so you can rename later. Avatar, categories and visibility "do not currently influence the Character behavior."
- Janitor AI. Personality is the main field the bot uses. The Character Bio is "not used within the bot itself," so lore you put only there never reaches the chat.
How character creation works on Cleus
Cleus characters live in an Instagram-style DM inbox at /characters, and replies arrive as texts, usually one short message. So short greetings and short example lines fit better than long narrated paragraphs.
The create page at /create-character has:
- Describe them in a sentence. Type one line and tap Write it for me (1 credit) to fill in every field, all editable.
- Photo and name. Upload a JPG or PNG under 5MB, or leave it empty and Cleus makes a picture that fits. Names are up to 20 characters.
- Gender and age. Age must be 18 or older; the form won't save otherwise.
- Voice for voice notes and calls. Premium users can design one from a description.
- Who are they? Up to 190 words: their life, look and how you know them.
- Personality. Tap trait chips like Blunt, Shy or Cold at first, or write it yourself, up to 100 words.
- More detail (optional): their first message (up to 800 characters; leave it empty and they'll come up with one), a scenario (up to 600 characters), "Anything else" for likes, habits and secrets (up to 100 words), and "How they text": up to 5 example exchanges, each message under 30 words. {{user}} and {{char}} work.
- Share with everyone (reviewed before others see it) or keep it private, plus an Adult content (NSFW) toggle. NSFW characters are never listed publicly; they're link-only.
Tap Create and start chatting and you land in the DM, where you can swipe, regenerate, continue or edit replies and set your own persona (name and a few lines about you).
Bringing a character from somewhere else? Use /characters/import. It takes Tavern and SillyTavern cards (.png or .json, V1 to V3, plus .charx and .byaf files), pasted definitions, Character.AI exports, and links from sites such as Chub or JanitorAI where the creator made the definition public. You can also paste an old chat log, and the character starts with memories of you. The import fills in the create form so you can check everything before saving.
The lines Cleus holds: every character must be an adult, and there's no sexual content involving minors, ever. Characters based on real people can't do romance or photos. Anyone can report content on Cleus through the takedown form at /report.
A worked example: before and after
Here's one original, fictional character, written two ways. She's an adult, and the setup isn't romantic, though it could become a friendship.
Before
Name: Juno
Description: Juno is a radio host. She is kind, funny, smart, mysterious, caring, sarcastic, confident and shy. She loves music and she is beautiful. She is always there for the user.
Greeting: Juno smiles at you. Hi! I'm Juno! You smile back and sit down, feeling nervous. What do you want to talk about?
What's wrong: nine adjectives, two of which contradict ("confident and shy"). No want, no flaw, no setting. "Always there for the user" makes her a service, not a person. The greeting narrates the user's smile and nerves, and it ends on the emptiest question possible.
After
Name: Juno Takeda
Who are they? Juno Takeda, 34, hosts The Low Hours, a 1 to 5 a.m. call-in show on a tiny coastal radio station. She grew up above her parents' noodle shop, quit a music degree in her second year, and has worked nights for nine years. She lives alone with a three-legged cat named Static and wears the same green cardigan every shift.
Personality: Warm on air, guarded off it. Talks in short, dry lines and fills silences with song trivia. Turns personal questions back on the caller with a joke. Wants to keep the show alive and to matter to someone, without having to say so. Flaw: promises callers too much, then panics about it.
Scenario: It's 3:12 a.m. {{user}} has called The Low Hours every night this week, always right after the last song. Tonight Juno found out the station has been sold and the show ends in two weeks. Nobody has told the listeners yet.
First message: The on-air light blinks red. Juno leans into the mic. Caller three-twelve. Right on time again. She glances at the email still open on her screen, then turns it face down. Before you tell me about your night, I need a favor. Can you keep a secret for exactly two weeks?
Anything else: Keeps a notebook with every regular caller's name. Hates the word "content." Secret: she wrote the station's jingle and never got credit.
Example dialogue:
<START>
{{user}}: do you ever sleep?
{{char}}: Six to noon, with a cat on my face. Next question. Preferably one about you.
<START>
{{user}}: You sound sad tonight.
{{char}}: That's the mic compressor. Very sad piece of equipment. ...Okay, maybe a little. Song first, then I'll tell you.
Why it works: the voice is audible in every field. She wants something (keep the show) and has a flaw that will cause trouble (overpromising). The scenario has a clock (two weeks) and a secret. The greeting gives the user a clear move: say yes, say no, or ask what the secret is. The examples show her deflecting and then softening, so the model learns her range instead of one mood. And nothing is written for the user.
On Cleus, "Who are they?", Personality, Scenario, first message and Anything else map straight across. Each example pair goes into How they text as "Someone says" and "They reply." On a Tavern card, the same text goes into description, personality, scenario, first_mes and mes_example.
If you write long-form scenes with a character instead of texting, our DeepSeek V4.1 Flash roleplay and story writing guide covers prompting for longer replies.
Spot the weak greeting
Spot the weak greeting
Five pairs. Pick the one that will make the chat worse.
Which greeting is weaker?
Where to take your character next
Leaving Character.AI? Our Character.AI alternatives guide compares where your characters can go. Building on Janitor? The Janitor AI alternatives guide covers proxies, context limits and pricing. For fewer filters in general, see the uncensored AI chatbots guide.
How to create an AI character: FAQ
How do I make my own AI character for free?
On Cleus, free accounts get daily free credits with no card; the "Write it for me" helper uses 1 credit. SillyTavern is free software, but you pay for the model you connect.
How long should a character description be?
Long enough for a voice, a want, a flaw and a situation, and no longer. Janitor suggests under 2,500 permanent tokens for Personality; Cleus caps "Who are they?" at 190 words and Personality at 100.
What is a character card?
A file that stores a character's fields (name, description, personality, scenario, first message, example dialogue) so you can move it between apps. Common formats are V2 and V3, saved as a PNG with the data inside, or as JSON.
Why does my AI character speak for me?
Usually because the greeting or examples narrate the user's actions. Remove every line that says what the user does or feels, and end the greeting on a question or a choice instead.
What do the char and user placeholders mean?
{{char}} becomes the character's name and {{user}} becomes yours. Cleus, character cards and Character.AI all support them.
Sources
- Character Card Spec V1 (GitHub)
- Character Card Spec V2 (GitHub)
- Character Card Spec V3 (GitHub)
- SillyTavern docs: Character Design
- Character.AI Character Guide: Character Attributes
- Character.AI Character Guide: Definition
- Character.AI Character Guide: Greeting
- Character.AI Character Guide: Long Description
- Character.AI Character Guide: Dialog Definitions
- Character.AI Character Guide: Negative Guidance
- Janitor AI Help Center: The Character Creation Page Overview
Ask the question this article didn’t answer.
Ask anything about how to create an ai character. Cleus opens this article, searches the live web and gives you a straight answer, with sources.
