{"slug": "show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded", "title": "Show HN: Read your Character.AI data export in the browser, nothing uploaded", "summary": "Amavie released an open-source browser-based reader that opens Character.AI data exports locally, with no uploads, no server, no analytics and no network requests, available free and without an account at amavie.ai/character-ai-export. The tool parses the ZIP or JSON files from Character.AI's \"Export data\" feature into characters and full chats with dates and both sides of the conversation, and also reads character cards (SillyTavern, Chub, JanitorAI, RisuAI, Agnai, Backyard AI) plus SillyTavern .jsonl, WhatsApp and Telegram chat exports. The code requires Node.js 20 or newer, uses the File API and the fflate library to unzip files, is mirrored from Amavie's own codebase, and is published under the MIT license.", "body_md": "Open your Character.AI data export and read your characters and chats — in your own browser. The file is read on your device; nothing is uploaded anywhere.\n\n**Use it online, free and without an account: [amavie.ai/character-ai-export](https://amavie.ai/character-ai-export).**\nThis repository is the same reader as open source, so you can check what it does with your file or run it yourself.\n\n- **Character.AI data export** — the ZIP (or the JSON files inside it) from Character.AI's “Export data”: your\ncharacters and every chat, with dates and both sides of the conversation.\n- **Character cards** — PNG cards with the card inside (SillyTavern, Chub, JanitorAI, RisuAI, Agnai, Backyard AI) and\ncard JSON.\n- **Chat exports** — SillyTavern`.jsonl` chats, WhatsApp and Telegram exports, plain text.\n\n```\nnpm install\nnpm run dev     # opens the viewer at http://localhost:5173\nnpm test        # format tests\nnpm run build   # static files in dist/ — host them anywhere\n```\n\nRequires Node.js 20 or newer. No server, no analytics, no network requests: the page reads the file with the File API\nand unzips it with [fflate](https://github.com/101arrowz/fflate).\n\n``` js\nimport { readImportFile } from './src/lib/parse';\n\nconst reading = await readImportFile(file); // a File from <input type=\"file\">\nif (reading.kind === 'pick') {\n  // Character.AI export: reading.pick.characters, reading.pick.chats (messages with role, name, text, time)\n} else if (reading.kind === 'request') {\n  // one card or one chat: reading.request.card_json, reading.request.chat\n}\n```\n\nThe reader is the one [Amavie](https://amavie.ai) uses to bring a character and a conversation over from another app;\n`src/lib` is mirrored from Amavie's codebase, so fixes land there first. Issues and pull requests are welcome.\n\nAmavie is a universe of AI characters who remember you and live their own lives — chat with them and play roleplay\nscenes on the [web](https://amavie.ai), iOS and Android.\n\nMIT — see [LICENSE](https://github.com/anima-universe/character-ai-export-viewer/blob/main/LICENSE).", "url": "https://wpnews.pro/news/show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded", "canonical_source": "https://github.com/anima-universe/character-ai-export-viewer", "published_at": "2026-10-31 19:53:20+00:00", "updated_at": "2026-10-31 20:21:04.769811+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "developer-tools"], "entities": ["Amavie", "Character.AI", "fflate", "SillyTavern", "Chub", "JanitorAI", "RisuAI", "Agnai"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded", "markdown": "https://wpnews.pro/news/show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded.md", "text": "https://wpnews.pro/news/show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded.txt", "jsonld": "https://wpnews.pro/news/show-hn-read-your-character-ai-data-export-in-the-browser-nothing-uploaded.jsonld"}}