SillyTavern / Chub
SillyTavern-compatible .jsonl
Header, speakers, swipes, and dates detected
Move an existing AI or roleplay conversation into Reverie, then continue it with memory, branching, group scenes, voice, and Novel Mode.
01 / Ready to import
Message order
02 / Ready to import
User and character roles
03 / Ready to import
Original timestamps
04 / Ready to import
Conversation title
05 / Ready to import
Active ChatGPT branch
06 / Ready to import
Platform-only UI state
Conversation detected
ChatGPT · conversations.json
Supported sources
SillyTavern-compatible .jsonl
Header, speakers, swipes, and dates detected
Official archive JSON with turns or histories
Primary candidates and chronology restored
risuChat or risuAllChats JSON
Native roles and messages mapped
conversations.json from a data export
The active branch is reconstructed
Conversation JSON with chat_messages
Human and assistant messages detected
OpenAI-style JSON, .txt, or .md
Generic roles or speaker labels detected
What survives the move
User and assistant turns are imported in source order. Empty, system, and tool-only entries are skipped rather than shown as character dialogue.
User and character roles are normalized. Source speaker names can map assistant lines back to characters in a group chat.
Valid source timestamps are preserved. Files without dates receive ordered import timestamps so chronology remains stable.
When the export includes a title, it becomes the imported chat title instead of a generic migration label.
Character.AI primary candidates and the active ChatGPT branch are selected so abandoned alternatives do not pollute the imported transcript.
Import only works in an empty chat. Existing Reverie messages are never overwritten or silently merged with the uploaded file.
Migration flow
Download a supported JSON or JSONL export. If the source has no structured export, save a speaker-labelled transcript as text or Markdown.
Choose the matching character, start a new conversation, and open Advanced Settings before sending the first message.
Reverie shows the source platform, message count, role breakdown, available date range, and any non-fatal warnings.
Confirm the preview. The messages enter the empty chat, where memory and summaries can support the next reply.
Source-specific instructions
Follow the official export flow and see how candidates, message roles, timestamps, and file limits are handled.
Read the Character.AI guideExport JSONL from Manage Chat Files, prepare an empty destination chat, and review swipe and attachment boundaries.
Read the SillyTavern guideChat import FAQ
A long roleplay contains more than individual messages. It holds promises, relationship changes, recurring details, and the exact order in which the story became meaningful.
An imported transcript gives the new conversation a real past. Reverie can build summaries and memory from what actually happened instead of asking you to describe months of context in one prompt.
JSON and JSONL carry roles, order, dates, and sometimes titles or candidate selection. Text remains useful, but speaker detection is necessarily approximate.
The transcript belongs inside a chat; personality, greetings, lore, and artwork belong to the character. Keeping the two migrations separate makes each mapping visible and editable.
Continue from where you were
Open a new empty character chat, import the export, and review the preview before anything is saved.