Privacy model

AI Chat Archive is designed around one rule: your conversation data never leaves your browser.

This page is the technical overview. For the question "does it send my data anywhere?" answered in plain English, see faq/does-it-send-data-anywhere.md.

Threat model

We assume a Claude.ai user who wants their conversation history backed up locally without:

  1. Trusting a third-party cloud service with the full content of their chats.
  2. Giving a third party their Claude session cookie.
  3. Running unreviewable server-side code on their data.

AI Chat Archive's architecture makes (1), (2), and (3) structurally impossible, not just promised.

Data flows

While exporting

┌──────────────────────┐        ┌──────────────┐        ┌────────────────┐
│  AI Chat Archive     │  read  │  claude.ai   │        │  Your disk     │
│  (runs in your tab)  │◀──────▶│  API         │        │  (Downloads/)  │
│                      │                                │                │
│  Renders PDF / HTML  │─────────── write to ──────────▶│                │
│  / Markdown locally  │                                │                │
└──────────────────────┘                                └────────────────┘

There is no fourth box. No AI Chat Archive server, no proxy, no analytics pipeline.

While activating a paid license

┌──────────────────────┐   license key   ┌──────────────┐
│  AI Chat Archive     │────────────────▶│  polar.sh    │
│  (popup UI)          │◀────────────────│  (billing)   │
│                      │  valid / invalid │              │
└──────────────────────┘                  └──────────────┘

Only the license key travels, only to Polar, only during activation and periodic revalidation. Your conversations are never part of this traffic.

What the extension is permitted to do

Chrome enforces the permissions declared in manifest.json. AI Chat Archive declares:

Permission Why it's needed
host_permissions: ["https://claude.ai/*"] Read conversations and attachments via the same API Claude.ai's own web app uses.
host_permissions: ["https://api.polar.sh/*"] Validate paid license keys.
downloads Write exported files into the Downloads folder.
storage Remember user settings (format preference, timestamp style, license key).

The extension cannot reach any host not on this list. If the extension tried to POST your conversation to a third-party server, Chrome would block the request — the manifest is the ceiling of what it can do.

Local storage

The extension stores only the following in Chrome's chrome.storage.local:

Never stored: conversation content, attachment bytes, or any identifier tied to your Claude account.

How to verify

What this means in practice

Related