Night strategist
Rei Kurosaki
A cool, dangerous game-maker who suits suspenseful banter, pursuit scenes, and sharp verbal chemistry.
Janitor AI Lorebook migration
Export a Janitor AI Lorebook you own, map its keys and entries to SillyTavern World Info, import it safely and test activation without scraping private content.
12 min read
Quick answer
You can migrate a Janitor AI Lorebook only when you own it, it is openly reusable or the creator gave permission. Save the visible source entries, map triggers to SillyTavern key arrays, lore text to content and behavior settings to World Info fields, then import and run an eight-turn activation test. A closed or private Lorebook is not an invitation to scrape, guess trigger words or reconstruct hidden text.
Featured companions
Three characters refresh on each visit. Cards play a promo video when available and otherwise show the character image.
Night strategist
A cool, dangerous game-maker who suits suspenseful banter, pursuit scenes, and sharp verbal chemistry.
Desert stargazer
A warm tent beneath desert stars creates an intimate but story-led setting for travelers and secrets.
Onmyoji exorcist
Kyoto occult mystery, protective chemistry, and supernatural rituals give every chat an immediate plot.

Janitor AI Lorebook export and SillyTavern migration guide
Searches for Janitor AI Lorebook export, “extractor” and “to SillyTavern” hide two different tasks. The legitimate task is moving a book you own or may reuse without losing activation behavior. The illegitimate task is pulling a creator’s closed definitions or guessing hidden trigger words. This guide solves the first and refuses the second. It extends the Janitor AI Lorebook guide with a migration workflow and complements the broader SillyTavern character import guide without repeating either page.
A visible character page does not automatically make every linked Lorebook, script or definition reusable. First identify the owner, visibility and license. Use Janitor AI’s current export or copy controls when they are available for your own content; interface labels can change, so do not promise a universal download button. If the book is closed, private or deliberately hidden, stop. Trigger guessing, prompt extraction and browser scripts that bypass creator controls are not a migration workflow.
| Source state | May you migrate it? | Correct action |
|---|---|---|
| Your own Lorebook | Yes | Export or copy visible entries, then verify every field |
| Open/public Lorebook with reuse permission | Yes, within its license | Keep attribution and license notes |
| Creator sent you a file or explicit permission | Yes, within that permission | Preserve the original and migration record |
| Closed/private Lorebook | No | Ask the creator; do not guess triggers or extract hidden text |
| Public character with hidden Lorebook | No automatic right | Migrate only the fields the creator made reusable |
Preserve the source before editing. A screenshot is not enough because it loses arrays, disabled state and activation controls. Save structured data when the platform exposes it; otherwise make a controlled table from the visible fields you are authorized to copy. Keep primary keys separate from secondary conditions, and distinguish a constant entry from a keyword entry. Count everything before and after conversion so silent loss is measurable rather than discovered halfway through a story.
SillyTavern calls Lorebooks “World Info.” Its official documentation describes entries as dynamically inserted prompt material activated by keys, with separate character, persona, chat and global scopes. Map by behavior instead of copying numeric values blindly. A Janitor label belongs in a human-readable comment, not necessarily in prompt content. Injection position, recursion, probability and selective matching differ enough that every advanced entry needs manual review.
| Janitor concept | SillyTavern World Info field | Migration check |
|---|---|---|
| Entry name or label | comment | Human-readable editor label; not prompt content |
| Trigger words | key | Array of primary activation keys |
| Additional conditions | keysecondary | Review selective matching rather than flattening |
| Lore text | content | Must be complete enough to stand alone when activated |
| Always active | constant | Use sparingly because it always spends context |
| Priority | order | Preserve relative order, then test collisions |
| Injection location | position / depth | Map by behavior, not only by numeric value |
| Enabled state | disable | Inverted Boolean: disabled means disable=true |
| Chance | probability / useProbability | Verify 100% entries before adding randomness |
Start with one non-sensitive entry and a small JSON file, not a bulk conversion. The example below demonstrates common SillyTavern World Info fields without containing real creator text. Keep each content block standalone because key names and editor labels are not inserted into the model context. Validate JSON syntax, use unique integer IDs and preserve unknown extension data when a trusted exporter includes it. Do not paste executable Janitor scripts into lore text and assume they will run.
{
"entries": {
"0": {
"uid": 0,
"key": ["Aster Harbor", "harbor council"],
"keysecondary": [],
"comment": "Aster Harbor",
"content": "Aster Harbor is governed by a five-seat council.",
"constant": false,
"order": 100,
"position": 0,
"disable": false,
"probability": 100,
"useProbability": false,
"depth": 4
}
}
}
Import the JSON through the current SillyTavern World Info interface, then open the editor before binding it. Confirm entry count, Unicode text, keys, enabled state, probability and order. Bind it to the narrowest scope that needs it. Character Lore follows one character across chats; Chat Lore stays in one branch; Persona Lore follows the active persona. Only the primary character Lorebook is embedded when exporting a character card, so keep standalone backups too.
| Binding | Scope | Use it when |
|---|---|---|
| Character Lore | Every chat with one character | The facts belong to that character or world |
| Chat Lorebook | One conversation only | The facts are specific to a branch or campaign |
| Persona Lorebook | Every chat using one persona | The facts describe the user role or persona |
| Global World Info | Any selected chat | The book is intentionally reusable across characters |
A successful import is not proof of behavioral parity. Run the eight turns below with a disposable chat and inspect the final prompt or World Info activation display when available. Test absent keys as carefully as present keys: an entry that fires everywhere is just permanent context. If an entry never fires, check key spelling, scan depth, case and whole-word settings before rewriting the content. If too many entries fire, reduce broad keys and check recursive activation.
| Turn | Test | Pass condition |
|---|---|---|
| 1 | Mention no keys | Non-constant entries stay absent |
| 2 | Mention one exact primary key | Only its intended entry activates |
| 3 | Use different letter case | Behavior matches the configured case rule |
| 4 | Use a partial word | Whole-word behavior matches the setting |
| 5 | Trigger two related entries | Order and budget produce coherent context |
| 6 | Mention a secondary condition | Selective logic matches the original intent |
| 7 | Change scene and mention the key again | Entry still activates without duplicating prose |
| 8 | Reopen the chat | Character or chat binding remains attached |
Manual migration is best for a valuable, authorized book whose behavior you intend to maintain. Rebuilding a small world can be faster than repairing an opaque converter, especially when platform-only scripts or positions are involved. The Chub AI character card guide explains another portable-card workflow. If your real goal is simply to choose a hosted role and continue chatting rather than maintain files and trigger logic, compare the LumiChat character library. LumiChat is separate and cannot unlock Janitor AI content.
You can export or copy your own content and openly reusable or authorized content using the current controls available to you.
No. Ask the creator for a file or permission; do not scrape, guess triggers or reconstruct hidden entries.
Formats and platform features differ. Treat it as a field-mapping conversion and verify the imported World Info entry by entry.
Primary triggers map to key arrays. Secondary conditions need selective-logic review rather than being merged into one text string.
Use Character Lore for one character, Chat Lore for one branch, Persona Lore for one user role or Global World Info for intentional reuse.
Check enabled state, exact keys, scan depth, case sensitivity, whole-word matching, budget and binding.
Not automatically. Script logic and lore content are different; review or rebuild supported behavior instead of pasting executable code.
No. LumiChat is a separate hosted character platform and does not bypass another creator’s permissions.
Continue in LumiChat
Browse active characters, choose a personality that fits, and start chatting in seconds.
Continue the conversation naturally
Portable AI character-card workflow
A practical Chub card workflow from search and creator checks to format choice, private import and a repeatable chat test.
Character card field guide
A format-first reference for knowing what is inside a character card before you import, edit or share it.
Character card import guide
LumiChat accepts SillyTavern JSON cards and real PNG cards that contain chara or ccv3 metadata. A normal portrait renamed to .png is not a character card.
World memory guide
A lorebook is conditional world knowledge, not unlimited long-term memory. Good entries inject one relevant fact when a precise key appears; bad entries fire constantly or never fire.