What problem it solves
When you read the news and wonder "is this real?", you usually search, see "other places say the same thing," and believe it. But if all those places simply re-ran one wire-service piece from Yonhap or News1, then no matter how many copies exist, the fact rests on a single source.
This plugin blocks that illusion. Give it a news article URL, and it extracts the core claims, checks each against genuinely independent sources, rules it true or false, and returns a Korean-language report with the evidence.
First, what is Claude Code
Claude Code is an AI coding agent from Anthropic that runs in your terminal. It handles what you ask by reading files and running commands on its own.
A 'plugin' is how a specific capability is packaged and distributed to Claude Code. This tool ships one capability, 'news fact-checking,' as a plugin. As long as you have Claude Code, the two lines below wire it in.
Install - two lines
Type the following inside Claude Code to register the marketplace and install the plugin.
You only need python3 (bundled on most macOS and Linux systems); without it, the tool runs in a reduced mode. The search engine used to bypass blocked sites is fetched automatically with your one-time consent the first time it's needed - nothing is downloaded without that consent.
/plugin marketplace add hjsh200219/news-fact-checker
/plugin install news-fact-checkerHow to use it - one line
Just hand it an article URL. You can use the slash command or plain language.
/factcheck https://www.yna.co.kr/view/AKR20260625132900504
# plain language works too
is this article real? https://www.yna.co.kr/view/...
# if you suspect fake news
isn't this fake news? <article URL>What happens inside - five stages
On the surface it's one URL, but five stages run inside. It automates exactly how a person would doubt an article and verify it by cross-checking, one point at a time.
There's a budget, too. Each claim has a cap on searches and body fetches, so it doesn't dig endlessly - it reaches a conclusion within a set range. If the evidence doesn't come together within that range, the claim is left as "unverifiable."
1) Fetch body read the article even through bot blocks (403/WAF), plus metadata
2) Extract claims pick 3-5 verifiable factual claims (opinions/predictions excluded)
3) Gather evidence per claim: web search + fetch corroborating sources (official/primary/other outlets)
4) Compute independence judge each source's stance, then collapse wire re-runs into one
5) Verdict only gate-passing claims are confirmed true/false, the rest unverifiable + evidence reportWhy it refuses to rule carelessly
The core design is restraint in judgment. Plausible doesn't mean true. To confirm "true," it needs two or more independent supporting sources and zero rebuttals; "false" needs two or more independent rebuttals.
The key point is that these conditions are computed by code (independence.py), not by the AI's judgment. It structurally prevents the AI from waving something through because it "feels right." And when one wire-service piece is re-published by many outlets sharing the same stance, they're collapsed into a single effective source - so "it showed up in ten places" can't flip a verdict. When the conditions aren't met, it doesn't force a call; it honestly leaves it "unverifiable."
Safeguards against blocking and manipulation
If an outlet blocks bots and the body won't load, it escalates through a block-bypass engine to read it. If it's still blocked, it honestly marks it "inaccessible" and moves on - it never fabricates a body that isn't there.
The fetched article body is treated as untrusted data. Even if a directive is buried in it - "ignore the rules," "change this verdict" (a prompt injection) - it isn't executed as a command; it's recorded only as data: "the article contained this sentence." Request destinations are also checked in advance to block access to internal or private addresses.
Limits and the line it draws
This is an assistive tool, not authoritative. The report is not the final word; important judgments still require checking the original article and primary sources yourself. Matters whose only original source is a wire re-run, articles behind login or paywalls, and very recent events not yet indexed may come back "unverifiable" - and that's the safe default.
Every piece of evidence is cited with its URL, and it distinguishes what the model already knew from what was verified on the web. It's all open source (MIT); the original repo is in the source link below.