Importing characters
Bring a SillyTavern or CharacterHub card into Reverie.
Reverie reads character cards in the V1, V2 and V3 formats — the ones SillyTavern, CharacterHub and most card sites export. The importer fills an editable draft; nothing is saved until you press save yourself.
Import a card
Open a new character
Go to /app/characters/create and press Import character card in the header. The button only exists while you are creating a character — you cannot import into a character that already exists.
Drop the file
PNG or JSON, up to 10 MB. The card is parsed in your browser, not uploaded to be read. PNG cards carry their JSON inside the image; JSON cards are read directly.
Chat logs and standalone World Book files are different formats with their own tools — see importing your history and world books.
Review what it will fill
The dialog shows the detected card version, the avatar, and a Ready to fill list of every field it is about to write, with the values. Nothing changes until you confirm.
If you already typed something into the form, you also choose between Only fill empty fields (keeps your edits, adds what is missing) and Replace matching fields (the card wins wherever it has a value).
Optionally, let AI tidy it up
Use AI to organize and enrich the imported draft runs a clean-up pass over the result. Most cards put everything in one long description, so the pass splits the description, scenario and instructions into passages and moves each one, word for word, into the field it belongs in: looks to Appearance Description, who you are to Relationship with Player, standing rules to System Prompt. Text past the description's limit is kept in the card's World Book. It then writes only what the card lacks, such as a bio, suggested replies and a couple of extra scenarios. The plain import is applied first and survives if that pass fails, so you never lose the card's content by asking for it. It may consume credits.
Check and save
You land back in the editor with the draft filled. Add the required pieces the card does not carry — categories are mandatory and no card format has them — then save.
What maps to what
| From the card | Becomes |
|---|---|
nickname, else name | Character Name, trimmed to 50 characters |
description, else char_persona | Detailed Description, trimmed to 10,000 characters |
tagline, else the description or personality | Character Bio, excerpted to 500 characters |
personality | Character Personality |
appearance | Appearance Description |
player_relationship | Relationship with Player |
first_mes / char_greeting, then alternate_greetings and group_only_greetings | One Starter Dialog per greeting, in order, with no suggested replies |
mes_example / example_dialogue | Example Conversations, parsed into user/character pairs |
scenario / world_scenario | Added to the end of the Detailed Description, after "Scenario:". The card's chats all open in that situation, and a Reverie scenario only reaches chats started from it |
system_prompt, post_history_instructions and depth_prompt | System Prompt, joined in that order. They mostly hold character facts and standing rules, and a Reply Format Prompt replaces Reverie's own formatting rules |
nsfw_prompt | NSFW Prompt |
tags | Tags, deduplicated, first 20 kept |
gender, age | Character Gender, Character Age |
| NSFW markers | The NSFW Content switch |
creator_notes | Creator notes |
character_book entries | A separate World Book, named after the character and attached to it |
Embedded and linked images are copied onto Reverie's storage. Anything that cannot be fetched keeps pointing at the original site, and the dialog tells you how many images that applies to.
Not carried across: chat history, per-user memories, and any platform-specific extension data beyond the fields above.
Macros in imported text
{{char}}is replaced with the character's name as the card is parsed.{{original}}is stripped out of prompt fields.{{user}}is left alone — Reverie supports it as a live macro. See the macro list.
Messages you might see
| Message | What happened |
|---|---|
| The source name exceeded Reverie's 50-character limit and was shortened | The card's name was longer than Reverie allows |
| The source description exceeded Reverie's 10,000-character limit and was shortened | Same, for the description. The original card is untouched |
| The source age is outside Reverie's supported range and was not imported | Reverie only accepts ages of 18 and over |
| The card contains example dialogue in an unrecognized layout | The example parser could not split it. Turn on AI organization to recover it, or retype it after import |
| This file is empty / Character cards must be 10 MB or smaller | The file was rejected before parsing |
Importing from anywhere else
Card formats are one thing; a Character.AI export, a screenshot or a plain description is another. Those go through the Character Importer skill in Labs (/app/labs/character-importer), which runs inside your own Claude client and uploads the finished character through Reverie's API.
The page gives you a ready-made message to paste into Claude Code, Claude Desktop or any other client: it installs the skill and stores your Reverie API key. After that, drop a file, screenshot or description into the same chat and say "Import this character into Reverie". New characters appear under My Characters.
That prepared message contains a personal API key. Treat it like a password, and rotate or revoke it from Settings → API Keys if it leaks. See API keys.