journalism // primary record
github   install

Track one politician.
Only what they say and do.

A terminal agent that keeps a cited file on one political person of interest. Their own posts, their own speeches, their votes, their money. No news. No aggregators. No summaries of summaries.

30+ model providers9 primary sources0 news outlets1 person of interest
+--------------------------------------------------------------------------------+ | JOURNALISM // PRIMARY RECORD AGENT ON | 412 RECORDS | 08:14 PT | | [ FILES ] POI TALK SETTINGS TAB / SHIFT-TAB TO SWITCH | +--------------------------------------------------------------------------------+ | + Briefings | # Alexandria Ocasio-Cortez | | + Timeline | | | + Topics | > Living file. Every factual line tied to a record.| | + Transcripts | | | Profile.md | ## What they say | | Connections.md | - Posted, "Healthcare is a right for every | | Open Questions.md | American." [4](bsky.app/...) | | | - Voted Yea, HR 9500, roll 305. [7](clerk.house...) | | | | | | ## Money | | | - $12,400 to [payee], 2026-09-14. [9](fec.gov/...) | +--------------------------------------------------------------------------------+ | TAB SWITCH ARROWS MOVE ENTER OPEN Q QUIT | | AGENT ON | NEXT POLL BLUESKY 30M | +--------------------------------------------------------------------------------+

The dashboard: files, person of interest, a chat that cites records, and settings. Keyboard only.

The rule

Their words

X, Truth Social, Bluesky, their YouTube channel, their official feeds. Verbatim, with the URL kept.

Their record

Congress.gov bills, House and Senate roll-call XML, FEC disbursements. Official data, not reporting.

Their speeches

Captions first. If there are none, audio is transcribed with Whisper, Deepgram, Gemini or Voxtral.

No outside facts

The model gets numbered records only. A sentence that cannot cite one is dropped before it reaches the vault.

Run it

npm install -g github:kkaleb-w/journalism
journalism

First run walks through the vault location, provider and key, transcription, the person of interest, and auto-start. Then the dashboard opens.

What it is not

It does not fact-check the person and it does not add context from reporting. It records what they said and did, links every line to the source, and leaves the reporting judgment to you. The vault is plain Markdown and opens in Obsidian.

journalism — MIT — source. Built for reporters, not for feeds.