Local-first analysis tools for personal social media exports (Facebook, Twitter/X). Everything runs on your own machine against your own export files — nothing leaves your disk.
| Script | Purpose |
|---|---|
dmscan.py |
Scan Twitter DM export data |
tweetscan.py |
Scan and filter tweet archives |
patterns.py |
Temporal/behavioral pattern extraction across an archive |
pubcontent.py |
Public-content analysis (posts, engagement) |
altan.py |
Alt/secondary account archive analysis |
twan.py |
Twitter archive analysis |
gendersex.py |
Topic-specific content analysis |
motif_significance.py |
Register-transition motif detection with a marginal-preserving null (after Uri Alon's network-motif method). Distinguishes real behavioral patterns from base-rate artifacts via Z-scores against a shuffled ensemble. |
memory_palace.py |
Method-of-loci memory-palace generator (classical Ad Herennium rules via Frances Yates). Turns an ordered fact list into loci + imagines agentes — a mnemonic front-end for the timeline/lifelog. |
motif_significance.py implements the core discipline from Alon's Introduction to
Systems Biology (ch. 3-4): a pattern is only real if it beats a null model that preserves the
trivial marginals. Alon's lesson — the naive random null over-credits structure; you must
preserve each node's degree (here, each register's total frequency) before a Z-score means
anything. It reports three motif classes: autoregulation (does a register persist?),
transitions (which register→register jumps beat base rates?), and feed-forward triples.
memory_palace.py implements the classical art of memory as Yates reconstructs it:
ordered loci at moderate spacing/lighting, and imagines agentes — active, striking images
(beauty or ugliness, ornamented or disfigured, rare not ordinary). The loci preserve order;
the images preserve facts. It's a database front-end that predates databases by two millennia.
These began as working scripts against real exports (77k+ messages, 68k+ tweets across two accounts, a 17-year Facebook archive). Generalization into a proper CLI is in progress.
- Normalize the common export-parsing code into a shared module
- One CLI entry point (
archive-tools scan <export-dir>) - DuckDB-backed unified corpus ("lifelog") across platforms
- Whisper transcription pass for voice-message folders
- Charts/report output (the current scripts print to stdout)
Personal archives are the most sensitive data most people own. These tools assume the export never leaves your machine: no API keys, no uploads, no telemetry.