Privacy Policy
The Japanese version of this policy is the authoritative text; the English, Simplified Chinese and Traditional Chinese versions are reference translations (section 14). The extension’s interface is available in Japanese, English and Simplified Chinese, and from version 1.2.1 also in Traditional Chinese; this policy quotes button names as they appear in English.
- Your chats are never uploaded. Conversation text is written only to a file on your computer in the format you choose (one HTML file, one Markdown file, or a PDF you save from the print dialog) and is never sent to the operator or any third party. The extension has no accounts, analytics, ads or operator servers, and collects or sells no personal information through the extension (for what the operator receives when you contact us, see section 9).
- Only after you click a save button (“Save as offline file”, “Save as Markdown”, “Save as PDF” or “Choose messages to save…”) in the popup opened from the toolbar icon, does the extension read the conversation in the current tab. Opening the popup runs a read-only check first (section 2).
- To make archives work offline, saving sends requests to some sites, all listed in section 5. The extension never adds conversation text to these requests, but the addresses requested come from the conversation (for example image addresses, the domains of cited sites, and library names in code). The receiving site sees that address, your IP address and browser details.
- Opening a saved HTML archive makes no network requests by itself. A web page opens, in a new tab, only when you click a link in the archive or something inside interactive content that opens one, such as a button. For image links in Markdown files, see section 4.
1. About ConvoArk
ConvoArk is a Chrome extension provided by JC H&E (一般社団法人JC H&E, a general incorporated association under Japanese law; “the operator”), with a single purpose: saving the AI conversation you have open as an HTML file that opens offline (or as a Markdown file or PDF). Supported sites are matched by host name: chatgpt.com and its subdomains, chat.openai.com, claude.ai and its subdomains, and gemini.google.com. No other site, including look-alike sites, can start a save.
A save starts from the ConvoArk icon in Chrome’s toolbar: only for a save started there does Chrome let the extension read the current conversation and take screen captures of it. Before saving, the extension checks that Chrome lets it read the page; if not, it says so at once and does not reload the page.
ConvoArk is an independent tool and is not affiliated with, endorsed by or sponsored by OpenAI, Anthropic or Google. ChatGPT, Claude and Gemini are trademarks of their respective owners.
2. What data the extension reads
When you open the popup (on any site)
When you open the extension popup, it gets the current tab’s address and title and runs a read-only check on the page to decide what to show: the page address, whether a reply is being generated, and whether the message box contains unsent text (only whether it does, not the text). On the supported sites listed above it also reads the page title, the conversation name, the start of the first prompt (up to 40 characters) and the number of messages, to show them in the popup. This is used only for the popup’s display and is never stored or sent anywhere.
After you click a save button such as “Save as offline file” (current tab only)
- The conversation: the text of prompts and replies, headings, lists, tables, code and math, plus thinking and search steps.
- Images in the conversation, and the small site icons next to sources: site icons are saved where possible; icons from Google’s icon service are never requested and, like any icon that cannot be read, are replaced by a letter icon (section 5).
- What is on screen: for images whose original cannot be read (including pictures you uploaded to Gemini) and for snapshots of interactive content, the extension captures the visible area of the foreground tab and writes only the cropped parts it needs into the archive. The full screen capture stays in memory and is never stored. Captures are taken only of the foreground conversation page on a supported site, and only during a save started from the toolbar icon (at most 90 per save).
- Citations: each card’s title, site name and source link. For ChatGPT, links are read first from data the page already contains.
- Claude Artifacts and visuals: on
claude.aiand its subdomains only, on every Claude save, the extension reads the current conversation’s data through Claude’s own read-only interface with your current sign-in (including each Artifact’s full code and versions), and also uses that data to check the number and order of prompts in the archive. To find the workspace the conversation belongs to, the extension reads claude.ai’slastActiveOrgcookie in the page (fromdocument.cookie; the extension has no cookies permission), which is only a workspace ID, not a sign-in credential; if it is missing or does not match, it reads your list of workspaces (trying at most 6). Both are used only to build the address it reads from and are never sent anywhere else. - Gemini interactive modules (only if you allow it separately): the code in the module’s frame (
*.scf.usercontent.goog), the files it has loaded, the fonts, images and imported stylesheets its styles refer to (even ones not loaded yet), and the module’s own data requests, read once more (at most 220 files per module and about 24 MB in total per save). - The page address and title, for the archive’s “Open original” link and the file name.
- Choosing what to save: if you click “Choose messages to save…”, then after the page has reloaded and the conversation has been read in full, the extension shows its own selection panel (a page of the extension) on top of the conversation page; it lists each message as a prompt or reply, its round number, its length and the start of its text (up to two lines); the preview shows the text of the messages you chose. These are built inside the panel from the conversation that was read and only displayed; they are not sent anywhere. Which messages you chose and any keyword you typed into the filter exist only in memory while the panel is open (30 minutes at most); they are not stored or sent, and are not carried over to the next save.
The extension does not read the content of other tabs, your browsing history, passwords, sign-in cookies or tokens (the only cookie read is the Claude workspace ID described above), the text of unsent messages, or other conversations.
The extension operates the page while saving
To capture everything, the extension reloads the page once, then automatically expands collapsed sections, switches tabs within the page, hovers over or clicks citations and opens image previews; on all three sites it first scrolls to the start of the conversation to load earlier messages, then scrolls down to the end so code blocks and generated images are fully shown. The site’s own scripts may fetch data from its servers as a result, just as when you do these things yourself. For example, once a source list is expanded, the site’s own page loads the site icons it would normally show; those requests come from the site, and the extension itself does not request them.
While saving, the extension shows a progress card on the page, adds data-ca-* markers to page elements and temporarily (about 0.3 seconds each time) replaces the page’s window.open while collecting citations; when saving Gemini modules it temporarily changes document.write, Blob and MessagePort inside the module frames to record them. Sites can detect these changes.
3. Where it goes
The content is processed inside your browser. If you choose HTML or Markdown, it is written to one file (.html or .md), saved according to Chrome’s download settings (the Downloads folder by default, or the place you choose if Chrome asks where to save). The file name includes the conversation title. Chrome’s own download history keeps the file name and source; the extension has no downloads permission and cannot remove that entry for you, but you can at chrome://downloads.
Markdown files and PDFs are made on the extension’s own print page (print.html, a page inside the extension), which opens in a new tab. A Markdown file is saved from that page as one .md file, as above. For a PDF, the page lays out the chosen content and opens Chrome’s print window; the PDF is saved when you set Destination to “Save as PDF” there, to the place you pick. All of this happens inside your browser; the print page sends nothing anywhere and uses no extra permission.
The ConvoArk extension has no server and sends no conversation text or other data to the operator.
Before you share an archive: it contains the original conversation’s address, its title, the time it was saved, the extension version and everything that was saved, including every version of Claude Artifacts on the current branch, page captures, and citations with notes on how they were read. Anyone you send the file to gets all of this. Markdown files and PDFs also contain the messages you chose.
4. Opening an archive: no automatic network requests
A saved archive connects to nothing by itself when opened, online or offline:
- Images, fonts and code libraries were stored in the file at save time. The archive’s Content Security Policy allows only resources inside the file (
default-src 'none'; images and fonts fromdata:/blob:only; form submission to'none'), so the browser refuses any outside load. The archive contains no tracking code. Only archives that contain runnable interactive modules allow'unsafe-eval'and'strict-dynamic', because the module code itself needs them; Tailwind does not, and the archive’s security policy is never loosened for Tailwind. - The reader itself contains no networking code. Interactive modules and Artifacts run in sandboxed frames without same-origin access, so they cannot read the archive page or files on your computer.
- A web page opens only when you click a link in the archive (a citation source, or “Open original”) or something inside an interactive module or Artifact that opens one, such as a button, and it opens in a new tab. Archive links do not send the archive as the referrer. Which clicks inside interactive content open a page, and what the address of that page contains (it may include what you typed into the module), is decided by that content’s own AI-generated code. Be careful if an unfamiliar page tries to open.
The above describes HTML archives. In a Markdown file, an image that was not saved but has a web address is written as an image link to that address. Some Markdown readers load such links when they open the file, which sends a request to the site hosting the image; this is done by the reader, not by the extension.
5. Network requests while saving (complete list)
All of these leave from your own browser, only after you click “Save”, and only for the conversation you have open. None of them contains conversation text, and none goes to the operator. Choosing HTML, Markdown or PDF adds no destinations.
Note, however, that the addresses requested come from the conversation: image addresses, the addresses of cited sites’ icons, library names written in Artifact code (for example package names on esm.sh), and library addresses written in the code of visuals and modules. The receiving site sees that address, your IP address and your browser details (User-Agent); for cross-site reads the browser also tells it, as the web standard requires, which site the request comes from (for example Origin: https://claude.ai).
| Goes to | When and why | Sign-in information |
|---|---|---|
| The conversation page | Reloaded once before every save so all content can be expanded. | The site’s own, as when you press reload |
| The AI site’s own servers | When the extension expands, switches, hovers and scrolls the page (section 2), the site’s own scripts may load data. The site sends these requests; the extension does not read or change them. | The site’s own |
| Sites hosting images in the chat | Images are read into the archive (image types only, 12 MB each at most). Saving images needs no permission from you. ChatGPT images come from images.openai.com, readable from install; when the page cannot read one, the extension downloads the original in the background. Images on other sites (for example image search results and place photos in a Gemini answer, and pictures on ChatGPT’s file server oaiusercontent.com) are read directly in the page: if the site allows it, the original is saved; if not, the picture is saved as the page shows it, from a screen capture of the conversation tab (Chrome allows captures only for a save started from the toolbar icon); if that fails too, the archive shows a placeholder that says why. Two kinds of Gemini pictures are exceptions, which the extension never downloads separately. Pictures you uploaded to Gemini are saved as a screen capture of the thumbnail shown on the page, labelled “Saved as a screenshot of the page (thumbnail)” under the picture; the extension does not read the original, which is the file you uploaded. Pictures generated by Gemini are read by the page in your signed-in session; the extension saves the original from the page where it can, and if the page has not provided it in time, saves the picture as the page shows it from a screen capture. Maps that appear in an answer are not saved and the extension requests no map tiles; the archive notes “Map not saved (the page draws maps live)” where the map was. A map Gemini shows in the separate map panel at the side of the page (for example the one for a place card) is not saved either, and the archive has no note for it. The extension downloads images separately in the background only from images.openai.com; images on the conversation site itself and on other sites are never re-read in the background. | Other sites: no cookies, no referrer. Images and icons on the conversation site itself (for example ones you uploaded to Claude): that site’s signed-in session, as when the page shows them |
| Source site icons | Small icons already shown on the page are read once from their original addresses within the page while saving. That request goes to the cited website itself (for example its favicon.ico), without cookies or referrer, within 3 seconds in total; icons that can be read are stored in the archive. Icons from Google’s site icon service (www.google.com/s2/favicons) are never requested, nor is t0.gstatic.com, where that service redirects; they appear in the archive as a locally drawn letter icon. Any other icon that cannot be read is also replaced by a letter icon. | No cookies, no referrer (icons on the conversation site itself: that site’s signed-in session) |
claude.ai (Claude’s own interface) | On every Claude save: reads the current conversation’s data to get each Artifact’s full code and versions, and to check the number and order of prompts in the archive (the same interface, no extra request). If the lastActiveOrg workspace does not match, it also reads your workspace list (/api/organizations) and looks for the conversation in at most 6 workspaces. Read-only: it never sends messages, never changes anything and never reads other conversations. | Your existing claude.ai session, the same as the requests your browser makes when you open that conversation |
cdnjs.cloudflare.com, cdn.jsdelivr.net, unpkg.com, esm.sh, fonts.googleapis.com, fonts.gstatic.com | Only when a Claude visual or Artifact uses public code libraries or fonts: they are downloaded from the addresses written in its code and stored in the archive so it runs offline. No host other than these six is asked. Claude’s Mermaid diagrams (including a web-page Artifact that only contains <pre class="mermaid">) download one pinned version of the Mermaid library (mermaid@11.17.2) from cdn.jsdelivr.net. Limits: 15 seconds and 8 MB per file; 80 files and 20 MB per Artifact or visual. | No cookies, no referrer |
| Sites a Gemini module uses | Gemini saves only, and only if you allowed module access: the scripts, styles, fonts and images the module loaded, the fonts, images and imported stylesheets its styles refer to (even ones not loaded yet), and the module’s data requests are read again from their addresses (as GET, even if the original request was a POST) and stored in the archive. The browser cache is used first; when it does not have a file, this is a new network request to whatever site the module chose. At most 220 files per module and about 24 MB in total per save. In addition, code libraries the module’s page refers to but that were not recorded are downloaded again from the same address (at most 24 addresses per module, on any host). When a module uses Tailwind from cdn.tailwindcss.com, the identical file bundled with the extension is used instead (the official Tailwind v3.4.17 Play CDN build, MIT licence) and the extension sends no request to that site; the file runs only inside the archive’s sandboxed module frame, never in the chat page or the extension. | Module files re-read: cookies only for the module’s own site (*.scf.usercontent.goog), none for other sites. Re-downloaded libraries: no cookies, no referrer |
| A cited source page | When a citation card’s link is neither on the page nor in the page’s data and clicking the card makes the site open a new tab (in practice mostly on ChatGPT): the source page really starts loading, so the cited site receives a visit; the extension reads the address and closes that temporary tab at once (about 13 seconds at most each time). The extension closes only the one tab that meets all of these: the conversation page opened it within 1.6 seconds of the click, its first address belongs to another site, you did not click or press a key on the conversation page from 1.5 seconds before the click until then (and opened no context menu there in the last minute), and the click itself did not reveal the address. New tab pages, the browser’s own pages and another conversation on the same site are never touched. | As when you click the card yourself; the cited site receives its own cookies |
If a Claude Artifact or visual, or a Gemini interactive module, references public code libraries, the save downloads them (without cookies or referrer) and stores them in the archive as text. The extension itself never runs this code; it runs only when you open the saved archive, inside the archive’s sandboxed frames. Tailwind v3 is not downloaded; the extension’s own copy is used (with its MIT licence notice at the top of the file).
6. Local storage and diagnostics
chrome.storage.session (session storage, kept in memory and cleared when the browser closes):
- The latest save progress and save record for each tab, including the conversation page’s address, the file name, the completeness report and where you were reading before the save (the site’s number for that message and its distance from the top of the chat area; no text), so a save can continue after the page reload, the popup can show the result and the page can return to where you were reading. They are kept only for the 15 minutes in which the popup can show the result; after that they are cleared when the extension’s background starts, when a save ends or when the popup opens. Closing that tab deletes its records at once, and quitting the browser clears everything.
- When you schedule a save while a reply is still being generated, a waiting record (including the conversation page’s address). It is deleted when the save starts, is cancelled or fails, when the tab closes, or after 10 minutes.
- A record written just before asking for the optional permission (including the conversation page’s address). It is deleted once Chrome’s prompt is answered; if one remains, it is cleared when the browser quits.
- While saving Gemini interactive modules, the recorded module content (about 4 MB at most) and the recording’s expiry (10 minutes at most). They are deleted when that save ends or the tab closes.
chrome.storage.local (on your computer only): the interface language (if you chose one), the export format you chose last (HTML, Markdown or PDF), whether each round starts on a new page in a PDF, whether you have seen the first-run tips, whether you declined module access, and the file name, size, service and time of your last 20 saves. File names include the conversation title; the list stays until you click “Clear” under “Recent” in the popup or remove the extension. Which messages you chose to save and any keyword typed into the selection panel’s filter are not stored anywhere.
None of this is synced or sent anywhere.
The archive file itself uses your browser’s localStorage to remember reading settings (such as font, size, theme, interface language, sidebar and panel width). They stay in your browser and are never sent anywhere. These belong to the archive file, not the extension, so removing the extension does not clear them; clearing “Cookies and other site data” in Chrome’s “Delete browsing data” does.
Diagnostics: when a save fails, the popup offers “Copy diagnostics”. It contains the extension version, service name, error code and message (up to 300 characters), the last step reached, Chrome version and operating system, interface language and time; the diagnostics card on the page also includes the full browser identifier (User-Agent), browser language, the number of messages found and states such as whether a dialog was covering the page. It contains no conversation text. Diagnostics are only copied to your clipboard and never sent automatically; whether to send them to us is up to you.
7. Permissions
| Permission | Why |
|---|---|
| activeTab | Access the current tab after you click the extension’s icon in Chrome’s toolbar: the read-only check in section 2, reloading the page, reading the conversation and taking screen captures of the conversation tab (section 2). Reading the conversation and taking captures happen only after you click the toolbar icon. |
| scripting | Run the extension’s own save script on the current conversation page to expand collapsed content and read it. When saving Gemini modules (10 minutes at most per save), register the extension’s own recording script for *.scf.usercontent.goog frames, removed when the save ends. The registration applies to such frames in all tabs, but the script first checks that the outermost page is gemini.google.com and does nothing otherwise; modules in other Gemini tabs may be recorded too, but the extension accepts only the records from the tab being saved and discards the rest (the recording stays in that frame’s memory until the frame closes). |
| storage | Save progress, recorded module content and the preferences listed in section 6, locally only. The conversation data prepared for Markdown or PDF stays only in the conversation page’s memory while the print page reads it (at most 5 minutes) and is never written to storage. While you choose messages, the selection state is kept for at most 30 minutes and then discarded. |
| tabs | (a) At save time, read the current conversation tab’s address to confirm it is a supported site, and after the page reloads confirm it is still the same conversation; if not, the save stops. (b) When collecting citation sources automatically (section 5, “A cited source page”), read the address of the temporary tab a source card opened, then close that tab (about 13 seconds at most each time); if the conversation tab is navigated away meanwhile, it is sent back to the original conversation and brought to the front. (c) When you export Markdown or PDF, the extension’s own print page connects to the conversation tab to read the prepared conversation data locally; nothing is sent anywhere. With this permission the extension receives tab-creation and address-change events for all tabs, but uses them only during that citation step of about 13 seconds at most, ignores all other events at once and keeps no browsing history. Chrome describes this permission at install as “Read your browsing history”. The conversation page’s address is kept with the save progress in session storage (section 6), and citation links are written into the saved archive; nothing else is stored, and none of it is uploaded. |
| images.openai.com | Granted at install: when the page cannot read a picture on this address in a ChatGPT conversation, the extension downloads the original without cookies or referrer (a redirect makes the request fail instead of going to another site). This is the only address the extension downloads images from in the background. |
| *.scf.usercontent.goog (optional) | Asked only when you save Gemini interactive modules: read the module’s code and the files it uses (sections 2 and 5) so it stays clickable offline. If you decline, modules are saved as a picture or text. |
The interactive-module permission above is the only optional one; saving images needs no optional permission. You can revoke it at any time in ConvoArk’s details at chrome://extensions.
8. Compliance with the Chrome Web Store User Data Policy
The use of information received by ConvoArk, and its transfer to any other app, adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. The data the extension reads is used inside your browser only for its single purpose, saving the conversation to a file. It is never used for advertising, sold or used to determine creditworthiness, and neither the operator nor any third party reads your conversations.
9. Contact and feedback
The extension itself sends nothing to the operator. The operator receives personal information only when you email us yourself (including feedback by email, described below).
- What we receive: your email address, your name if you include it, your message, and any files or diagnostics you attach or paste yourself.
- Purposes: answering your enquiry, investigating and fixing problems, and considering improvements. Nothing else.
- Disclosure to third parties: we do not provide it to third parties without your consent, except where required by law.
- Where it is stored: email is received and stored in Zoho Mail, provided by Zoho Corporation (zoho.jp, data center in Japan).
- Retention: kept for as long as needed to handle your enquiry. To have it deleted, contact us at the address below.
- Security measures: We run no server and receive no conversations, page content or usage data from the extension. The only personal information we hold is what you send us by email, including feedback. It is kept only in the company's email account, and only the people who answer enquiries can see it. We delete enquiries we no longer need on a regular schedule.
- Requests and complaints: requests to notify the purpose of use of, disclose, correct, add to, delete, stop using, erase or stop providing to third parties your retained personal data, and complaints, are accepted at the email address in section 13; after confirming your identity we respond as required by law. If you live in the European Economic Area or the United Kingdom, you have the rights of access, rectification, erasure, restriction of processing, objection and, where applicable, data portability under the GDPR, and the right to lodge a complaint with a supervisory authority. The legal basis for processing in order to answer your enquiry is our legitimate interest in responding to your request (GDPR Article 6(1)(f)). The operator is the controller of this data. Enquiry emails are stored in Japan, which is covered by an adequacy decision of the European Commission. No fee is charged for disclosure and other requests.
Feedback by email
You can send problem reports and suggestions by email. We do not use a form service.
- From the extension: “Feedback” or “Report this problem” in the popup opens a new email to the operator in your email app. The message already contains the extension version, Chrome version, operating system and interface language, and for “Report this problem” also the supported site name and error code. It does not contain the conversation’s address, title or text.
- From the website: the feedback page (
feedback.html) only turns what you type into an email in the same way and opens it in your email app. The page itself sends nothing. - You decide whether to send it: nothing is sent until you send the email from your email app, and you can edit or delete any line before sending.
- Conversations, page content, screenshots and logs are never attached automatically. Please do not paste conversations into the email.
- The email goes out through your own email service, and the operator receives it in Zoho Mail (data center in Japan). Purposes, retention and requests for what we receive are the same as for enquiries above.
10. Children
ConvoArk is not directed at children under 13 and collects no personal information from anyone through the extension.
11. About this website
This website (convoark.com) is a static site hosted by Cloudflare, Inc. (United States). It has no ads. To see how much each page is read, it uses Cloudflare Web Analytics, which sets no cookies and shows us only totals such as pages viewed, referring sites, countries and browser or operating system types; it does not identify individual visitors or track them across other sites. Apart from its small script (loaded from static.cloudflareinsights.com) there are no third-party scripts, and the site only remembers your chosen interface language in your browser. Cloudflare, as the host, may process access information such as IP addresses to deliver and protect the site, under its own privacy policy.
The feedback page only turns what you type into an email and opens it in your email app; the page itself sends nothing (section 9).
12. Changes
If a future feature needs to collect or transmit data, we will update this policy before it ships, tell you inside the extension, and keep it off until you turn it on. Material changes are announced by updating the effective date on this page.
13. Operator and contact
ConvoArk is operated by JC H&E (一般社団法人JC H&E, corporate number 8120005019561).
The name of our representative and the other matters that Article 32 of Japan's Act on the Protection of Personal Information requires us to make available will be provided without delay on request to the email address below.
Address: 〒543-0071 大阪府大阪市天王寺区生玉町12番1-1202号(12-1-1202 Ikutama-cho, Tennoji-ku, Osaka 543-0071, Japan)
Questions about this policy or about your personal information: support@convoark.com
14. Languages
This policy is provided in Japanese, English, Simplified Chinese and Traditional Chinese. If the versions differ, the Japanese version prevails.