Migration guide · Updated 2026-05-11

How to migrate your JanitorAI characters to a new platform

JanitorAI has no built-in export button — but as of 2026 there are three working ways to get your characters out, and one of them is a free open-source tool that pulls your entire library (including chats) in a single run. This guide covers which method fits your situation, which destination platform fits which kind of character, and the field-by-field copy process if you'd rather do it by hand.

Reality check: If you only have 3-5 characters you actually return to, manual copy-paste takes 15 minutes total. If you have 20+, install the free tool — it's worth the 10-minute setup.

Which platform fits your characters?

Before you start moving anything, pick the right destination. Different platforms are better at different kinds of characters. A persona that thrives on CrushOn may feel flat on Candy.AI, and vice versa. Match the character to the platform built for it.

Your character is...Best destinationWhyMigrate
Detailed text persona, NSFW, multi-scenarioCrushOn AIClosest 1:1 field structure to JanitorAI; persona, scenario, example dialogue, greeting all map directly. Free tier real.Start →
Free-tier focused, simple persona, casual roleplaySpicyChatToken-allowance free tier with no daily message cap if you stay light. Field structure also maps directly from JanitorAI.Start →
Anime / long-storytelling personaJoyland AIHas extra narrative-context fields some characters benefit from; story-mode UI better for slow-burn.Start →
Image-attached scenes, picture-driven roleplayCandy.AINative image gen in chat. Custom characters are shallow — pick the closest roster character instead of importing.Start →
Image-first, generated visuals matter mostDreamGFImage-first companion. Same as Candy — roster pick, not import. Best for users whose JanitorAI use was 'request a pic, chat around it'.Start →
One persistent persona used emotionally for monthsReplikaDifferent product entirely. Single persona model with shared memory across weeks. Build one Rep, not a library.Start →

The 3 working migration methods

Pick the one that matches your situation. All three are free. They differ in how much setup they need and how many characters they handle.

MethodBest forSetup timeWhat it moves
Manual copy-paste3-5 favorite characters, no install, fastest path0 minPersona, scenario, dialogue, greeting (you re-type)
JAIPA (open-source bulk exporter)20+ characters, recovering deleted bots, full chat history~10 min (Python + Chrome)Characters, tags, chats, memory, personas, settings → Character Card V3
Ägir frontendWant a new chat home with built-in import~5 min (web app)Characters via jannyai.com mirror; chat history from janitor

Method 1 — Manual copy-paste (the simplest)

Open your JanitorAI character pages in separate tabs. For each one, copy the five fields below into the new platform's character creator. Most users only have 3-5 characters worth keeping, so this is 15-20 minutes of work and zero software to install.

Method 2 — JAIPA (free, open-source, bulk)

JAIPA (Janitor AI Personal Archiver) is a free open-source Python tool that exports your full JanitorAI library in one run. It pulls characters, tags, chat history, chat memory, personas, and generation settings, and saves everything in Character Card V3 format — the standard format that SillyTavern and most other modern frontends import directly.

It also recovers chats from characters that have since been deleted or privated, which is a problem manual copy-paste can't solve. The output folder structure is set up to drop directly into SillyTavern's data/user/ folder, so SillyTavern users can do a one-step migration after running it.

Repo: github.com/BlitzenCats/JAIPA (MIT license). Requires Python and Chrome. The README has install steps. Maintained by an active mod of the JanitorAI migration community; respects an opt-out list for creators who don't want their bots archived.

Method 3 — Ägir (web frontend with built-in import)

Ägir is a free, open-source roleplay frontend with native JanitorAI import. It downloads characters via jannyai.com (a public mirror that also indexes deleted JanitorAI bots) and imports your existing chat history from janitor. Self-hosted or run online at milesvii.github.io/agir. Repo: github.com/MilesVII/agir.

Right pick if you want to skip the "pick a destination platform" decision entirely — Ägir is the destination. Bring-your-own-LLM-provider model: you supply an API key (OpenRouter, DeepSeek, OpenAI, Anthropic) and chat through Ägir's UI.

Field mapping cheat sheet (for manual)

Where to paste each JanitorAI field on each platform's character creator. Skip this if you used JAIPA or Ägir — they map fields automatically.

JanitorAI fieldCrushOnSpicyChatJoyland
NameNameNameName
Description / PersonaPersonaPersonalityDescription
ScenarioScenarioScenarioStory setting
Example dialogueExample messagesExample dialogueSample chat
First message / GreetingGreetingFirst messageOpener
TagsTagsTagsGenres

What you can't migrate (and the workaround)

Profile images don't always transfer cleanly. Most destination platforms either generate their own or let you re-upload. Save the source images before you switch.

Chat history is harder. CrushOn, Candy.AI, SpicyChat, Joyland, DreamGF — none of them import external chat histories. JAIPA and Ägir are the only two routes that preserve chats, and both target SillyTavern-compatible or Ägir-native destinations rather than the consumer platforms above. Translation: if chat history matters to you, your destination is SillyTavern (via JAIPA) or Ägir, not a hosted consumer platform.

If your character was tuned for a specific model

If your JanitorAI character was tuned for a specific model (DeepSeek, Claude, GPT), the same persona text will produce different results on the new platform's model. Expect to re-tune the persona slightly — what worked verbatim on DeepSeek may need a small nudge on CrushOn's or SpicyChat's models.

The trick: write personas in plain prose, not jailbreak-style instructions. Generic prose translates better across models than model-specific prompt engineering. If your old persona is full of "[OOC: ignore previous instructions]" type braces, rewrite it as direct character description before pasting.

Cancel your bring-your-own-API subscriptions

If you used JanitorAI with OpenRouter or DeepSeek API, cancel those subscriptions when you migrate to a hosted platform. CrushOn, SpicyChat, Joyland, Candy.AI, and DreamGF all ship their own model — none of them require bring-your-own-API.

Easy savings: most JanitorAI BYOA users were spending $5-15/mo on OpenRouter credits. That goes away the moment you fully migrate to a hosted platform. (If you migrate to SillyTavern via JAIPA or to Ägir, you'll still need an API provider — those are bring-your-own-LLM frontends.)

Which method should you pick?

Pick manual if you have 3-5 characters and your destination is a hosted platform like CrushOn, SpicyChat, or Joyland. Fastest, no install.

Pick JAIPA if you have 20+ characters, want chat history preserved, want to recover chats from deleted bots, or your destination is SillyTavern. Best automation but needs Python + Chrome.

Pick Ägir if you want to skip the destination-platform decision entirely and use a self-hosted frontend with built-in JanitorAI import. Bring your own LLM API key.

Whichever method you pick, the destination-platform fit table at the top of this page is still the call to make first. Move 1-2 favorites first, chat for a day, confirm the platform feels right, then move the rest.

FAQ

Does JanitorAI have a character export feature?

No native export. But as of 2026 there are working third-party tools (JAIPA, Ägir) that export your full character library and chat history without JanitorAI's cooperation.

Is there a free tool that exports my JanitorAI characters in bulk?

Yes — JAIPA (Janitor AI Personal Archiver). Free, MIT-licensed, open source. Exports characters, tags, chat history, personas, and generation settings to Character Card V3 format. Repo: github.com/BlitzenCats/JAIPA. Requires Python and Chrome to run.

Can I move my JanitorAI chat history?

Yes if you use JAIPA or Ägir. No if you use a hosted platform like CrushOn, Candy.AI, SpicyChat, Joyland, or DreamGF — none of them import external chat histories. If chat history matters, your destination is SillyTavern (via JAIPA) or Ägir.

How long does manual migration take?

About 3 minutes per character. Most users only have 3-5 characters worth migrating, so figure 15-30 minutes total. If you have 20+ characters, JAIPA's 10-minute setup pays for itself.

Will my character feel the same on a new platform?

Mostly. Expect minor drift if your JanitorAI character was tuned for a specific model. A 5-minute test chat usually surfaces what needs adjustment to the persona text.

Which platform makes character import easiest?

CrushOn AI and SpicyChat both have full character creators with field structures very similar to JanitorAI. CrushOn is the easiest direct 1:1 manual migration. For bulk import via Character Card V3, SillyTavern is the smoothest destination.

Should I migrate to Candy.AI or DreamGF?

Only if your JanitorAI use case was image-driven. Both have shallow custom-character creation — you pick from a curated roster instead of importing. If you spent more time on text persona than on attached images, go to CrushOn or SpicyChat instead.

Can JAIPA recover characters I no longer have access to?

Yes, partially. JAIPA can recover chats from characters that have since been deleted or privated by their creators, as long as you previously chatted with them. It can't recover characters you never interacted with.

Bottom line

Migration is no longer a manual-only slog. For 3-5 favorites, copy-paste into CrushOn or SpicyChat takes 15 minutes. For larger libraries — or if chat history matters — JAIPA exports the whole thing into Character Card V3 format in one run, and SillyTavern or Ägir takes it from there. The destination platform decision (top of this page) still drives the choice; the migration method just removes the friction once you've picked one.

Related