Labs · Card studio
A character card editor
that checks while you type.
Create a card from scratch or drop in a PNG / JSON / .charx. Edit every field and the embedded lorebook with live token counts, watch the checkup sidebar catch dead entries and broken macros as you write, and export a v2/v3 JSON or PNG card when it’s clean. The file never leaves your machine.
Drop a character card here, or click to choose
.png · .json · .charx
The whole studio runs in your browser — nothing uploads, nothing is stored server-side; edits auto-save locally in this browser.
The editor will appear here.
Where the editor's judgment comes from
The parser and every checkup rule are the same ones behind our card checkup page and the Foreverse import pipeline — verified against 34 real community card files (V1 flat relics, a 97,602-character greeting, a 126-entry lorebook, dual-chunk PNGs) and checked against SillyTavern 1.18 source behavior. The sidebar isn't a second opinion; it's the import chain's opinion, running on every keystroke.
The macro preview uses our port of the app's macro engine — the same three-pass expansion that handles {{char}}, {{user}}, {{random}}, variables and escapes. PNG export writes chara / ccv3 text chunks byte-by-byte with CRC recalculation, stripping any stale card data the base image carried. Spec switching runs through the same converter as our card format tool, so v3→v2 losses are listed, not silently swallowed.
What it doesn't do
It edits structure, not quality — whether the persona holds up is a writing question no sidebar can answer. V3 assets, group-only greetings, embedded regex scripts and system_prompt are displayed and preserved but not editable here; the app's editor covers them in full. .charx files import fine but export as JSON/PNG only — repacking the asset bundle needs the app.
Token counts are character-ratio estimates, not a tokenizer; real models differ by 20–30%. And drafts live in this browser only — export the file when it matters.
FAQ
Is my card uploaded while I edit it?
No. Parsing, editing, the live checkup, macro preview and both exports all run in your browser — nothing is sent to any server. Drafts auto-save to this browser's local storage on your machine, not to an account.
What goes in, and what comes out?
In: PNG card images, JSON (V1 flat legacy, V2, V3), and .charx containers — V1 cards are promoted to the V2 structure on import, the standard behavior across modern frontends. Out: v2 or v3 JSON, or a PNG card built from the original image, an image you upload (JPG/WebP transcoded locally), or a generated placeholder. Repacking .charx isn't supported — the web can't touch its bundled assets.
How is this different from the card checkup tool?
Same rules, different posture. The checkup is read-only: drop a file, get a report. The studio runs those rules continuously while you edit — fix a dead lorebook entry and the red item disappears as you type. If you only want a verdict on a downloaded card, the checkup page is faster.
Do fields the editor doesn't cover get lost?
No. Everything the editor doesn't touch — extensions, embedded regex scripts, V3 assets, nicknames, insertion orders, even non-standard keys other tools wrote — is carried into the export byte-for-byte. The 'carried along' panel lists what your card has. The one deliberate exception: downgrading v3 to v2 removes v3-only fields, and the studio lists exactly what gets dropped and asks first.
Where do drafts live, and can I lose work?
Edits auto-save to your browser's localStorage about half a second after you stop typing, and the page offers to restore the draft next time you open it. Two honest limits: drafts don't follow you across browsers or devices, and a card too large for localStorage (rare, several MB of text) can't auto-save — the toolbar says so instead of pretending.