Best Companions AI

Glossary

Character Card

A character card is a file that describes an AI roleplay character in a community JSON format (name, description, personality, scenario, greeting and example dialogue), usually embedded in a PNG image so one file carries both the portrait and the definition. Three versions exist, V1, V2 and V3, and apps such as SpicyChat and CrushOn.AI import cards from other platforms.

Checked October 20, 2026Updated October 20, 2026How we review

Quick answer

  • A character card stores a roleplay character as JSON: name, description, personality, scenario, first message and example dialogue.
  • Three versions: V1 (the de facto format as of May 4, 2023), V2 (validated May 17, 2023) and V3 (CCv3, adds assets and .charx bundles).
  • The specs are volunteer-written on GitHub, not a standards-body standard, and field support varies by app.
  • SpicyChat imports Character.AI card files (JSON or PNG) and CrushOn.AI imports JSON; most other apps we cover document no card import.

What Is a Character Card?

A character card is a JSON object that describes a roleplay character, and it is usually embedded in a PNG image so a single file holds the portrait and the definition. SillyTavern's documentation calls it "a collection of prompts that set the behavior of the LLM" and says a card can hold "an abstract scenario, an assistant tailored for a specific task, a famous personality or a fictional character".

Think of it as a portable character prompt with labeled fields; writing advice is in our guide to writing a character prompt.

Character Card V1, V2 and V3 Compared

V3 is described as a superset of V2 except for changed or removed fields.

VersionIdentifierFieldsEmbedding
V1De facto format, as of May 4, 2023 (spec)name, description, personality, scenario, first_mes, mes_exampleJSON file (discouraged) or base64 JSON in PNG/APNG metadata
V2chara_card_v2, spec_version 2.0 (spec)V1 fields plus creator_notes, system_prompt, post_history_instructions, alternate_greetings, character_book, tags, creator, character_version, extensionsBase64 JSON in a PNG/APNG metadata field named chara
V3chara_card_v3, spec_version 3.0 (spec)V2 fields plus assets, nickname, creator_notes_multilingual, source, group_only_greetings, creation_date, modification_date; lorebook objectPNG/APNG tEXt chunk named ccv3, JSON file, or a .charx ZIP archive

V1 fields are plain strings that default to empty. In text, {{char}} or <BOT> becomes the card's name and {{user}} or <USER> becomes the user's display name.

What the Fields Do

V2 added the fields frontends care about most. By default, system_prompt replaces the user's global system prompt unless it is empty, and post_history_instructions does the same for the "jailbreak" setting; both support an {{original}} placeholder. The alternate_greetings array holds extra first messages that frontends must offer as swipes. The creator_notes field must not be used inside prompts. The extensions field takes arbitrary key-value pairs, and unknown keys must be preserved.

The optional character_book is a lorebook of extra world facts: entries with keys, content and an insertion order, plus book settings such as scan_depth and token_budget. V3 changes it to a lorebook object and adds fields such as use_regex.

How PNG Embedding Works

V1 and V2 store the card as a base64 JSON string in a text metadata field of a PNG or APNG file (the V1 document capitalizes it as Chara, V2 uses chara), so the picture displays normally while the data rides along. V3 uses a tEXt chunk named ccv3 with base64 UTF-8 JSON. Applications should prefer ccv3 over chara when both exist. V3 also defines a .charx ZIP with card.json at the root plus the assets it references.

Character Cards in Apps

  • SpicyChat: imports Character.AI card files in JSON or PNG. Its docs do not say which spec version they follow. See the SpicyChat review.
  • CrushOn.AI: lets you import a character from another platform as a JSON file. See the CrushOn.AI review.
  • Janitor AI: we found no card import documented, but its fields (personality, scenario, initial message, example dialogue) resemble card fields. See Janitor AI.
  • Character.AI: its Character Definition (up to 32,000 characters) uses {{char}} and {{user}} placeholders and allows up to five extra greetings, similar to alternate_greetings. We found no card export documented.
  • Muah AI: its community characters browser lists card import, format not stated.
  • Local tools: SillyTavern is built around cards, and KoboldCpp imports Tavern character cards.

Cards from public hosts can contain adult or unlawful content, so check a card before importing it. See also apps with custom characters, how to build an AI character and the rest of the glossary.

FAQ

Is the character card format an official standard?

No. The specifications are maintained by volunteers on GitHub, not by a standards body, and apps support individual fields differently.

Can I import a character card into an AI companion app?

SpicyChat documents importing Character.AI card files (JSON or PNG) and CrushOn.AI documents JSON import. Most other apps we cover document no import, so build the character from the card's fields by hand.

What is the difference between V2 and V3?

V3 keeps the V2 data fields, adds assets, a nickname, multilingual creator notes, source links, group-only greetings and dates, and introduces the ccv3 PNG chunk and the .charx bundle.

Sources

Official pages and store listings we read for this page (last check October 20, 2026).

  1. github.com: Character Card V1 specification
  2. github.com: Character Card V2 specification
  3. github.com: Character Card V3 specification (MIT repository)
  4. docs.sillytavern.app: SillyTavern documentation: what it is, hardware, character cards
  5. raw.githubusercontent.com: KoboldCpp README
  6. docs.spicychat.ai: Character creation fields
  7. aiwiki.crushon.ai
  8. help.janitorai.com: Character creation fields
  9. support.character.ai: Character definition limit
  10. muah.ai: Official user guide, reviewed October 3, 2026

Menu

App reviews

Nomi logoNomiKindroid logoKindroidReplika logoReplikaSpicyChat logoSpicyChatCandy AI logoCandy AIJanitor AI logoJanitor AICrushOn.AI logoCrushOn.AINastia AI logoNastia AI

Up and down to move, Enter to open, Esc to close.