M A R K · I N T E R C E P T O R
Watching the reflection of Facebook watching us. A way to look inside of the algorithm. v0.2.0 — SUPERCHARGED
+ ╔════════════════════════════════════════════════════════════════╗ + ║ Capture your own Facebook session telemetry. ║ + ║ Watch it render as a 3D cosmos. ║ + ║ Let the mirror tell you who you are when the algorithm ║ + ║ is watching. ║ + ╚════════════════════════════════════════════════════════════════╝
A two-part, localhost-only toolkit for algorithmic self-research:
- SESSION·COSMOS — captures the hidden telemetry fields Facebook/Meta attaches to every request, and renders them live as a navigable 3D space you can fly through.
- REFLEX — reads the captured stream back offline and produces a single self-contained HTML portrait of the feedback loop between you and the ranking algorithm. 13 analysis panels covering surface transitions, hook moments with permutation-tested significance, hover→action conversion, ad dose-response, time-to-action survival curves, and the rarely-seen self-surveillance meta-layer — Facebook's own telemetry of you, captured from inside your browser.
Pure Python stdlib backend. Zero build step frontend. Nothing leaves your machine. No calls home.
▓▒░ ENTITY FINGERPRINT ░▒▓ captures : localhost only exfil : none decoder : 118 patterns / 12 categories / 97.9% coverage on real data stats : MAD bursts · Welch periodogram · Laplace Markov · permutation tests outputs : ONE html file · no JavaScript framework · opens with a double-click
Table of contents
- What you get
- What it reveals
- $\color{#ff4fd8}{\textsf{What data we capture}}$ ◀ new in v0.2.0
- $\color{#ff4fd8}{\textsf{The 13 analysis panels}}$ ◀ new in v0.2.0
- $\color{#ff4fd8}{\textsf{Taxonomy — 12 categories}}$ ◀ new in v0.2.0
- $\color{#ff4fd8}{\textsf{Statistical rigor}}$ ◀ new in v0.2.0
- Quick start
- Architecture
- Session Cosmos in depth
- Reflex in depth
- Repository layout
- Privacy and ethics
- Troubleshooting
- Platform notes
- Roadmap
- Contributing
- License
What you get
| Component | What it does | Runs in | Inputs | Outputs |
|---|---|---|---|---|
cosmos_relay.py v2.0 | WebSocket broadcaster + HTTP ingest + NDJSON recorder + multi-kind event routing + monotonic __relay_seq stamp | A terminal (Python 3.7+) | HTTP POSTs from the userscript | Live WS stream + session.ndjson |
session_cosmos.html | 3D visualizer (Three.js, single file, no build step) | Your browser | WS stream from the relay | A flyable cosmos |
facebook-interceptor.user_1.js | Userscript v1.1 — hooks fetch / XHR / sendBeacon, extracts blob fields and activity names | Tampermonkey | Your browsing | POST requests to 127.0.0.1:8766/ingest |
facebook-interceptor.user_2.js v2.0 | Supercharged — adds response latency, localStorage buffer (survives relay restarts), scroll-velocity sampler, visibilitychange sensor, per-tab id, @match for Instagram + Threads | Tampermonkey | Your browsing | Request + input + visibility events to relay |
reflex.py v0.2.0 | >td >A terminal (Python 3.9+) | NDJSON (one blob per line) | One report.html | |
reflex_discover.py new | Char-trigram Jaccard clustering of unmatched friendly_names → auto-suggests regexes + categories + icons | A terminal | NDJSON file(s) | Python snippet ready to paste into ACTIVITY_PATTERNS |
reflex_live.html new | Real-time portrait: rolling-window analyses re-computed every 750 ms from the live WebSocket stream | Your browser | WS stream from the relay | Live mirror in the browser |
generate_sample.py | Deterministic synthetic session generator | A terminal | Seed + event count | Synthetic NDJSON |
Everything is stdlib only on the Python side. No pip install. No virtualenv. No external network.
What it reveals
On the included synthetic sample (Reflex/sample_session.ndjson, 800 events, seed 1729), Reflex surfaces:
- Next-surface prediction 89.3% accurate versus...
Jack Leighton
