Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐Ÿ›ก๏ธ VeriFact

Verify before you trust.

An open-source credibility engine for news, web content & social media โ€” provenance, claim verification, source reputation and manipulation signals, with evidence you can check yourself.

CI License: Apache-2.0 Python 3.10+ PRs Welcome GitHub stars

๐ŸŒ Try the live demo โ†’ aravindb98.github.io/verifact โ€” paste a link, an X post, or a WhatsApp forward. Nothing to install.

โญ If VeriFact helps you (or someone you know who forwards everything on WhatsApp), please star the repo and fork it โ€” stars and forks are how open-source tools against misinformation get discovered. โญ


Why VeriFact?

Misinformation moves faster than fact-checkers ever can. Most of us have no practical way to answer a simple question in the moment: "Should I trust this article / post / forward?"

VeriFact answers it the only honest way software can โ€” not with a magic true/false oracle, but with stacked, transparent evidence:

Signal Question it answers Works with zero keys?
๐Ÿ›๏ธ Source reputation Who published this? Wire service, satire site, known disinfo outlet, 3-week-old lookalike domain? โœ…
โœ๏ธ Writing-style signals Does it behave like journalism โ€” attribution, bylines, dates โ€” or like viral bait (ALL CAPS, "share before deleted")? โœ…
๐Ÿ” Claim extraction What are the actual falsifiable claims here? โœ… (heuristic) ยท ๐Ÿ”‘ LLM mode
๐Ÿ“š Fact-check databases Has Snopes / PolitiFact / AltNews / AFP already checked this? ๐Ÿ”‘ free Google key
๐ŸŒ Independent corroboration Is anyone reputable and independent reporting the same thing? โœ… (GDELT) ยท ๐Ÿ”‘ better with Brave/Tavily
๐Ÿ–ผ๏ธ Media provenance Does the image carry C2PA Content Credentials? Editing traces? Where did it appear before? โœ…

Every report ends in an evidence list with links โ€” VeriFact shows its work, and refuses to score at all (insufficient_evidence) when the signals aren't there. No truth oracle. No black box.

๐Ÿ“ฑ Social posts & forwards

Input How VeriFact handles it
X / Twitter link โœ… Full post extraction via public embed endpoints (FixTweet โ†’ X syndication) โ€” text, author, follower count. No login needed.
Instagram / Facebook / LinkedIn link โš ๏ธ Link-preview (OpenGraph) text where publicly available, clearly flagged as partial extraction. Login-walled/private posts โ†’ honest error + "paste the text".
WhatsApp forward ๐Ÿ“‹ Forwards have no public URLs โ€” paste the text (Text tab / CLI). Forward-style virality patterns are exactly what the style analyzers target.
Any pasted text โœ… Full style, claim, fact-check & corroboration analysis.

On social posts the platform is deliberately down-weighted in scoring โ€” anyone can post on X; the poster and the corroboration are what matter.

โœจ Three ways to use it

1. Web UI โ€” paste a link or a suspicious WhatsApp forward:

pip install git+https://github.com/AravindB98/verifact
verifact serve            # โ†’ open http://127.0.0.1:8000

2. CLI โ€” for terminal people and scripts:

verifact analyze https://example-news.com/big-story
verifact analyze "Scientists CONFIRM this one weird trick cures everything!!!"
verifact analyze suspicious_photo.jpg --caption "flood in Chennai yesterday"
verifact analyze <url> --json      # full machine-readable report

3. Chrome extension โ€” one-click check of the page you're reading: load extension/ via chrome://extensions โ†’ Developer mode โ†’ Load unpacked (talks to your local verifact serve).

Or run everything in Docker:

docker compose up          # โ†’ http://127.0.0.1:8000

๐Ÿ–ฅ๏ธ What a report looks like

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ VeriFact v0.1.0 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿšจ Very low credibility  22.4/100  (confidence 71%)                   โ”‚
โ”‚                                                                       โ”‚
โ”‚ 3 red flag(s). Strongest signal โ€” source reputation:                  โ”‚
โ”‚ newsbreaking-24.xyz is not a recognized outlet; registered 41 days    โ”‚
โ”‚ ago; judge by corroboration, not brand.                               โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
 Signal                  Score  Details
 Source reputation          15  Very new domain, cheap TLD, no reputation record
 Writing-style signals      31  Sensational phrasing (4 hits), no attribution,
                                pressure to share
 Claim extraction           60  3 check-worthy claims extracted
 Independent corroboration  30  No independent coverage found
 Fact-check databases      skip No API key configured (free key available)

โš™๏ธ Configuration (all optional)

VeriFact is zero-key first: it works out of the box. Keys unlock depth โ€” copy .env.example to .env:

Variable Unlocks Cost
VERIFACT_ANTHROPIC_API_KEY or VERIFACT_OPENAI_API_KEY LLM claim extraction & reasoning paid
VERIFACT_GOOGLE_FACTCHECK_API_KEY Global ClaimReview fact-check lookup free
VERIFACT_BRAVE_API_KEY or VERIFACT_TAVILY_API_KEY Live corroboration search free tier

Skipped analyzers are reported transparently โ€” never silently faked.

๐Ÿง  How scoring works

Weighted, confidence-modulated average across all signals that produced a score, with two honesty rules baked in:

  1. โ‰ฅ2 scoring signals required, otherwise verdict = insufficient_evidence.
  2. Known-bad-source guard: a high-confidence "this is a flagged disinfo outlet / fact-checked false" signal caps the total at 30 โ€” good grammar can't rescue a known liar.

Read the full design in docs/architecture.md.

๐Ÿ—บ๏ธ Roadmap

  • Social-post deep links (X/Twitter + OpenGraph fallback) โ€” shipped in v0.2.0
  • Public demo website โ€” live on GitHub Pages
  • Telegram public channels & YouTube transcripts
  • AI-image detection ensemble + C2PA signing verification UI
  • Multilingual sensational-term packs (Hindi, Tamil, Spanish, PT-BRโ€ฆ)
  • Propagation analysis โ€” who amplified this first?
  • Browser extension on Chrome Web Store / Firefox Add-ons
  • Claim-level corroboration matrix (per-claim search, not per-article)

Want one of these sooner? Fork the repo, grab an issue, and send a PR โ€” see CONTRIBUTING.md.

โš–๏ธ Honest limitations

  • VeriFact estimates credibility, not truth. A scrappy blog can be right; a legacy outlet can be wrong.
  • Breaking news often has no corroboration yet โ€” VeriFact says "unverifiable right now", which is the correct answer, not a bug.
  • AI-generated text is essentially undetectable today; we don't pretend otherwise.
  • Source lists are curated and citation-gated, but inherently incomplete โ€” PRs with evidence are the fix.

๐Ÿค Contributing & Community

Contributions of every size are welcome โ€” analyzers, source-list citations, language packs, docs. Start with CONTRIBUTING.md and the good first issues.

If you read this far โ€” that's exactly the kind of person this project needs. โญ Star ยท ๐Ÿด Fork ยท ๐Ÿ› Report an issue

Built with the conviction that the antidote to misinformation isn't censorship โ€” it's making verification effortless.

๐Ÿ“„ License

Apache-2.0 ยฉ 2026 Aravind Balaji

About

Open-source credibility engine for news, web content and social media - provenance, claim verification, source reputation and manipulation signals.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages