Chat history importer

Bring the conversation. Keep the history.

Move an existing AI or roleplay conversation into Reverie, then continue it with memory, branching, group scenes, voice, and Novel Mode.

  • Automatic format detection
  • Up to 10,000 messages
  • Imported privately

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

Export there, continue here.

SourceAccepted conversation formatHow it is handled
01

SillyTavern / Chub

SillyTavern-compatible .jsonl

Header, speakers, swipes, and dates detected

02

Character.AI

Official archive JSON with turns or histories

Primary candidates and chronology restored

03

RisuAI

risuChat or risuAllChats JSON

Native roles and messages mapped

04

ChatGPT

conversations.json from a data export

The active branch is reconstructed

05

Claude

Conversation JSON with chat_messages

Human and assistant messages detected

06

Other platforms

OpenAI-style JSON, .txt, or .md

Generic roles or speaker labels detected

What survives the move

The transcript stays recognizably yours.

[01]

Every supported message

User and assistant turns are imported in source order. Empty, system, and tool-only entries are skipped rather than shown as character dialogue.

[02]

Speaker roles and names

User and character roles are normalized. Source speaker names can map assistant lines back to characters in a group chat.

[03]

Dates when available

Valid source timestamps are preserved. Files without dates receive ordered import timestamps so chronology remains stable.

[04]

The conversation title

When the export includes a title, it becomes the imported chat title instead of a generic migration label.

[05]

The selected timeline

Character.AI primary candidates and the active ChatGPT branch are selected so abandoned alternatives do not pollute the imported transcript.

[06]

A safe destination

Import only works in an empty chat. Existing Reverie messages are never overwritten or silently merged with the uploaded file.

Migration flow

Four steps, no transcript surgery.

  1. 01

    Export the conversation

    Download a supported JSON or JSONL export. If the source has no structured export, save a speaker-labelled transcript as text or Markdown.

  2. 02

    Open an empty Reverie chat

    Choose the matching character, start a new conversation, and open Advanced Settings before sending the first message.

  3. 03

    Preview the detected file

    Reverie shows the source platform, message count, role breakdown, available date range, and any non-fatal warnings.

  4. 04

    Import and continue

    Confirm the preview. The messages enter the empty chat, where memory and summaries can support the next reply.

Chat import FAQ

Before you move the conversation.

Why migrate the transcript instead of starting over

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.

Continuity begins with evidence

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.

Structured exports are safer

JSON and JSONL carry roles, order, dates, and sometimes titles or candidate selection. Text remains useful, but speaker detection is necessarily approximate.

Import and character creation stay separate

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

The next message can remember the last one.

Open a new empty character chat, import the export, and review the preview before anything is saved.