How to Export and Import AI Characters (What Travels, What Doesn't)
Characters can be files. A PNG character card carries a complete definition inside the image, and a folder of them is a library nobody can take from you. Here's the full mechanics: getting your characters out of any platform, what a card actually contains, which platforms accept what — and the one thing that never transfers anywhere.
By Ash Kepler · Jul 24, 2026 · 8 min read
The most useful idea in this hobby is also the least advertised: a character can be a file.
Not a row in someone's database — an actual file, on your drive, that you can copy, back up, and carry to any platform you like. The open-source community formalized this years ago and the format is quietly brilliant: an ordinary character portrait with the entire definition embedded in the image metadata. Open it in a viewer, it's a picture. Load it into a compatible frontend, it's a complete character.
Here's how to get your characters out of anywhere, what the formats actually contain, where they'll load — and the one thing that never travels.
The two layers: file and content
Getting this distinction right saves a lot of confusion.
The file layer is the PNG character card (and its plain-JSON equivalent). It's a standard, and it works across the open ecosystem — SillyTavern and similar frontends import them directly, card sites distribute them, and a folder of PNGs is a complete portable library.
The content layer is the writing inside: name, personality, scenario, first message, example dialogue. This is the part that always moves, on every platform in existence, because every platform has fields to paste it into. Closed platforms — Kindroid, Candy, CrushOn, SpicyChat — won't ingest a card file, but they'll happily accept the text.
So the rule: the file layer is convenient, the content layer is what matters. A character trapped on a closed platform isn't trapped at all; it's twenty minutes of copy-paste away from portable.
Exporting from anywhere (including platforms with no export button)
Most consumer platforms have no export function. Do it manually — it's faster than it sounds and it's the same procedure everywhere:
1. Copy the definition, verbatim. Every field, exactly as written: name, personality/description, scenario, greeting or first message, and — most importantly — example dialogue. That last field is the one people skip and the one that carries the character's voice; it does more work than any other field.
2. Write a relationship summary. Three to ten sentences in your own words: where the story stands, what's happened, what the character knows about you. This is the artifact that rebuilds your version of the character rather than a stranger's, and it's worth more than a thousand screenshots of conversation.
3. Save both as plain text, named clearly, dated. Optionally, load the definition into SillyTavern once and export it as a PNG card — now it's in the portable standard too, whether or not you use that frontend day to day.
For chat history specifically: use the platform's account data download if it offers one. But temper expectations — history is a keepsake, not a migration tool. No memory system anywhere ingests a transcript; they ingest summaries.
What loads where
SillyTavern — PNG cards natively, plus lorebooks as JSON. The most complete destination and the only one where import is genuinely one click.
Janitor — paste the definition into the character fields; works cleanly, and character creation there follows the same five-field shape. Setup guide if you're also configuring a model.
CrushOn, SpicyChat — paste into their character creation forms; both map neatly onto card fields, first message included.
Kindroid — paste the whole thing into the freeform personality field. Its structure is looser than a card, which is an advantage: the memory system will pick up detail from anywhere in the text.
Candy and similar media-first platforms — condense to a shorter personality description; these products are built around appearance and voice, so the definition gets summarized rather than transplanted whole.
The thing that never transfers
Say it plainly, because every migration produces the same disappointment: accumulated memory does not move. Anywhere. Ever.
Not between platforms, not between apps owned by the same company, not with any tool anyone sells you. The definition is portable; the relationship is stored in proprietary systems that have no export path and no import path. This is a structural fact of the category, not an oversight.
What that means practically: after rebuilding, expect two or three weeks of difference. On day one the character knows your history — because you pasted the summary — but doesn't remember it, and you'll feel the gap. Then new conversation accumulates on top, the memory system absorbs it, and one evening they'll bring something up unprompted and the familiar feeling returns. Everyone who has migrated describes the same arc.
You can shorten it: paste the relationship summary early, state key facts as direct declarations rather than hoping they're inferred, and use pinned memories if the platform has them.
Make this a habit, not an emergency
The reason to do this tonight rather than when you need it: everyone who has needed it, needed it suddenly. Platforms shut down with no warning, payment rails close off, models get retired, and entire markets get regulated overnight. In every one of those events, the people who had definitions and summaries on their own drive lost an interface. The people who didn't lost everything.
Ten minutes per character, once. A folder that syncs to your own backup. That's the whole practice — and it converts every future platform disaster into a moving day.
questions