Everything Kai's Export Tools can do, how each piece works, and what to do when something looks off.
Always open your downloaded export and check that everything you expected is actually in it. An export can only contain what the platform has loaded in your browser — if a chat wasn't fully scrolled, or a page wasn't captured, that content won't be in the file.
Verify first, delete second. If something is missing, re-capture and compare again before removing anything — chats, memories, knowledge tabs, or a shape itself.
| Button | What it does |
|---|---|
| Start Chat Exporter | Turns on chat capture on the current Shapes.inc tab. A small panel appears in the corner of the page. |
| Export Profile & Config | Opens a panel that pulls the shape's profile and configuration into a .json file. |
| Export Knowledge Base | Captures the shape's knowledge base tabs into a .json export. |
| Export Long Term Memories | Captures long-term memories, page by page, into a .json export. |
| Export Training Pairs | Captures training pairs (your input + the shape's reply) into a .json export. |
| Open Story Reader | Opens the story reader — drop in a chat .txt export to read it as a formatted story. |
| Open Data Viewer | Opens the data viewer — drop in any .json export to browse it as clean, readable cards. |
.txt transcript, oldest first.Each data exporter works the same way: open the relevant page for your shape on Shapes.inc, click the matching button in the extension popup, and a panel appears on the page.
For exporters with multiple pages or tabs, capture one section, then move to the next and capture again — the panel keeps a running count. When everything is captured, use the panel's download button to save the complete .json file.
Expand everything before you capture. An exporter can only grab what the page has actually loaded and rendered — if a section is collapsed (folded-away lists, closed ▾ sections, "show more" links), open it first or that content won't be in your export.
Files are named after your shape (for example kestrel_Knowledge_Complete_Export.json) so exports from different shapes never get mixed up.
Story Reader turns a chat .txt export into a story: per-speaker colors, timestamps, optional engine names, and command cleanup (!wack, !sleep, !reset can be kept, replaced with story text, or stripped).
Data Viewer opens any .json export — knowledge base, memories, training pairs, or profile — and detects the format automatically. Markdown formatting like **bold**, *italic*, lists, headings, and links renders properly.
Both pages include search (/ to focus, Enter to jump between matches), font-size controls, focus mode, four page themes, four reader themes, custom text colors with a low-contrast warning, and a brightness slider. Every setting is remembered between visits and shared between the two pages.
Everything stays on your computer. Captured chats and exports live only in the page's memory until you download them. Settings are stored in your browser's local storage. There is no account, no server, no analytics, and nothing you export is ever sent anywhere.
The extension only runs on shapes.inc and talk.shapes.inc, and only when you click a button. The reader, viewer, and this help page work fully offline once loaded.
Wherever your browser normally saves downloads (usually your Downloads folder). The extension never moves or uploads them anywhere else.
Check for collapsed sections first — anything folded away behind a ▾ arrow or "show more" link isn't loaded into the page, so the exporter can't see it. Expand every section, then capture again. Also make sure you captured every page or tab of the section (the panel's running count should match what you expect) before downloading.
Usually, nothing yet — the counter only climbs as message history loads. After the automatic refresh, whatever is currently visible in the chat is captured straight away, and scrolling up loads (and captures) older batches.
If it's still 0 after the refresh and some scrolling, then either the chat room is genuinely empty, or something on the platform's side has changed and the exporter can't read it — please report that (see below) so it can be fixed.
It's good practice. Turn Off unhooks the capture completely. If you forget, it stays off for other sites — it only ever runs on Shapes.inc — but it will reactivate the next time you reload a Shapes.inc chat page.
Yes — it's a Manifest V3 extension, tested in both. Any Chromium-based browser that supports MV3 extensions should work.
Settings are kept in local storage. Clearing your browser's site data for extension pages resets them. Themes, colors, font size, and brightness otherwise persist indefinitely.
Only after you've opened the downloaded file and personally confirmed everything you care about is in it. Exports contain only what the platform loaded in your browser while capturing — incomplete scrolling or a skipped page means missing content. The extension can't recover anything deleted on Shapes.inc, so verify first, delete second.
Make sure it's a .json file produced by this extension's exporters. Files edited by hand can break the expected structure — if in doubt, re-export.
Yes — on Vivaldi Browser for Android. Switch this page to the 📱 Mobile view (buttons at the top) for the full mobile guide, and see the short picture guide to making Vivaldi feel like a regular mobile browser (hiding its tab and navigation bars).
A quick note from Kaihime: I'm not a professional developer — I'm a Shapes.inc user who built these tools because I wanted to help other shape users keep the chats and data that matter to them. Things may occasionally break when the platform changes; when they do, tell me and I'll do my best to fix them.
Questions, ideas, or something broken?
It helps a lot if you include: which button or page you were using, what you expected, what happened instead, whether you're on desktop or mobile (and which browser), and — if it's a display problem — a screenshot. Please don't include private export contents unless you're comfortable sharing them.
☕ Like the extension? You can buy me a coffee on Ko-fi — or just shout it out on Shapes.inc. Support in any amount (or none — a kind word counts just as much) keeps it going 💛
Built and tested for Vivaldi Browser on Android.
Lemur can also run it, but its keyboard covers the chat input box (their team won't fix it) — fine for popping in to export, frustrating for actually chatting.
Quetta loads it but displays and behaves weirdly — not recommended.
Everything works, but mobile browsers give extensions far less room than desktop, so it won't feel as polished — and it's only been tested on a small number of phones. If something looks off on yours, please tell me (see Report an issue).
🆕 New to Vivaldi? Out of the box it shows extra bars (tab bar, navigation bar) that eat up screen space. Hiding them takes about two minutes and makes it feel like a regular mobile browser — follow the short picture guide and you're set.
Always open your downloaded export and check that everything you expected is actually in it. An export can only contain what the platform has loaded in your browser — if a chat wasn't fully scrolled, or a page wasn't captured, that content won't be in the file.
Verify first, delete second. If something is missing, re-capture and compare again before removing anything — chats, memories, knowledge tabs, or a shape itself.
The extension menu opens as its own page — open it from Vivaldi's menu under Extensions. Tap any export option there, then switch back to your Shapes.inc tab: the export panel is waiting at the bottom of the page. Tip: hiding Vivaldi's navigation bar and tab bar gives everything much more room and makes it feel like a regular app — here's a short picture guide.
| Button | What it does |
|---|---|
| Start Chat Exporter | Turns on chat capture on the current Shapes.inc tab. A small panel appears at the bottom of the page. |
| Export Profile & Config | Opens a panel that pulls the shape's profile and configuration into a .json file. |
| Export Knowledge Base | Captures the shape's knowledge base tabs into a .json export. |
| Export Long Term Memories | Captures long-term memories, page by page, into a .json export. |
| Export Training Pairs | Captures training pairs (your input + the shape's reply) into a .json export. |
| Open Story Reader | Opens the story reader — drop in a chat .txt export to read it as a formatted story. |
| Open Data Viewer | Opens the data viewer — drop in any .json export to browse it as clean, readable cards. |
.txt transcript, oldest first — find it in Vivaldi's download manager or your phone's file manager (the exact spot varies by phone).Each data exporter works the same way: open the relevant page for your shape on Shapes.inc, tap the matching button in the extension menu, switch back to the Shapes.inc tab, and a panel appears at the bottom of the page (not the bottom-right corner like on desktop).
Panels on mobile have a single zoom button instead of the desktop A−/A+ pair — zoom in to read the panel, zoom back out to move around the page.
If you get a warning that you're on the wrong page, it appears inside the extension menu, not as a pop-up: open the correct page from the Shapes.inc sidebar in a new tab, then run the export again there.
For exporters with multiple pages or tabs, capture one section, then move to the next and capture again — the panel keeps a running count. When everything is captured, use the panel's download button to save the complete .json file.
Expand everything before you capture. An exporter can only grab what the page has actually loaded — if a section is collapsed (folded-away lists, closed ▾ sections, "show more" links), tap to open it first or that content won't be in your export.
Files are named after your shape (for example kestrel_Knowledge_Complete_Export.json) so exports from different shapes never get mixed up.
Story Reader turns a chat .txt export into a story: per-speaker colors, timestamps, optional engine names, and command cleanup (!wack, !sleep, !reset can be kept, replaced with story text, or stripped).
Data Viewer opens any .json export — knowledge base, memories, training pairs, or profile — and detects the format automatically. Markdown formatting like **bold**, *italic*, lists, headings, and links renders properly.
Both pages include search, font-size controls, four page themes, four reader themes, custom text colors with a low-contrast warning (plus a reset-to-defaults button), a brightness slider, and a ☀️/🌙 Cozy Cafe light/dark toggle. Every setting is remembered between visits and shared between the two pages.
Everything stays on your phone. Captured chats and exports live only in the page's memory until you download them. Settings are stored in your browser's local storage on your own phone. There is no account, no server, no analytics, and nothing you export is ever sent anywhere.
The extension only runs on shapes.inc and talk.shapes.inc, and only when you tap a button. The reader, viewer, and this help page work fully offline once loaded.
Vivaldi Browser on Android — it's what mobile support is built and tested on. Lemur Browser can also run it, but Lemur has a keyboard bug that covers the chat input box (and they've said they won't fix it), so it's only practical if you're popping in purely to export. Quetta can load the extension but displays and behaves weirdly, so we don't recommend it. Mobile Chrome and Safari can't run extensions like this at all.
Every part of the extension follows your browser's light/dark mode until you touch a ☀️/🌙 toggle — then it remembers your choice. There are two independent toggles: one in the extension menu (which also sets the export panels on the page), and one at the top of the reader/viewer/help pages. So you can read in dark while exporting in light, or vice versa. (On Lemur, the menu is always dark when Lemur is in dark mode — the browser forces it.)
It probably did — the menu opens as its own page on mobile, so the result is on your Shapes.inc tab. Switch back to it: the export panel will be waiting at the bottom of the page.
In Vivaldi, open the browser's own menu and look under Extensions — tap Kai's Export Tools and the menu opens as its own page. Hiding Vivaldi's navigation bar and tab bar gives everything more room — see the picture guide.
First make sure you've switched back to the chat tab and are looking at the chat page itself — the panel with the counter sits at the bottom of the page. The counter only climbs as message history loads: after the automatic refresh, whatever is currently visible is captured straight away, and scrolling up loads (and captures) older batches.
If it's still 0 after the refresh and some scrolling, then either the chat room is genuinely empty, or something on the platform's side has changed and the exporter can't read it — please report that (see below) so it can be fixed.
Into Vivaldi's downloads — check Vivaldi's download manager (in its menu) or your phone's file manager; the exact location varies by phone. From there you can share or move the file, then open it in the Story Reader or Data Viewer.
Check for collapsed sections first — anything folded away behind a ▾ arrow or "show more" link isn't loaded into the page, so the exporter can't see it. Tap to expand every section, then capture again. Also make sure you captured every page or tab of the section (the panel's running count should match what you expect) before downloading.
Only after you've opened the downloaded file and personally confirmed everything you care about is in it. Exports contain only what the platform loaded in your browser while capturing — incomplete scrolling or a skipped page means missing content. The extension can't recover anything deleted on Shapes.inc, so verify first, delete second.
Make sure it's a .json file produced by this extension's exporters. Files edited by hand can break the expected structure — if in doubt, re-export.
A quick note from Kaihime: I'm not a professional developer — I'm a Shapes.inc user who built these tools because I wanted to help other shape users keep the chats and data that matter to them. Mobile was especially hard: mobile browsers restrict what extensions can do, and I could only test on a very small number of phones — so if something's broken on yours, please tell me and I'll do my best to fix it.
Questions, ideas, or something broken?
It helps a lot if you include: which button or page you were using, what you expected, what happened instead, your phone and Vivaldi version, and — if it's a display problem — a screenshot. Please don't include private export contents unless you're comfortable sharing them.
☕ Like the extension? You can buy me a coffee on Ko-fi — or just shout it out on Shapes.inc. Support in any amount (or none — a kind word counts just as much) keeps it going 💛