Chrome extension · v0.1.0 · load unpacked

Vault

Export a whole ChatGPT Project — every chat, the project instructions, the files you uploaded to it, and the images and documents generated inside the chats — as one lossless ZIP on your own disk.

Download vault-0.1.0.zip unpacked extension · install in ~2 minutes

No server. No account. No sign-up. Nothing you export ever leaves your machine.

What it does

ChatGPT's own export (Settings → Data Controls → Export data) gives you an all-or-nothing dump of your chats, and it leaves out the two things that make a Project a Project: the instructions you wrote for it, and the files you uploaded to it. It also cannot answer the question you actually have — "give me everything in Project X."

Vault answers that question. It can also export your whole account (one ZIP per project) or a single conversation.

What each ZIP contains

<Project Name>/
  project.json          everything the project is, as data
  instructions.md       the project's instructions, readable
  conversations/
    2026-07-13_my-chat__a1b2c3d4.md     readable (drops straight into Obsidian)
    2026-07-13_my-chat__a1b2c3d4.json   the raw original, nothing lost
  files/                the documents you uploaded to the project
  media/                images and outputs generated inside the chats
  index.html            open this — a browsable index of the whole archive
  export-report.json    what worked, what didn't, and exactly what was skipped

Every conversation is written twice: once as readable Markdown, once as the untouched original. If the readable version ever gets something wrong, the original is sitting right next to it.

Known limitation — regenerated answers: the readable Markdown captures alternate (regenerated) answers one level deep. If you regenerate a reply and then regenerate again within that alternate, those deeper alternates appear only in the raw .json, not in the Markdown. The raw .json always contains everything, at every depth — nothing is lost from the export; this is a limit of the readable view only.

Install it

  1. Download vault-0.1.0.zip (the button above) and unzip it. You get a folder with manifest.json at its top level.
  2. Open a new tab and go to chrome://extensions.
  3. Turn on Developer mode — the switch is in the top-right corner.
  4. Click Load unpacked (top-left).
  5. Select the unzipped folder itself — not a file inside it, and not a folder containing it.
  6. Vault appears in your extensions list. Pin it if you like.
  7. Open chatgpt.com, signed in, and click the Vault icon. The panel opens on the right.

Chrome will show "This extension is not from the Chrome Web Store." That is what loading unpacked means — it is a developer build, not a Store listing, and there is no Store submission in this version.

Press Verify endpoints first

The first button in the panel is Verify endpoints (dry run). Press it before you trust any export — and again any time an export looks wrong.

Here is why it matters. ChatGPT has no official way for a tool to read your projects, so Vault uses the same internal web addresses the ChatGPT website itself uses when you click around. Those addresses are undocumented and reverse-engineered: OpenAI can rename or change any of them, without notice, on any given Tuesday. When that happens, a naive exporter quietly produces an archive that is missing things and says nothing about it.

Verify endpoints checks every address Vault depends on against your live session. It changes nothing, downloads nothing, and tells you in plain words which addresses still work and which one moved. A row reading FAILED — expected items[] in body is the difference between "Vault is broken" and "Vault is broken here, and this is what to fix."

Green across the board means an export can be trusted. Anything else: read the note on the failing row before you rely on the result.

The honest warning about your account

OpenAI's terms of use do not permit automated extraction of your data outside their official API. Vault reads only your own data, only from your own logged-in session, and it deliberately paces itself — roughly half a second between requests, with a random wobble, so it reads at about the speed of a person clicking around. That is why exports take minutes rather than seconds.

Even so: automated extraction sits outside those terms, and there is some non-zero risk to your account. Nobody can honestly promise otherwise. You decide whether to accept it — Vault says exactly this on its first screen, before you can press anything.

If you do not want that risk, use Safe Mode.

Safe Mode — zero risk, with a real limitation

Safe Mode never contacts ChatGPT at all. Instead:

  1. In ChatGPT: Settings → Data Controls → Export data. OpenAI emails you a ZIP (usually within minutes; the link expires after 24 hours).
  2. Download that ZIP.
  3. In the Vault panel, open Safe Mode, choose that ZIP, and press Build archive from official export.

You get the same folder layout, the same Markdown, the same browsable index.html.

What Safe Mode cannot give you: your project instructions and the files you uploaded to a project. OpenAI's official export simply does not contain them. This is a limit of their export, not something Vault can work around — and the archive says so out loud, in export-report.json and in index.html, so a future you reading that folder is never misled about what is in it. Only a normal export can capture instructions and project files.

What this version deliberately does not do

v0.1.0 does one thing: put your data on your disk, losslessly. The following are consciously left out — not missing, not half-built, not hiding in the code:

It also does not reorganise your chats inside ChatGPT, does not add anything to the ChatGPT interface, and does not work with any AI tool other than ChatGPT.

When something goes wrong

"Open chatgpt.com in a tab and try again"
Vault exports through your live session, so a signed-in chatgpt.com tab must be open. Open one and press the button again.
An export finishes with warnings
Read them. They are shown in the panel and written into export-report.json inside the ZIP. A warning means the archive is real but incomplete in a specific, named way (for example: a file whose download link had expired).
"Verify endpoints" shows red rows
OpenAI moved something. The note on the red row says what Vault expected and what it got. Until it is fixed, an export will be missing whatever that address provided.
Exports feel slow
That is on purpose (see the pacing note above). You can shorten the pause in Settings, but slower is safer.
Nothing happens at all
Go to chrome://extensions, press reload on Vault, reload the chatgpt.com tab, try again.