Age Verification Required

CharaVault contains user-generated character cards that may include mature or explicit content.

You must be at least 18 years of age to access this site.

By entering, you confirm you are of legal age in your jurisdiction.

CharaVault

CharaVault

Carrying the Torch of Character Archive

In January 2026, Character Archive shut down after two years of preserving AI character cards for the community. CharaVault was built on that foundation — but we're not a mirror. We've added user accounts, content moderation, duplicate detection, and a review system to keep the archive clean and useful as it grows. The original dataset lives on here, alongside new community uploads.

--
Character Cards
--
SFW Cards
--
Creators

Disclaimer

CharaVault is a preservation archive for AI character cards. Character card platforms come and go — CharaVault exists to ensure the community's work isn't lost when they do. Originally seeded from Character Archive (2024–2026), we've built on that foundation with active moderation, a public API, and a user-friendly interface to make the archive as accessible and usable as possible. All content is user-generated or collected from public sources and provided strictly on an "as-is" basis. CharaVault does not claim ownership of any character cards hosted on this platform and is not affiliated with or endorsed by the original creators of any characters depicted.

This site may contain mature or explicit content and is intended for users aged 18 and older. By accessing CharaVault, you confirm that you are of legal age in your jurisdiction. CharaVault is not responsible for how users interact with or utilize the content available on this platform.

If you are the creator of a character card and would like it removed, or if you have any concerns regarding content hosted on this site, please contact us at [email protected]. We will make every effort to address your request promptly.

Terms of Service · Privacy Policy

My Uploads

Cards you've uploaded to CharaVault

My Favorites

Cards you've bookmarked for quick access.

Dashboard

Downloads

Disk Usage

All Cards

Browse all cards including those pending AI scan. Use filters to find unscanned cards.

User-uploaded cards awaiting moderator approval. Cards are hidden from public until approved.

Loading review queue...

Real Person Queue

Cards flagged as depicting real people that are also marked NSFW. Review and approve (keep) or delete.

Loading...

Prohibited Content Log

Cards automatically deleted

Loading...

User Management

Manage registered users, change roles, or remove accounts.

Loading users...

Ban Management

Ban email addresses or IP addresses from accessing CharaVault.

Ban Email

Ban IP Address

Banned Emails

Banned IPs

Audit Log

Security events and user activity.

Loading audit log...

AI Moderation

Background AI scanner using KoboldCPP to review card content.

Loading AI moderation status...

Live Activity

Lorebooks

0 Total
0 NSFW
0 Creators
0 Entries

Top Tags

Loading tags...

Account Settings

Profile

Username Email Role Member since

Email Verification

Two-Factor Authentication

App Passwords

For apps that don't support 2FA (SillyTavern, PocketTavern, LocalTavern, etc.). Each password grants full account access — keep them safe.

Loading...

Change Password

Recent Login History

Loading...

Danger Zone

Permanently delete your account and all associated data. This action cannot be undone.

Smart Import

Import cards from a source directory. Source files are never modified or deleted.

Scanners

Run maintenance scanners against the card database. All scanners support dry-run mode (no changes written).

NSFW Scanner
Tags cards as NSFW via text patterns and NudeNet image detection. Only scans non-reviewed SFW cards.
Quality Control
DESTRUCTIVE — deletes files
Deletes cards below the minimum token count.
Token Count
Computes token_count, recommended_tier, and card_style for cards.
File Size Backfill
Backfills the file_size column for cards missing this data.
Embedded Lorebook Extractor
Extracts character_book entries from card PNG metadata and indexes them as lorebooks.
Cleanup Private Cards
DESTRUCTIVE — deletes files
Finds and deletes cards where content fields contain only [Private] or $XX hex placeholders.
Thumbnail Generator
Strips tEXt/iTXt/zTXt metadata from card PNGs to create lightweight display thumbnails.

Recent Jobs

No jobs yet.
Note: This PocketTavern (Android app) is not affiliated with or related to pockettavern.com — a separate web-based AI chat app. Two projects, same name, built independently. We don't see any reason you wouldn't want to check them both out.
★ v2.2.5 Now Available — Bug Fixes, Character Storage Browser & More

PocketTavern

Your AI Characters, Anywhere

A fully standalone Android app for chatting with AI characters. Connect to 30+ LLM backends — local or cloud — with no middleman server required. Browse CharaVault, create characters, and chat anywhere.

Android 8.0+Minimum Version
FreeNo In-App Purchases
Source AvailableMIT + No Commercial Use
No AccountRequired to Chat
ST CompatibleImport Your Library
🪟 PocketTavern for Windows 10 Mobile ALPHA

A C# UWP port targeting Windows 10 Mobile (Lumia devices). Most core features are working — see differences from the Android version below.

Differences from Android ▼

✓ Working

  • Core chat & streaming
  • Group chat
  • CharaVault browsing & import
  • Characters & PNG card import
  • ST Import (backup zip)
  • Themes (Fire & Ice, Ember, Plum, Sand & Sea)
  • Presets & templates
  • TTS (Chatterbox / OpenAI-compatible)
  • Image generation (avatar & settings test gen)
  • Regex rules
  • World Info / Lorebooks (read-only)
  • Author's Note, Persona
  • Quick Reply settings
  • JS Extensions (enable/disable per-extension)
  • Backup & export

✗ Not yet / known issues

  • Expression sprites (broken)
  • Image creation in chat (broken)
  • .charx import (WIP)
  • RisuRealm browser (WIP)
  • Long-Term Memory
  • Auto-Translation
  • Multiple personas
  • Connection profile editing
🤖

30+ LLM Backends

KoboldCPP, Ollama, OpenAI, Claude, DeepSeek, Gemini, OpenRouter & more — local or cloud.

🧠

Long-Term Memory

Automatically summarizes old messages so the AI remembers facts across sessions beyond the context window. New in v2.2.0.

🏰

CharaVault Built In

Browse and one-tap import characters directly from CharaVault — no browser needed.

🔒

Privacy First

Everything stays on your device. No analytics, no data collection, no accounts required.

Coming Soon
🖐️

PocketTavern for webOS HP TouchPad • webOS 3.0.5

A native Enyo port for the HP TouchPad. AI character chat on webOS — because why not.

📟

PocketTavern for Windows Mobile WM 6.5

A native WM6.5 client bringing AI character chat to Windows Mobile hardware.

Built by Starkka15 & Kuma3D

Chat & AI

30+ LLM Backends

Connect to KoboldCPP, Ollama, OpenAI, Claude, Gemini, DeepSeek, Groq, OpenRouter, and dozens more — local or cloud. No middleman server needed.

KoboldCPPOllamaOpenAIClaudeDeepSeekGeminiGroqOpenRouterTabbyAPIvLLM

Group Chats

Bring multiple AI characters together. Narrator sets the scene, characters respond in-character with stop sequences preventing cross-talk. Multiple sessions per group, custom system prompt.

Chat Features

Streaming responses, swipe alternatives, message editing & regeneration, Continue, Auto-Continue, Author's Note, Long-Term Memory, expression sprites, full Markdown rendering.

Text-to-Speech

Android built-in TTS or any OpenAI-compatible TTS server (Kokoro, AllTalk, XTTS). Per-character voice overrides and multiple filter modes.

Image Generation

Generate avatars and in-chat images via SD WebUI/Forge, ComfyUI, DALL-E, Stability AI, Pollinations, or HuggingFace. Scene Painter creates context-aware images from the chat.

📚

Characters & Content

CharaVault Built In

Browse, search, and import character cards and lorebooks directly from CharaVault. One-tap import, full card previews, NSFW filtering — no browser needed.

Create & Edit Characters

Full character editor: description, personality, scenario, greetings, example dialogue, system prompt, embedded lorebook. AI-assisted generation. Upload to CharaVault directly from the app.

World Info & Lorebooks

Attach lorebooks globally, per-character, or per-persona. Keyword & regex activation, secondary keys, recursive scanning, token budgets, CharaVault lorebook import.

SillyTavern Compatible

Characters, chats, and lorebooks use SillyTavern-compatible formats. Import your entire library from a server or folder export — nothing is locked in.

.charx Import & RisuRealm

Import RisuAI .charx cards directly. Expression sprites are extracted and displayed automatically. Browse RisuRealm in-app and import cards with one tap.

Auto-Translation

Import a non-English card and PocketTavern offers to translate it using your active LLM. Preserves template variables and sprite tags verbatim.

🎨

Customization & Power

Themes

Import SillyTavern themes or build your own. Animated particles, custom backgrounds, theme audio, and ZIP theme bundles with full visual control.

Extensions & JS API

Built-in Quick Reply, Regex Filters, and Token Counter. Build custom extensions with the JavaScript API — prompt injection, dialogs, image gen, panel registration.

96+ Bundled Templates & Macros

Instruct templates, context templates, sampler presets, and system prompts from SillyTavern's open-source library. Full prompt order editor. ST-compatible macro system: {{roll:NdN}}, {{idle_duration}}, {{lastMessage}}, and more.

Privacy First

Everything stays on your device. PocketTavern talks directly to your LLM — no cloud services, no analytics, no required accounts. Your chats never leave your phone.

App Screenshots

All screenshots from v2.2.0 on Android.

Home
HomeMain navigation
Characters
CharactersYour character library
Recent Chats
Recent ChatsPick up where you left off
Group Chats
Group ChatsMultiple characters in one conversation
Browse CharaVault
Browse CharaVault52,000+ character cards
Create Character
Create CharacterFull editor with AI generation
Settings
SettingsAPI, personas, appearance & more

Requirements

Android Version8.0 (Oreo) or later
Storage~50 MB app + character storage
InternetOnly for cloud APIs or CharaVault browsing
PriceFree, no in-app purchases
AccountNot required — CharaVault login is optional

Installation

  1. 1
    Download the APK

    Go to the GitHub Releases page and download the latest app-release.apk.

  2. 2
    Allow Unknown Sources

    Android will prompt you to allow installation from this source. Tap Settings and enable it for your browser or file manager.

  3. 3
    Configure Your LLM

    Open PocketTavern → Settings → API Configuration → enter your backend URL and API key if required.

  4. 4
    Get Characters

    Tap Browse CharaVault to find and import cards in-app, or import your own PNG/JSON cards from local storage.

  5. 5
    Start Chatting

    Tap any character → Start Chat. That's it.

Already Using SillyTavern?

Import your entire library — characters, chats, and lorebooks — in one step. Go to Settings → Import from SillyTavern and point it at your server or a ZIP export.

Version History

Actively developed. Latest: v2.2.5

v2.2.5 — Bug Fixes & Character Storage Browser  Latest
Bug Fixes
  • Deleting a character now fully cleans up all associated chat history and room records
  • Card extensions now correctly enable/disable when switching characters
  • Extension-driven actions no longer bleed across character switches
  • Narrator/system message handling made more consistent
Character Storage Browser
  • New browser under Settings → Utilities → Character Storage
  • Shows all character PNGs on device with file sizes
  • Flags entries that are on disk but not indexed, or in the DB but missing from disk
  • Delete individual characters with confirmation; Rescan rebuilds the index from disk
Group Chat Improvements
  • Message edit and delete actions in group chats
  • Edit group name and members after creation
  • Image generation support in group chats
  • World info / lorebook injection in group chat context
v2.2.4 — Card Extensions & PT.vars
Card Extensions
  • Character cards can embed JavaScript directly in the PNG — loads automatically when the character is selected
  • Cards with embedded scripts appear in Settings → Extensions → Card Extensions with enable/disable toggle
PT.vars — Per-Chat Variable Store
  • Persistent key/value store scoped to each individual chat, isolated per character
  • Accessible via PT.vars.get/set/delete/increment/decrement from card scripts
  • Can auto-inject all stored variables into the system prompt as a [Current World State] block
Other Changes
  • Export Chat to .jsonl via chat overflow menu
  • Importing duplicate character names now produces Alice_2.png instead of overwriting
  • Streaming scroll now tracks user intent — scrolling up pauses auto-follow; scrolling to bottom resumes it
  • Horizontal swipe now requires a clearly horizontal drag — vertical scrolling no longer accidentally triggers it
v2.2.3 — World Book, Lore Tracking & Group Chat Fix
Shared World Book (beta)
  • Groups now have a persistent lore log injected into every generation — both group and solo chats with any group member
  • Edit directly via overflow menu → World Book
  • /addlore <text> — append a timestamped entry mid-scene
  • /scanlore [N] — AI-assisted extraction from the last N messages with a review dialog before adding
Lore Tracking Field
  • New PocketTavern-only field in the character editor — tells /scanlore what events to watch for
  • Stored in card extensions, invisible to SillyTavern and other tools
Group Chat: OAI Fix
  • Chat completion models (DeepSeek, GPT, Claude, etc.) now receive proper system + user message pairs instead of a single user message
  • Group chat now respects active OAI preset — temperature, max tokens, top_p, penalties were previously ignored
  • Card content limits raised: 3000 / 1200 / 800 chars for description / personality / scenario
v2.2.2 — Custom Theme Builder, BotBooru & Inline Images
Custom Theme Builder
  • New Create Theme screen with HSV color pickers for every color, live split preview, and background image support
  • Avatar shape selector: Circle, Rounded Square, Square
  • Saves themes as SillyTavern-compatible JSON
BotBooru
  • BotBooru added as a third card search source alongside CharaVault and RisuRealm
  • Full embedded browser — browse, log in, and tap Download PNG to import directly
Inline Images in Chat
  • Markdown images ![alt](url) and HTML <img> tags now render inline in chat bubbles
Other
  • “Don't Speak for User” constraint now injected at both system-prompt and post-history levels with stronger wording
  • Model switching for SD WebUI / Forge image generation backend
v2.2.1 — Persona Fixes & Don't Speak for Me
  • Persona avatar is now optional — no longer required to create a persona
  • Don't speak or act for user toggle in Context Settings — instructs the AI to never write dialogue or actions on behalf of your character
  • Placeholder hints added to persona create/edit dialogs
v2.2.0 — .charx Import, Sprites, Long-Term Memory & Macros  
.charx Card Import (RisuAI Format)
  • Import .charx cards directly — no conversion needed
  • Expression sprites embedded in the card are automatically extracted and stored per-character
  • Browse and download cards from RisuRealm (realm.risuai.net) in-app — downloads intercept and import automatically
Auto-Translation
  • After importing a non-English card, a dialog lets you choose which fields to translate using your active LLM
  • Preserves {{user}}, {{char}}, sprite tags, and markdown markers verbatim
  • Failed translations leave the original card untouched
Expression Sprites
  • Characters using RisuAI sprite tags display expression images in a portrait panel above the chat input
  • Panel animates on sprite change, tap to dismiss
Long-Term Memory
  • When unsummarized chat history exceeds ~3,000 tokens, the oldest turns are automatically summarized into a bullet-point memory block by your LLM
  • Memory block is re-injected at the top of every prompt — the AI retains facts across sessions beyond the context window
  • Runs in the background after each AI response, never blocks the chat
  • Toggle on/off in Settings → Context Settings
ST-Compatible Macro System
  • Full macro substitution in all prompt fields and user messages
  • New: {{isotime}}, {{isodate}}, {{time_UTC±N}}, {{idle_duration}}, {{roll:NdN}}, {{lastMessage}}, {{lastUserMessage}}, {{lastCharMessage}}, {{charDescription}}, {{charPrompt}}, and more
  • {{char}} and {{user}} now substitute in the displayed chat bubble, not just the LLM prompt
Bug Fixes
  • Long-term memory summarization: insert placeholder user turn before first assistant message to satisfy strict API ordering requirements
v2.1.5 — nano-gpt Image Generation
Image Generation
  • nano-gpt backend — generate character avatars via nano-gpt's cloud image API
  • Models load automatically from the nano-gpt API (Chroma, HiDream, Flux, and more)
v2.1.4 — Group Chats Overhaul
Group Chats
  • Multi-session history — create, switch, and delete chat sessions per group
  • Chat style: Dialogue (speech only) vs RP (speech + actions)
  • Per-group editable system prompt
  • Narrator opens each new chat by setting the scene
  • Characters respond in first person and never speak for the user
  • Stop sequences prevent characters writing other speakers' dialogue
  • Name detection: address a character by name to have them respond first
  • Streaming scroll follows the bottom of the chat during generation
UI
  • Main screen renamed “Browse CharaVault” (was “Card Search”)
Bug Fixes
  • Fixed HTTP 404 when custom API URL already includes a /v1 suffix
  • API errors now show the parsed error message instead of raw JSON
v2.1.3-beta — Stability & Presets
  • Connection Profiles — save and switch between multiple API configurations
  • OpenAI-compatible sampler preset editor with per-field enable toggles
  • Improved token budget and context management
  • Various bug fixes and performance improvements
v2.1 — Themes & Extensions
  • Full theme system — particles, custom backgrounds, audio, ZIP bundles
  • JavaScript extension API — panel registration, prompt injection, custom dialogs
  • Quick Reply and Regex Filter extensions
  • CharaVault integration — browse and import directly in-app
v2.0 — Complete Rewrite
  • Full rewrite in Jetpack Compose
  • 30+ LLM backends via unified OpenAI-compatible API layer
  • SillyTavern-compatible character, chat, and lorebook formats
  • Image generation via SD WebUI, ComfyUI, and cloud providers
  • Text-to-speech with per-character voice overrides

Frequently Asked Questions

Is PocketTavern free? Are there in-app purchases?
Completely free — no in-app purchases, subscriptions, or paywalled features. The only costs you might incur are from cloud API providers (OpenAI, DeepSeek, etc.) if you choose to use them. Local backends like KoboldCPP and Ollama are free.
Do I need a SillyTavern server to use this?
No. PocketTavern is fully standalone — it connects directly to your LLM backend without any intermediate server. No Node.js, no SillyTavern installation, no PC required. If you have an existing SillyTavern library, you can import it, but it's not a prerequisite.
What LLMs can I use?
  • Local: KoboldCPP, llama.cpp, Ollama, Text Generation WebUI, TabbyAPI, vLLM, Aphrodite
  • Cloud: OpenAI, Anthropic Claude, Google Gemini, DeepSeek, Groq, Mistral, xAI Grok, Cohere, and more
  • Aggregators: OpenRouter, NanoGPT, SiliconFlow, Fireworks, and others
  • Custom: Any OpenAI-compatible endpoint
Are my chats private?
Characters and chat history are stored entirely on your device. PocketTavern only sends data to the LLM backend you configure — no analytics, no telemetry, no third-party data collection. If you use a cloud API like OpenAI, your messages go to that provider per their privacy policy, same as any other client.
Can I import my SillyTavern characters and chats?
Yes. Go to Settings → Import from SillyTavern. Import directly from a running SillyTavern server or a ZIP/folder export. Characters, chats, personas, and lorebooks are all imported. The formats are fully compatible — you can move files back to SillyTavern the same way.
What Android version is required?
Android 8.0 (Oreo, API 26) or later. This covers virtually all phones released in the last 7+ years. The app targets Android 15 and uses modern APIs where available.
Is it open source? Can I contribute?
PocketTavern is source-available on GitHub. The source is free to use, modify, and fork — the only restriction is that you can't sell it. Issues and pull requests are welcome. For questions and feedback, post in the PT General or PT Feedback forums on CharaVault, or join us on Stoat.
Why the no-commercial-use restriction?
PocketTavern is free and always will be. The no-sell restriction exists to prevent someone from taking the code, slapping a new name on it, and charging for it on the Play Store. You can use it, modify it, fork it, and build on it freely — you just can't sell it. We want the app to stay free and open for the community, not become someone else's paid product.
Is PocketTavern AI-generated / vibe coded?

Yes — but not vibe coded in the traditional sense. Claude (Anthropic's AI) is used heavily in development — we're not going to pretend otherwise. But this is not a “prompt and ship” process.

Every change goes through real testing on actual hardware before it ships. Features are verified end-to-end — chat, streaming, backends, import/export, edge cases. The AI is a development tool, not a replacement for understanding what the code actually does.

That said, things slip through — that's what versioning is for. When something doesn't work it gets documented, tracked, and fixed in the next release. Think of it like using a power tool: it speeds things up, but you still need to know how to build something properly or you'll just make a mess faster.

Why support old operating systems like webOS and Windows Mobile?
Honestly? Because old operating systems are fun. There's something genuinely satisfying about getting modern AI running on a 2011 HP TouchPad or a Windows Mobile device that was never supposed to do anything like this. If you've got old hardware gathering dust, maybe this gives it a reason to come back out. Someone out there might find a use we haven't even thought of yet.
How do group chats work?
Group chats let you bring multiple AI characters into a single conversation. A Narrator sets the scene at the start, then characters respond in turn. Address a character by name and they'll respond first. Each group has its own chat sessions, custom system prompt, and activation strategy. Characters never speak for each other or for you.

Security & Privacy Expectations

PocketTavern is designed to be a privacy-respecting, local-first AI chat client. However, no application can guarantee complete security. This page explains what PocketTavern protects against, and what risks still remain.

What PocketTavern Does

  • Stores chats and settings locally on your device
  • Connects directly to your configured AI backend/API
  • Does not require a central PocketTavern account
  • Does not route conversations through PocketTavern-owned relay servers
  • Allows you to choose your own AI providers and infrastructure
  • Is source-available and publicly auditable

What It Tries to Protect Against

Credential Theft from Local Storage

API keys and auth tokens are encrypted using platform-provided secure credential storage — Android Keystore (hardware-backed AES256-GCM) on Android, and Windows Credential Manager on Windows. They are never written to plain files or unprotected settings.

Unnecessary Data Collection

PocketTavern does not intentionally collect analytics telemetry, advertising identifiers, behavioral tracking data, or conversation uploads to developer-owned servers.

Vendor Lock-In

You retain control over your AI provider, your character data, and your local chat history.

What PocketTavern Does NOT Protect Against

Compromised Devices

If your device is rooted, infected with malware, remotely controlled, or physically compromised, local app data may still be accessible.

Third-Party APIs

When using external AI providers (OpenAI-compatible APIs, OpenRouter, Claude, etc.), your conversations are subject to those providers' privacy and logging policies. PocketTavern cannot control remote server logging, provider-side retention, or provider-side security practices.

Malicious Extensions or Community Content

Third-party extensions, plugins, prompts, or character cards may behave unexpectedly or maliciously. Only install content from sources you trust.

Network-Level Monitoring

PocketTavern cannot protect against compromised Wi-Fi networks, ISP monitoring, corporate proxies, or advanced traffic interception attacks.

Advanced Forensics

PocketTavern is not designed to resist nation-state actors, advanced forensic extraction, or targeted exploitation.

Best Practices

  • Use limited-scope API keys where your provider supports it
  • Rotate API keys periodically
  • Avoid installing unknown extensions or character cards from untrusted sources
  • Keep your device and PocketTavern updated
  • Only download PocketTavern from official sources

LocalTavern

Private, On-Device AI Chat

A native iOS app for chatting with AI characters. Run models locally on your iPhone or iPad — no cloud, no accounts, no data collection.

LocalTavern Home LocalTavern Characters LocalTavern Chat LocalTavern CharaVault LocalTavern Settings LocalTavern Editor

On-Device Inference

Run any valid .gguf model locally using llama.cpp — entirely on your device. No internet connection needed once you have your model and characters.

CharaVault Search

Search and browse CharaVault's entire library of character cards and lorebooks directly from the app. Find characters, preview them, and import with a tap.

Character Cards & Lorebooks

Full support for CCv2 and CCv3 character card formats plus lorebooks. Create, modify, and export your own characters with a built-in editor.

iCloud Sync

Encrypted cross-device synchronization via iCloud. Your characters and chats stay in sync across iPhone, iPad, Mac, and Apple Vision — all end-to-end encrypted.

Modern Chat Interface

A polished chat experience with a built-in macro system for dynamic prompts. KV caching enables instant message variations without re-processing the entire context.

Privacy First

No data collection, no accounts required, works completely offline. Everything runs on your device — your characters and conversations never leave your hands.

Getting Started

  1. Download LocalTavern from the App Store
  2. Load a .gguf model or connect to a remote LLM backend
  3. Search CharaVault from within the app, import a character, and start chatting

Requires iOS 18.4 or later. Also available on iPad, Mac (Apple Silicon), and Apple Vision Pro. Free with optional LocalTavern Plus subscription.

Download on the App Store

Built by zepsec industries LLC

CharaVault API

Building an app, bot, or tool that integrates with CharaVault? Everything you need is here.

Base URL https://charavault.net All responses are JSON unless noted.

Browse & Search

No authentication required.

GET /api/cards

Search and browse character cards.

?q=search+term  •  ?tags=fantasy,elf  •  ?creator=name  •  ?nsfw=true|false  •  ?has_book=true|false
?folder=FolderName  •  ?sort=newest|oldest|name_asc|name_desc|most_downloaded|top_rated|token_count_asc|token_count_desc|most_commented
?limit=50 (max 200)  •  ?offset=0
GET /api/cards/{folder}/{file}

Full metadata for a specific card, including description, personality, first message, tags, ratings, and token count.

GET /cards/{folder}/{file}

Download the card PNG file directly. Returns image/png.

GET /api/cards/similar?path=folder/file

Find visually similar cards by image hash.

GET /api/cards/rating?path=folder/file

Average rating and vote count for a card.

GET /api/tags

All tags with usage counts.

GET /api/stats

Total card count, NSFW split, top tags, and other site-wide statistics.

GET /api/discover/trending

Top 20 cards by download activity in the past 7 days. NSFW cards included only for authenticated NSFW-verified users.

GET /api/discover/new-this-week

Up to 20 cards added in the past 7 days, newest first. NSFW cards included only for authenticated NSFW-verified users.

Lorebooks

No authentication required.

GET /api/lorebooks

Search lorebooks.

?q=search  •  ?topics=topic1,topic2  •  ?creator=name  •  ?limit=50  •  ?offset=0
GET /api/lorebooks/{id}

Full lorebook metadata and entry list.

GET /api/lorebooks/download/{id}

Download lorebook as a JSON file.

GET /api/lorebooks/topics

All lorebook topics with counts.

GET /api/cards/{folder}/{file}/lorebooks

Lorebooks linked to a specific card.

Account & Uploads

Requires a session cookie obtained from POST /api/auth/login. Pass cookies with your requests.

POST /api/auth/register

Create an account. Body: {"email","password","display_name"}

POST /api/auth/login

Log in. Body: {"email","password"}. Sets a session cookie on success.

GET /api/auth/me

Returns current user info: id, display_name, role, nsfw_verified.

POST /api/cards/upload

multipart/form-data with field file. Max 10 MB. Cards enter a mod review queue before going public.

GET /api/cards/my-uploads

Cards uploaded by the authenticated user, including pending ones. Supports ?limit and ?offset.

PUT /api/cards/update-metadata?path=...

Update name, creator, tags, and text fields on a card you uploaded. Writes changes directly into the PNG file.

DELETE /api/cards/delete?path=...

Permanently delete a card you uploaded.

POST /api/favorites DELETE /api/favorites?path=... GET /api/favorites

Add, remove, or list favorited cards for the authenticated user.

🔑

App Passwords — Recommended for Integrations

If you're building an app that connects to CharaVault on behalf of a user, App Passwords are the right approach. They bypass 2FA (so your app doesn't need to implement a TOTP flow), create long-lived sessions, and give users a named, revocable token they can manage from their account settings.

How it works

  1. User goes to Account Settings → App Passwords and creates a named password (e.g. "MySillyTavern")
  2. They copy the generated cv_... token — it's shown only once
  3. Your app logs in with POST /api/auth/login using the user's email + the cv_ token as the password
  4. Login succeeds immediately — no 2FA challenge, session lasts until the user revokes the password

Login request

POST /api/auth/login Content-Type: application/json {"email": "[email protected]", "password": "cv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

Benefits for your app

  • No 2FA implementation needed
  • 2× higher API rate limits
  • Session tied to token lifetime
  • Token never expires on its own

Benefits for users

  • Per-app named tokens
  • Revoke any app instantly
  • Main password stays safe
  • Up to 10 passwords per account

The cv_ token prefix identifies app password authentication in server logs.

Rate Limits

Limits apply per IP to /api/ endpoints only. Static files and page loads are not counted. Responses include an X-RateLimit-Remaining header.

60
req/min
standard soft limit
15
req/min
VPS/datacenter soft limit
120
req/min
app password soft limit
240
req/min
app password ban threshold

Exceeding the soft limit returns 429. Exceeding the hard threshold triggers an escalating automatic ban:

Strike 1
5 minute ban
Strike 2
1 hour + Cloudflare block
Strike 3+
24 hour + Cloudflare block

Sessions authenticated via App Password receive 2× the standard limits automatically — no extra configuration needed.

Example: PocketTavern & LocalTavern

PocketTavern (Android) and LocalTavern (iOS) both use CharaVault App Passwords to authenticate users without requiring 2FA support in the app. They're good references for how to implement App Password-based login in a mobile client.

Building something with our API? We'd love to hear about it — let us know.

Announcements

Site updates, security notices, and other important information.

📤
Bulk Card Uploads
Posted May 31, 2026

You can now upload multiple cards at once from the My Uploads tab. Select as many PNG files as you like in the file picker — each one is uploaded in sequence and you'll see a live progress panel showing the status of every card.

Single-file uploads work exactly as before. The same content rules apply — all uploads go through the standard virus scan, content check, and moderator review queue.

📚
Embedded Lorebook Fixes
Posted May 28, 2026

Two issues with embedded lorebooks (lorebooks built into character cards) have been fixed.

  • Entries now display — opening an embedded lorebook in the modal would previously show “Could not load entries.” Entries are now extracted and displayed correctly.
  • Download now works — downloading an embedded lorebook now produces a proper .lorebook.json file ready to import into SillyTavern or compatible frontends.
🏷️
Multi-Tag Filtering
Posted May 28, 2026

The Tag dropdown now supports stacking multiple tags at once. Select a tag and it appears as a chip — select another and it adds to the filter. Results must match all selected tags.

Click the on any tag chip to remove just that tag. When two or more tags are active, a Clear all tags chip appears to remove them all at once.

📝
Creator Notes Now Visible on Card Pages
Posted May 28, 2026

Creator notes — the guidance card authors write for how their character should be used — are now displayed directly on the card detail page, above the comments section.

If a card includes creator notes, you'll see them automatically when you open it. Cards without creator notes are unaffected.

📧
A Note on Verification Emails
Posted May 25, 2026

We're thrilled to see so many new faces — CharaVault has grown to over 1,400 users and signups have been picking up nicely. Thank you all for being here!

That said, we want to be upfront about a current limitation: our email service (Resend) is on the free plan, which caps outgoing emails at 100 per day. On busy days, some newly registered users may not receive their verification email right away.

If you signed up and didn't get a verification email, don't worry — just wait until the next day and use the Resend Verification button on your Account page. We apologize for the inconvenience and are looking into upgrading the plan as the site grows.

Please do verify when you can — unverified accounts are automatically deleted after 3 days to keep the database clean and our storage in check.

As always — happy searching and uploading. ❤️

🏷️
Card Source Tagging & Source Filter
Posted May 24, 2026

All cards now carry a source tag indicating where they originally came from. A new Source dropdown has been added to the filter bar so you can browse cards from a specific platform.

Available sources
  • Chub, Sakura, CrushX, EasyGirl, RisuAI, NyAI, DataCat, NSFWAIChat, JannyAI — cards originating from those platforms. Many of these were part of the original Character Archive collection, which already had them organized by platform — the source tag reflects where the card came from, not necessarily who fetched it.
  • Character Archive — cards that could not be attributed to a specific platform. These are loose files from the original collection that were not organized into a platform folder.
  • CharaVault — cards uploaded directly by users on this site

Note: loose card files that could not be attributed to a specific platform have been defaulted to Character Archive.

You may notice CharaVault has fewer cards than platforms like Chub. This is intentional — Chub hosts a large number of duplicate characters under different IDs. We deduplicate by filename to save storage space, so you'll see fewer cards but less clutter.

🔍
Search & Filter Improvements
Posted May 19, 2026
🎯 Smarter Search

The search bar now matches character names only by default. Previously, typing a name like “Alice” would also surface cards whose creator happened to be named Alice — that no longer happens. Use the dedicated operators to search other fields:

Alice  —  search by character name
creator:Alice  —  search by creator name
tag:fantasy  —  search by tag
-zombie  —  exclude a name from results
"exact name"  —  exact name match
📊 Token Count Filter

A new Tokens dropdown has been added to the filter bar. Use it to narrow results to a specific token range — Under 200, 200–400, 400–600, all the way up to 2000+. Pairs well with the existing sort options.

🔒
Security Audit Completed
Posted May 16, 2026

A full security audit of CharaVault has been completed and all identified findings have been addressed. We are not disclosing specifics of what was changed, but wanted to be transparent that it happened and note a few things you may notice as a result.

What you might notice
  • Logging out now invalidates your session on all devices — not just the browser you clicked "log out" in. If you use CharaVault on multiple devices, you will need to sign back in on each one after logging out anywhere. App passwords are not affected and will continue working as normal.
  • Stricter rate limiting on auth endpoints — actions like password reset requests and verification email resends are now more tightly enforced. If you hit a limit, wait a few minutes and try again.
  • Display name capped at 50 characters at registration. Existing names are unaffected.
  • Password length capped at 128 characters. If your password is shorter than that (it almost certainly is), nothing changes for you.

If you notice anything unusual with your account or have security concerns, contact us at [email protected].

🛠️
Thumbnail Fix & Service Improvements
Posted May 16, 2026
🖼️ Uploaded Card Thumbnails Fixed

Thumbnails for user-uploaded cards were not generating correctly after upload. The root cause was a permissions issue — generated thumbnails were being owned by the wrong system user and therefore not served to the browser. This has been resolved. If your uploaded cards are still missing thumbnails, try re-uploading them and they should appear immediately.

⚡ Performance: Startup CPU Spike Fixed

On every server start, CharaVault was firing a separate database query for each of the 284,000+ cards on disk to check if they had changed — causing both workers to pin at ~86% CPU until the scan finished. This has been replaced with a single bulk query, dropping idle CPU usage to near zero.

🔄 Apology for Recent Restarts

You may have noticed the site going down briefly several times today while we tested and deployed these fixes. We apologize for the disruption. Going forward, the server is now configured to reload gracefully when updates are deployed — meaning future changes will take effect with little to no downtime.

💬
Comments, Description Previews & More
Posted May 16, 2026
💬 Card Comments

You can now leave comments on any character card. Open a card and the comments panel appears on the right — read without an account, or sign in to post. Comments are visible to everyone. Cards with comments show a 💬 N badge in the grid so you can see at a glance where the conversation is happening.

📝 Description on Hover

Hover over any card in the grid and a preview of the character’s description floats alongside it — no need to open the card just to get a feel for who they are. Move your mouse freely; the tooltip follows without blocking other cards.

🖼️ Larger Card Grid

Cards in the browse grid are slightly larger, giving artwork more room to breathe without sacrificing how many fit on screen.

🔧
Bug Fix: Card Uploads & Editing Restored
Posted May 16, 2026

Card uploads were broken due to a missing internal dependency introduced in a recent refactor. The following issues have been resolved:

  • Uploads failing with "Upload failed. Please try again" — fixed
  • Edit card metadata failing to load card data — fixed
  • Save changes returning a network error — fixed
  • Thumbnails not appearing for your own pending uploads — fixed

Everything is back to normal. If you attempted an upload during the affected period, please try again.

CharaVault UI Refresh & New Features
Posted May 13, 2026
🗺️ Site Nav quick links

The Site Nav button at the top of the page now gives you quick access to everything without hunting through the layout. One click gets you to:

  • Search Cards — back to the main browse view
  • My Uploads — cards you’ve submitted
  • Favorites — your saved cards
  • Lorebooks — browse the lorebook library
  • Top Tags — explore cards by tag
📈 Discover section

Logged-in users now see a Discover section on the main page showing trending cards and what’s new this week. It’s a quick way to find popular or freshly uploaded cards without searching.

💻 Quality-of-life improvements
  • Press / anywhere to focus the search bar instantly
  • Click a creator’s name on any card to filter by that creator
  • Pagination now has first/last page buttons and a page jump box
  • Back-to-top button appears when you scroll down
  • Footer links to PocketTavern, LocalTavern, the API, and site info
💬 Try Card — chat with any character

Open any card and you’ll see a 💬 Try Card button. Click it to start an anonymous chat session with that character — no account required, no data saved.

  • Sessions are anonymous and fully isolated — nothing is logged or stored
  • Each session allows up to 10 messages and lasts 10 minutes
  • Sessions clear automatically when the timer runs out or you close the window
Heads up: Try Card is powered by NanoGPT and runs on shared credits. Availability may be limited depending on credit balance. This is a fun extras feature — it is not intended as a replacement for a full SillyTavern setup, and responses should not be taken seriously. When credits run low, the feature will be temporarily suspended.
⚠️
Security Notice: Bot Browser Backdoor
Posted April 28, 2026

The Bot Browser SillyTavern extension (mia13165/SillyTavern-BotBrowser) was found to contain a trojan that steals LLM API keys and SillyTavern configuration data. If you have ever had this extension installed, take action immediately.

What was stolen:
  • LLM API keys — OpenAI, Anthropic, Gemini, NovelAI, DeepSeek, OpenRouter, and others
  • Proxy credentials, reverse proxy URLs, and connection profiles
  • Full SillyTavern settings and secrets from downloaded backup archives
  • All users on shared instances
✅ Chat logs, character cards, and images were not exfiltrated.
What to do:
  1. Remove Bot Browser from SillyTavern and delete its files from your extensions/ folder
  2. Revoke and regenerate every LLM API key you had in SillyTavern
  3. Reset any proxy or reverse proxy passwords
  4. If you created a CharaVault App Password for Bot Browser, revoke it in Account Settings
  5. Clear your browser cache
Full technical disclosure →
🛠️
Service Interruption — Resolved
Posted May 11, 2026

We apologize for any interruptions you may have experienced today. A drive failure in our server caused a brief period of instability. The issue has been resolved and the site is fully operational again. Thank you for your patience.

📢
CharaVault Update
Posted May 11, 2026
We're looking for moderators!

CharaVault is growing and we need community members to help keep it a safe and welcoming space. Moderators help review flagged cards and handle reports. If you're an active member and interested in helping out, reach out to us at [email protected].

Periodic card purges

From time to time, cards that slip through our automated detection will be identified and removed in bulk. This is part of our ongoing effort to maintain quality and safety on the platform. If a card of yours is removed and you believe it was caught in error, you can contact us to have it reviewed.

Content reminder: No sexual content involving minors

CharaVault welcomes characters of all ages for creative and story-building purposes. Young or teenage characters are perfectly fine — we love a good coming-of-age story, school drama, or adventure. However, sexual content involving minors is strictly prohibited, regardless of whether the character is described as fictional or “aged up.” Keep adult content adult. Cards found in violation will be removed without notice.