Sources

Sources

The eight built-in parser sources Personify ships with — what they ingest and how to register an export.

A source in Personify is a parser that knows how to turn an export from a particular product into normalized items. The current build ships with eight, covering the bulk of what most people accumulate in a personal data graveyard: chat logs, email, code, social, and notes.

Each one follows the same pattern:

  1. Download an export from the provider.
  2. Register it once with vault add-export.
  3. Run vault ingest (one-time per export — it's idempotent).

Built-in sources

SourceFormatRegister with
chatgptZIP from openai.com exportvault add-export --source chatgpt --path ~/Downloads/chatgpt-export.zip --account myname@example.com
claudeZIP from anthropic.com exportvault add-export --source claude --path ~/Downloads/claude-export.zip --account myname@example.com
gmailMBOX from Google Takeoutvault add-export --source gmail --path ~/Downloads/Mail-001.mbox --account myname@gmail.com
discordZIP data packagevault add-export --source discord --path ~/Downloads/discord-package.zip --account myhandle
notionMarkdown + CSV ZIPvault add-export --source notion --path ~/Downloads/notion-export.zip --account workspace-name
githubLocal repo / .tar.gzvault add-export --source github --path ~/code/some-repo --account my-org
twitterX archive ZIPvault add-export --source twitter --path ~/Downloads/twitter-archive.zip --account @myhandle
filesFolder of .md/.txt/.pdf/etc.vault add-export --source files --path ~/Documents/notes --account personal

After registering

Once the file is registered, ingest:

bash
vault ingest --all-pending

Or target one export by id:

bash
vault ingest --export-id 7

Re-running ingest is a no-op for already-processed items. To reprocess after a parser improves, pass --replace.

Adding more sources

The parser registry is just a Python entry point. New sources land as part of the package — see the parser layout under personify/parsers/ in the Personify repo and the architecture doc for how items, embeddings, and the graph hang together.

If a source you want isn't here, open an issue with a sample export — most chat and notes formats land in a few hundred lines.