Exports for the context repo: the provider steps Nix cannot reach
Edit on GitHubThe memory servers index the context repository, and my history with each provider has to reach it first. All three providers require clicking through a web UI and waiting for an email, which is why this is a guide and not a module. This guide stops at the file on disk: turning an export into knowledge is the context repo's own tooling.
The two rules that make the rest safe
- Raw exports never enter any git. They are large, immutable, and an export mixes every scope,
FAI included, in the same files, so no path inside a repository could hold one safely. They live
in
~/context-raw/<product>/<YYYY-MM-DD>/, outside the work tree (the context repo's ADR 0005). - Nothing derived from an export reaches a committed path before it is classified by scope.
Classification runs on a local model and I review it (ADR 0004). That is why
bm importis not used: it writes an export straight into a project, FAI conversations included.
Fixed context
| What | Value |
|---|---|
| Knowledge base | the context repo, my.memory.dir (private v1cferr/context) |
| Raw exports | ~/context-raw/<product>/<YYYY-MM-DD>/, outside git |
| Backup | none right now (rule 6); a provider can produce an export again while the account exists |
ChatGPT
Export. Profile menu, Settings, Data controls, Export data, Export, then confirm. The
link arrives by email, and two limits matter: it can take up to 7 days to be built, and it
expires 24 hours after it arrives. Download it signed into the same account that asked.
The plan matters. The built-in export does not exist on ChatGPT Business or Enterprise, only on the personal plans.
What is inside. A zip whose useful file is conversations.json, next to an HTML rendering and
the account metadata. A very large history is split into numbered files.
Gemini (Google Takeout)
Export. takeout.google.com, signed into the account that used Gemini. Then:
Deselect all.- Check Gemini, which is the Gems data.
- Scroll to My Activity, click
All activity data included,Deselect all, check Gemini Apps,Ok. This is where the conversations actually are. - Set the format to JSON. In My Activity's
Multiple formatsbutton, activity records default to HTML. HTML is a rendering; JSON is data. Getting this wrong means exporting again, and the archive takes hours to build. - Delivery by email link,
.zip, and pick a max archive size that avoids being split if possible.
Takeout can also repeat the export on a schedule (every 2 months for a year), which removes the clicking for this provider.
Claude
Export. Initials in the lower left, Settings, Privacy, Export data. It works on the web
app and on Claude Desktop, and NOT on mobile. The link arrives by email and expires in 24 hours.
Who may ask. On Free, Pro and Max, the person themselves. On Team and Enterprise, only the organization's Primary Owner, which is what makes the FAI account exportable at all: I am it.
After every download, one command
From the context repository, inside its nix develop shell:
just raw-add <product> ~/Downloads/<the-export>.zipIt copies the export, unchanged, into ~/context-raw/<product>/<date>/, writes SHA256SUMS next
to it, and records a manifest in the repo (file names, sizes and checksums, never content). It is
idempotent and refuses to overwrite a file with different content; just raw-verify checks later
that the local exports still match. The import itself, with the classification, comes after.