The Truth Lens is a Chrome extension prototype for keeping public context visible when attention moves on.
It scans pages for recognized public figures, adds calm inline cues to matched images, and opens a dossier sidebar with donor-sector context, source packets, review dates, and lightweight memory state. The core idea is simple: when the news cycle gets noisy, relevant history should not disappear just because the page changed.
Modern feeds are built for speed, novelty, and distraction. Context gets washed out fast, especially when the same public figures appear across different stories, platforms, and emotional frames.
The Truth Lens is an attempt to build a browser-side memory aid:
- not a verdict engine
- not a replacement for reporting
- not a claim that every linked record means the same thing
Instead, it tries to surface enough source-backed context that a reader can pause, remember, and inspect.
- Detects recognized full names from nearby page context.
- Adds inline chips for donor context, record count, and saved-memory cues.
- Opens a right-side dossier with:
- reviewed dates
- source tiers
- confidence labels
- dispute notes
- evidence links
- Stores lightweight memory state in extension storage so saved or repeatedly seen profiles can resurface later.
The current extension has three presentation layers:
-
Inline overlay Small chips and a donor strip sit directly on the matched image.
-
Dossier sidebar A fixed right-side panel shows the profile overview, memory state, record packets, and donor context.
-
Memory cues Saved or repeatedly seen profiles show a subtle reminder when they reappear on later pages.
The design goal is to feel editorial and archival rather than alarmist.
- Full-name matching over loose name fragments.
- Context over accusation.
- Calm UI over outrage UI.
- Source packets over unsupported summary claims.
- Memory support over one-time annotation.
-
content.jsScans images and surrounding text, applies overlays, manages memory state, and renders the sidebar. -
truth_db.jsGenerated browser-side dataset consumed by the content script. -
build_db.pySource dataset and generator fortruth_db.js. -
styles.cssVisual system for inline overlays and the dossier sidebar. -
assets/Packaged logo assets used by donor-context rows. -
tests/Health checks for the manifest, generated dataset, assets, and content-script safety constraints.
- Clone or download this repository.
- Open a Chromium-based browser and go to
chrome://extensions. - Enable
Developer mode. - Click
Load unpacked. - Select the repository folder that contains
manifest.json.
- Click
OPEN DOSSIERon an annotated image to open the sidebar. - Click
SAVE TO MEMORYinside the sidebar to pin a profile. - Pinned profiles show a
SAVEDcue when they reappear. - Repeatedly seen profiles can show a
SEEN nXcue even if they are not pinned.
Every record packet should help the user answer a few questions quickly:
- What kind of source is this?
- How direct is the evidence?
- When was this packet last reviewed?
- Is there ambiguity or a dispute note worth seeing before I infer too much?
Each profile in the generated dataset can include:
displayNamenamesoverviewreviewedOndonorSummarynotesdonorSectorsrecords
Each record packet can include:
labelcategoryiconsummarysourceTierconfidencereviewedOndisputeNoteevidence
This is meant to support memory and inspection, not final judgment.
The current prototype references public-source material from places such as:
- OpenSecrets
- CourtListener
- DocumentCloud
- major news reporting linked per record packet
If you expand the dataset, prefer direct source links for each entry instead of generic homepages, and document how each packet was reviewed.
Rebuild the generated dataset after editing the source data:
python3 build_db.pyRun the health checks:
python3 -m unittestRefresh remote logo assets only when needed:
./download_assets.shThe asset script refuses non-PNG responses so HTML error pages are not accidentally packaged as images.
This repository is for research, commentary, experimentation, and public-record UX exploration.
Anyone extending it should:
- verify underlying records before making stronger claims
- avoid guilt-by-association framing
- preserve dispute notes and ambiguity where they matter
- treat annotations as prompts to inspect sources, not conclusions
The Truth Lens is still a prototype, but it now has a clearer product shape:
- calmer inline annotation
- structured record packets
- memory resurfacing
- validation around the packaged data and assets
The next natural steps are an options page, broader topic coverage, and stronger dataset review workflows.
MIT