guide

Character Card Portability: What Each Platform Lets You Take With You

Some platforms hand you a file. Some hand you nothing. Here is the export status of every major companion platform, what the V2 and V3 formats actually carry, and the mistake that silently destroys a card.

By Ash Kepler · Jul 25, 2026 · 6 min read

Affiliate disclosure: Some of the links in this article are affiliate links. We may earn a commission if you sign up for a platform through these links, at no additional cost to you. This doesn't influence our editorial verdicts. Full disclosure →

Your character card is either a file you own or a database row on somebody else's server. Which one decides what happens when a platform changes its model, raises its price, or shuts down.

Here is where each platform sits.

The portability table

| Platform | Export a card? | Import a card? | Format | |---|---|---|---| | SillyTavern | Yes | Yes | V2 and V3, PNG or JSON | | Chub AI | Yes | Yes | V2-based | | RisuAI | Yes | Yes | CHARX archives, V3 | | Agnai | Yes | Yes | V3, some fidelity loss | | SpicyChat | Unconfirmed | Yes | Accepts V2 PNG/JSON | | Janitor AI | No portable card | Manual | XML-style fields | | Character.AI | No | No | Closed proprietary | | Candy AI | Unconfirmed | No | Closed consumer app | | CrushOn | Unconfirmed | Yes | Accepts V2 PNG/JSON | | Replika | No | No | No card system | | Nomi | Unconfirmed | No | Closed |

Export table v1.0 — verified 25 Jul 2026, rechecked quarterly. "Unconfirmed" means no native card-export path could be verified for that platform at this check; third-party browser tools exist for some.

Read that column carefully. On more than half the platforms in this category, the character you spend eight months developing either cannot leave or has no confirmed way out.

What the format actually is

A V2 card is a PNG image with the character definition embedded as JSON inside the file's metadata chunks. The image looks normal and the data hides inside. One file carries both the avatar and the definition, which is what makes the whole ecosystem work.

The format was written specifically to fix the portability gap, so that your character belongs to you rather than to the platform. That was the design intent, stated plainly, and it is why the open-card platforms cluster on one side of the table above.

V3 extends it. Newer SillyTavern versions export chara_card_v3, which adds assets and creation date while remaining backward compatible, and cards written in the V2 shape import fine everywhere. The richer additions are native lorebooks and multi-language assets. Practical guidance: almost all frontends maintain backward compatibility with V2, but if you are exporting or saving edits, upgrade to V3 to unlock alternate greetings and extensions.

The mistake that destroys cards

Do not open a card PNG in an image editor. Editing it strips the embedded JSON, and you are left with a picture that looks identical and contains nothing.

Related: some platforms strip metadata on export, so a card that came out of one service may arrive somewhere else empty. Verify before you rely on it. Extracting the JSON from the file is the check, and if it comes back with nothing, the card did not survive the trip.

The two hard cases

Character.AI is the outlier that drives migration. It is a closed ecosystem with no card import or export, which is the single biggest reason power users leave, and migrating to Janitor AI, SillyTavern, or any open client means manually rewriting cards from scratch using the public description as your only reference. The community's answer to this problem is why Chub exists at all.

Janitor AI is a surprise on this list. It has open-platform energy in every other respect, including bring-your-own-model support, but it takes a different approach entirely, using XML-style fields rather than portable cards. You can copy your text out by hand. You cannot hand a file to another client. Our character card template for every platform covers the field mapping if you are moving between them manually.

Why this belongs in your platform decision

Portability is not a power-user concern. It is the only insurance available against the three things that actually happen in this category.

Model swaps, which are documented in our model change log and which can leave your character sounding like someone else overnight.

Price changes, which are the ordinary lifecycle of every subscription product.

Shutdowns, which have happened repeatedly and take everything on the platform with them.

A card you hold as a file survives all three at the cost of twenty minutes of setup somewhere new. A card living only in a closed platform survives none of them.

Practical routine

Export after any significant edit, not annually. The card you lose is always the one you improved last week.

Keep the JSON alongside the PNG. It is redundant until an image tool eats the metadata, at which point it is the only copy.

Write your defining text somewhere outside the platform entirely, even a text file. Our guide to what belongs in a character card covers which fields are actually load-bearing, and those are the ones worth keeping.

If portability matters to you, that narrows the field considerably. SillyTavern is the most complete client for card workflows and the steepest to learn. SpicyChat accepts V2 PNGs and is the easiest hosted platform that respects the format. Janitor AI gives you model freedom without card freedom, which is an odd trade but a real one.

The closed platforms are not disqualified by this. Candy AI and CrushOn both deliver a better out-of-box experience than anything you assemble yourself, covered in our best AI companion apps roundup. Just know you are renting the character as well as the service.

questions

Frequently asked

No. Character.AI uses a proprietary closed format with no card import or export, which is the single biggest reason power users migrate away from it. Moving a character elsewhere means manually rewriting it using the public description as your only reference.