codingPythonFastAPIChrome MV3JavaScriptBrave Search API

Unfold


Unfold adds a button to the action bar of any post on X, next to bookmark and share. Click it and a drawer opens inline in the timeline, taking the post apart one claim at a time.

It is not a fact-checker. The verdict is about a single claim, never about the post, and never about the author’s intentions.

Built at the HackBarna AI Summit, Norrsken House Barcelona, 19–20 September 2026, so this is very much a prototype. Feel free to contribute!

The Unfold card open under a post, showing the claim outcome, missing context, a rhetorical signal with the words that triggered it, and the sources

What the drawer shows

Block What it is
Main claim The one independently verifiable factual claim, separated from opinion and rhetoric.
Claim check That claim against web evidence — supported, partially supported, unsupported, unverifiable, or no factual claim — with its sources.
Missing context What a reader needs to know that the post leaves out, even when the claim is right.
Rhetorical signals How the post is written, each signal quoting the exact words that triggered it.
Speaker context Who the author is, neutrally, from Wikipedia.

Five guarantees, enforced in code

The prompt asks the model to behave. These make it not matter when it doesn’t.

  • A highlight never lies. Signal quotes are snapped back onto the real post span, or the signal is dropped.
  • An invented URL never reaches you. Sources are filtered down to URLs that were actually in the evidence.
  • A caller cannot inject pages into the prompt. Client-supplied linked pages are overwritten by server-fetched ones.
  • Link fetching is bounded. No private, loopback, link-local or metadata addresses; two redirect hops maximum, re-checked each hop; content type gated from headers before any body byte; body cut at 40 kB.
  • No evidence means unverifiable, never a guess.

Running it

make setup        # venv, deps, .env
make run-fake     # server on :8000, offline, deterministic, no keys
make extension    # checks the contract, then opens chrome://extensions

Then open x.com and click Unfold on any post. With NEBIUS_API_KEY and BRAVE_API_KEY in .env, make run uses the real pipeline.

Source and full API contract: github.com/ettoreboy/unfold. MIT license.