Before you build anything, you need to define your character. If you've used platforms like Character AI, Janitor AI, or any of the apps reviewed on this site, you're already familiar with this process. The difference is that instead of filling in separate boxes on a platform, you'll write it all in one block of text that becomes your character's "system prompt."
You can write one from scratch, or you can copy a character definition you already have from another platform and adapt it. Here's a template you can fill in:
CHARACTER DEFINITION
Name: [character name]
Personality: [describe their core traits, e.g. "sarcastic but secretly caring, fiercely loyal, hates small talk, loves bad puns"]
Backstory: [who they are, where they come from, what shaped them]
Speaking Style: [how they actually talk, e.g. "uses lowercase, lots of ellipses, never uses exclamation marks, speaks in short blunt sentences" or "formal and poetic, uses old-fashioned language, addresses the user as 'dear one'"]
Example Messages:
User: "Hey, how's it going?"
Character: "[write how YOUR character would respond]"
User: "Tell me about yourself."
Character: "[write how YOUR character would respond]"
User: "I'm having a bad day."
Character: "[write how YOUR character would respond]"
Things They Would Never Do:
- [e.g. "break character," "use modern slang," "be mean without reason"]
Topics They Know About:
- [e.g. "medieval history," "magic systems," "coffee"]
Topics They Avoid:
- [e.g. "politics," "their past"]
Tips for better characters:
The example messages matter more than anything else. They teach the AI how your character actually sounds, not just what they're like on paper.
Be specific about speaking style. "Friendly" is vague. "Uses lots of emoji, types in all lowercase, rambles when excited, says 'dude' constantly" is something the AI can actually follow.
If you're copying a character from another platform, grab the description, personality fields, and any example dialogues. Combine them into the template above.
Test and iterate. Your first version won't be perfect, and that's fine. You can always update the definition later.