Your data: what leaves, export, delete
DIN keeps the record on your machine. This page says what can leave it and when, how to take a copy of everything, and how to delete it. For the personal data DIN CTRL holds about you as a customer (your email, your billing record), write to support@dinctrl.com. The privacy notice is the full statement, and names privacy@dinctrl.com for these requests.
Where your data is
din where prints every path an install uses. With the default prefix:
~/din/records: the records of your first field. This is your data.~/din/fields/<name>/records: the records of each field you made withdin field new.~/.din/vault: the originalsdin import claude-aikeeps of your claude.ai export.~/din/.din: the field token, settings, licence key and entitlement.~/.din: the capture plugin's settings, spool and run folders, your capture routes, the install id the licence check-in sends (install-id, from 1.0.39) and, on an org install, the per-install fingerprint key.
A store is plain files: there is no database and no account behind it.
What leaves your machine, and when
A free install sends nothing on its own: these are the only things that send anything, each when you run or switch it on. The one exception is a paid install's licence check-in, which also runs by itself at most once a day when its field or console starts (the first item).
din activate,din activate --renew,din license --checksend your licence key and the install id toapi.dinctrl.comand get back a signed entitlement. On a paid install,din field startanddin consoledo the same check-in at most once a day, and each signed check-in lasts 14 days. The install id is a random number, derived from nothing about you. No record is sent. A free install never checks in.din grade on,din regrade --runanddin import --gradesend the text being graded to the model you chose to grade with, and to nobody else: through your assistant CLI (Claude Code sends it to Anthropic, Codex to OpenAI, on that CLI's own sign-in), to the vendor of your own API key (Anthropic, OpenAI, or the OpenAI-compatible endpoint you named), or nowhere off the machine for a local model (Ollama, vLLM, llama.cpp). DIN CTRL never pays for these calls and never sees them.din deps refreshdownloads the signed library catalog and sends no package name. The opt-ins that do send names and versions are listed on Dependencies.din hosted pushsends this install's records to a hosted DIN console you connected. It is the one command that sends records off the machine, and only when run (or at login, if you chosedin autostart on --with-push).- Webhooks, on a paid plan and only if you add one: the field posts a pointer (an id, the project, a timestamp, never a record) to the address you named.
- The console's Upgrade button sends your name, email and plan to our checkout, and
din-import-graphitireads from the Graphiti or Zep endpoint you name.
The public website sets no cookies or trackers. The contact and signup forms store only what you type.
Export everything
Your store is the export: copy the directories.
din field stop
tar -czf din-records.tar.gz ~/din/records
tar -czf din-fields.tar.gz ~/din/fields # if you made more fields
tar -czf din-vault.tar.gz ~/.din/vault # if you imported claude.ai chats
din field start
A new install pointed at a copied store reads it straight back. For rows rather than files, din query <filter> --json prints the records a filter matches, and din recall, din brief and din query take --project, --since and --until.
Delete
No DIN command deletes records, on purpose: a record is the one thing whose loss you cannot undo, and no plan change, cancellation or uninstall removes one. To delete, stop the field and remove the directories yourself:
din field stop
rm -rf ~/din/records # the first field's records
rm -rf ~/din/fields/<name> # one extra field, whole
rm -rf ~/.din/vault # the claude.ai originals
To remove DIN itself as well, follow Uninstall.
A secret in a record. dinctrl-store security-scan --write redacts credentials it finds in stored records. Each changed record is superseded, never edited in place, and from 1.0.39 the old version that still holds the credential is moved to the store's .quarantine/ folder, which you can then delete. --keep-superseded-plaintext keeps it in superseded/ instead.
Records you pushed to a hosted field are on that hosted field. Deleting them here does not remove them there.