Claude.ai groups related conversations into Projects — each with its own custom Instructions and shared knowledge files. The standard Save to project menu in Claude.ai does not offer any way to export a project as a whole; you can only export individual chats one at a time.
AI Chat Archive (v0.3.0+) adds a dedicated Project Export mode that bundles an entire project — Instructions, knowledge files, every conversation, every attachment — into one ZIP. This page walks through it end to end.
Project Export is a paid feature, gated by the same license as Batch Export. See pricing for tiers and the features page for what every paid plan includes.
Navigate to the project you want to export:
https://claude.ai/project/<project-uuid>
You can get there from the Projects section in the Claude.ai sidebar, or by clicking the project chip at the top of any chat that belongs to it.
The extension only shows the Project Export button when the URL matches
/project/<uuid> — not on plain /chat/<id> pages.
Click the AI Chat Archive icon in the toolbar to open the popup, then pick your format:
.md) — for Obsidian, Notion, grep, future ingestion..html) — self-contained per-chat archive, browsable offline..json) — programmatic ingestion / custom pipelines..txt) — compliance archives, search indexes, raw text.PDF is not supported for Project Export. Use single-chat export if you specifically need a PDF for one conversation in the project.
If you want to bundle uploaded files alongside the transcripts, check Include attachments in the ZIP in the popup.
You have two equivalent triggers:
/project/<id> page,
AI Chat Archive injects a small floating button. Click it to start the
same export without opening the popup. The floating button shows a live
progress panel during the run.Free users see an upsell variant of the button instead, which opens the checkout page.
Project Export runs in this order:
/projects/<id>/docs./projects/<id>/files.files/_INDEX.md
is written so it reflects the actual names that landed._INDEX.md is added with the
per-conversation status of each entry.The popup progress bar and the on-page floating panel both reflect the
current step. You can cancel mid-run: conversations that were never
reached are marked Not run in _INDEX.md, and any remaining
knowledge files are logged in files/_SKIPPED.md with reason cancelled by user.
The ZIP is named after the project (sanitized for filesystem safety). Inside, the layout is:
<Project Name>/
README.md # project overview + notes on what's NOT included
metadata.json # machine-readable project metadata
instructions.md # project Instructions (prompt template)
files/
_INDEX.md # table of every file with type + date
<text docs + binaries>
_SKIPPED.md # only when downloads failed or you cancelled
conversations/
<date>_<title>/
<title>.<ext> # transcript in your chosen format
attachments/ # only when 'Include attachments' was on
_INDEX.md # OK / Skipped: empty / Failed: <error> / Not run
_INCOMPLETE.md # only when /docs or /files listing failed
The conversations/ folder follows the same naming and attachment
conventions as the ZIP bundle structure spec,
so importers that already handle batch ZIPs handle project ZIPs without
changes.
README.md inside the ZIP states
this explicitly so future readers know the omission is intentional, not
an export bug. Project Instructions and knowledge docs — both of which
you edit directly — are exported in full.The button doesn't appear.
Confirm the URL is claude.ai/project/<uuid>, not claude.ai/chat/<id>.
Project Export deliberately hides on chat pages — use Batch Export there.
I see an "Upgrade" / upsell button instead. Project Export is a paid feature. Activate a license in the popup and the button flips to the working variant without needing a reload.
The export stops with _INCOMPLETE.md in the ZIP.
The /docs or /files listing call failed (network error, expired
session). Re-run while signed in. The conversations folder is still
populated normally; only the knowledge files/ directory may be partial.
I started Batch Export while Project Export was running (or vice versa). The extension blocks this with a reciprocal mutex — one paid export at a time. Wait for the running one to finish or cancel it.