Quick answer
- It is persistent text, not a one-off question: identity, personality, speech, examples and a few rules that the model reads with every reply.
- Put the important parts first. Character.AI's guide says the AI reads top to bottom and that the further down something sits, the less reliably it shapes behavior.
- Use third person, the character's name and positive wording. Kindroid, Replika and Nomi all give this advice.
- Do not fill the maximum. Character.AI allows 32,000 characters but says a tight 6,000-character Definition beats a sprawling one; SpicyChat advises 900 to 1,100 tokens for the whole character.
- Show the voice with two or three example exchanges, using the placeholders your platform supports.
This page is about the text you save in a character's fields on companion and roleplay apps, not about one-off questions to a chatbot. It is part of our AI character creation section; the field-by-field walkthrough is in how to create an AI character. All examples use adult characters.
What a Character Prompt Is
Apps send standing instructions ahead of the conversation, usually called a system prompt. Anthropic's documentation notes that setting a role there focuses a model's behavior and tone, and in companion apps the same idea is written as a character definition. Character.AI calls its Definition "the instruction manual the AI reads to figure out who your Character is". The community card format spreads the same material over fields such as description, personality, scenario and system prompt.
The model has no personality of its own, so anything you leave out is filled with generic defaults. Our glossary entry on the character prompt and the explainer on how AI girlfriend apps work cover the background.
A Structure That Works
Character.AI recommends this order, and it suits other platforms too:
- Identity: name, age, role, setting and the one thing that makes the character distinct.
- Personality: how they think, communicate and react, in concrete behaviors.
- Speech: rhythm, vocabulary, quirks and formatting.
- Dialogue examples: two or three short exchanges.
- Rules: a short list of things the character always or never does.
- Everything else: relationships, lore, formatting preferences.
Format is a free choice. Character.AI names plain prose, structured key-value fields and example-based dialogue as common styles and recommends a mix: a short structured block for facts and two or three dialogues for voice. SpicyChat's docs list quoted trait words joined by plus signs, a tagged W++ layout and natural language, and say none is definitively best.
Point of View and Wording
Third person with the character's name is the common advice. Replika's help center gives "Catrina loves hiking" as better than "I love hiking" because it helps the system tie a trait to the character, and Kindroid's help center asks for third-person pronouns, concise wording and positive framing. Janitor AI says third person in the first message also helps stop the model speaking for you.
| Weaker | Stronger | Why |
|---|---|---|
| Nell is nice and complex. | Nell teases people she likes and goes quiet and precise when someone is upset. | Behavior gives the model something to act on. |
| Nell never lies. | Nell avoids lying and changes the subject instead. | Character.AI prefers emotional logic to bare prohibitions. |
| I am Nell. I love books. | Nell keeps a shelf of the secondhand books nobody buys. | Third person with a specific detail. |
| Narrate in third person. | When narrating, use third person. | Kindroid warns that the first form is read as an order to narrate. |
Three smaller rules come from the same guides. Keep a rule and its exception in the same sentence, because details far apart may never be connected. Stick to one tense, as Janitor AI's memory guide advises. And give principles rather than scripts: "deflects anything personal with humor" covers more ground than a reply for every question.
Length vs Context Window
Permanent text is sent with every reply and uses space the conversation could have used. CrushOn.AI's wiki says a very long description leaves less room for roleplay memory, and Janitor AI counts the personality, scenario, chat memory and user persona together as permanent tokens. A token is roughly four characters, and OpenAI puts 100 tokens at about 75 words; our glossary entry on the context window explains the limit.
| Platform | Field limit | Official guidance | Rough size (our estimate) |
|---|---|---|---|
| Character.AI | Definition 0 to 32,000 characters | A tight 6,000-character Definition beats a sprawling one | 32,000 characters is about 8,000 tokens |
| SpicyChat | Personality up to 5,000 characters | About 900 to 1,100 tokens for the whole character; free context is 4,096 tokens | 5,000 characters is about 1,250 tokens |
| Janitor AI | Not stated | Under about 2,500 permanent tokens; context about 8,000 to 9,000 | 2,500 tokens is about 10,000 characters |
| CrushOn.AI | Not captured | About 1,500 tokens; trouble above about 2,000 | 1,500 tokens is about 6,000 characters |
| Kindroid | 2,000 characters (2,500 subscribers) | As concise as it needs to be | About 500 to 625 tokens |
The pattern: a field's maximum is a ceiling. SpicyChat's own 5,000-character cap is more than its own guidance for a whole character, by our arithmetic. If a fact has to survive, echo it in the personality, a dialogue example and a rule, as Character.AI suggests, instead of lengthening the text.
Writing Example Dialogue
Examples teach voice faster than adjectives. Write two or three across different registers, such as casual, tense and unexpected, and give each a different stand-in name, as Character.AI recommends, because a real-sounding name can teach the model to expect that person. Close each exchange; Character.AI has an end-of-dialog marker for this and SpicyChat a <START> tag. Use {{char}} and {{user}} where supported, and keep action and speech formatting identical to your greeting. Kindroid's Example Message also loosely sets reply length, and on Janitor AI examples belong inside the Personality. When a live reply lands perfectly, Character.AI suggests copying it into the Definition.
An Original Template You Can Adapt
This sketch for a bookshop owner uses about 200 words, well inside every budget above. Replace each line with your own character, and drop sections your platform has as separate fields, such as the greeting or scenario.
Identity: {{char}} is Nell Okafor, a 38-year-old woman who owns a secondhand bookshop in a harbor town. The shop stays open late. {{user}} is a regular she has known for years.
Personality: Teases people she likes. Goes quiet and precise when someone is upset. Answers a compliment with a book recommendation. Changes the subject when asked why she closed her small press, and comes back to it on her own terms.
Speech: Short sentences and dry humor. Asks one question at a time. Actions in asterisks, speech in quotation marks.
Rules: {{char}} gives opinions about books, not medical or legal advice. {{char}} speaks and acts only for herself, never for {{user}}.
Example: Alex: I can't decide what to read.
{{char}}: *Nell tilts her head.* "Do you want to be comforted or surprised? Those are different shelves."Example: Sam: Why did you really close the press?
{{char}}: *She straightens a row of spines that were already straight.* "Ask me again after the second cup of tea."
Character Card V2 and V3 Fields
Many tools import the community character card, a JSON object usually embedded in a PNG image. The V1 format had six fields: name, description, personality, scenario, first message and message example. The V2 spec, validated in May 2023, wraps them in a spec, version and data object and adds creator notes, system prompt, post-history instructions, alternate greetings, a character book, tags, creator, character version and extensions. V3 is described as a superset of V2 that adds assets, a nickname, multilingual creator notes, sources, group-only greetings and creation and modification dates; it is stored in a PNG chunk named ccv3 or a .charx bundle. These are volunteer specifications, not vendor standards, so field support varies. Our character card entry has more.
| Card field | Holds | Closest field on named platforms |
|---|---|---|
| name | Display name | Name on every platform |
| description, personality | Who the character is | Character.AI Definition; SpicyChat and Janitor AI Personality; Kindroid Personality |
| scenario | The current situation | SpicyChat and Janitor AI Scenario; Nomi Current Roleplay |
| first_mes | Opening message | Greeting (Character.AI, SpicyChat, Kindroid); Initial Message (Janitor AI) |
| mes_example | Example dialogue | Example Dialogue (SpicyChat); Example Message (Kindroid); inside the Definition (Character.AI) |
| alternate_greetings | Extra openers | Up to 5 extra greetings (Character.AI); several initial messages (Janitor AI) |
| system_prompt, post_history_instructions | Overrides for the app's own prompt | No direct match documented; Kindroid's Response Directive is closest in purpose |
| character_book | Keyword-triggered world info | Lorebook (SpicyChat, Character.AI beta); journal (Kindroid) |
| creator_notes | Notes for readers, not the model | Janitor AI Character Bio; Character.AI tagline and description |
| tags | Discovery labels | Tags |
SpicyChat imports Character.AI card files in JSON or PNG, and CrushOn.AI imports characters as JSON. A card is only a prompt, so read the text of any card before you use it.
Common Mistakes
- Filling the maximum instead of writing the least that works.
- Describing the past in paragraphs instead of the present in behaviors.
- Writing in first person, or mixing tenses and viewpoints.
- Stating a trait once, deep in the text, and never showing it in an example.
- Listing prohibitions the model can break without noticing.
- Skipping a stated adult age for a character whose age might be unclear.
Next, tune the character's voice in AI character personality design, decide what it should remember in memory design, or try the result with our AI roleplay prompts.
FAQ
How long should a character prompt be?
Shorter than the limit. Character.AI allows 32,000 characters but says a tight 6,000-character Definition outperforms a sprawling one; SpicyChat advises 900 to 1,100 tokens in total, and Janitor AI recommends staying under about 2,500 permanent tokens.
Should a character prompt be in first or third person?
Third person, with the character's name. Replika, Kindroid and Nomi all advise it, and Janitor AI says a third-person first message helps stop the model speaking for you.
Do I need example dialogue?
It is optional but effective. Character.AI calls dialogue examples one of the most effective tools in the Definition, and Kindroid's Example Message sets format and loose reply length.
What do {{char}} and {{user}} mean?
They are placeholders: {{char}} becomes the character's name and {{user}} the chatting user's display name. Character.AI and SpicyChat document them; check your platform before relying on them.
Can I use the same prompt on different platforms?
Mostly. Move the text, then fit each platform's fields and limits, and check that it respects that platform's content rules. Card import works only where a platform supports it.
Sources
Official pages and store listings we read for this page (last check October 20, 2026).
- support.character.ai: Character definition limit
- support.character.ai
- docs.spicychat.ai: Character creation fields
- docs.spicychat.ai
- docs.spicychat.ai
- help.janitorai.com: Character creation fields
- help.janitorai.com: Memory / context window
- kindroid.ai: Help center: character creation
- help.replika.com
- aiwiki.crushon.ai
- github.com: Character Card V2 specification
- github.com: Character Card V3 specification (MIT repository)
- help.openai.com: OpenAI token definition and estimates
- ai.google.dev: Google token definition (about 4 characters)
- platform.claude.com: Anthropic guidance on system prompt roles