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.
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 destination | Why | Migrate |
|---|---|---|---|
| Detailed text persona, NSFW, multi-scenario | CrushOn AI | Closest 1:1 field structure to JanitorAI; persona, scenario, example dialogue, greeting all map directly. Free tier real. | Start → |
| Free-tier focused, simple persona, casual roleplay | SpicyChat | Token-allowance free tier with no daily message cap if you stay light. Field structure also maps directly from JanitorAI. | Start → |
| Anime / long-storytelling persona | Joyland AI | Has extra narrative-context fields some characters benefit from; story-mode UI better for slow-burn. | Start → |
| Image-attached scenes, picture-driven roleplay | Candy.AI | Native image gen in chat. Custom characters are shallow — pick the closest roster character instead of importing. | Start → |
| Image-first, generated visuals matter most | DreamGF | Image-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 months | Replika | Different product entirely. Single persona model with shared memory across weeks. Build one Rep, not a library. | Start → |
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.
| Method | Best for | Setup time | What it moves |
|---|---|---|---|
| Manual copy-paste | 3-5 favorite characters, no install, fastest path | 0 min | Persona, 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 frontend | Want a new chat home with built-in import | ~5 min (web app) | Characters via jannyai.com mirror; chat history from janitor |
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.
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.
Ä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.
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 field | CrushOn | SpicyChat | Joyland |
|---|---|---|---|
| Name | Name | Name | Name |
| Description / Persona | Persona | Personality | Description |
| Scenario | Scenario | Scenario | Story setting |
| Example dialogue | Example messages | Example dialogue | Sample chat |
| First message / Greeting | Greeting | First message | Opener |
| Tags | Tags | Tags | Genres |
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 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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.