Inspiration
We built Aletheia to solve a problem we run into ourselves. You are reading a news article or a Twitter thread and a statement stops you in your tracks. Is it true? How nuanced is it? Checking takes minutes you don't have, and a text can be factually correct and still slanted or manipulative.
The internet has become the defining infrastructure of this era. It changed the speed and scale of information exchange, and the relationship between knowledge, individuals and institutions. We don't think AI should simply produce more information, because information can be as harmful as it is useful. Aletheia uses AI as a tool for questioning and evaluating information.
What it does
Highlight any text on a web page, right-click, select check with Aletheia and Aletheia returns separate gauges instead of just one verdict:
- Overall score: one 0 to 100 estimate that combines all the gauges, shown with a confidence level. It moves toward neutral when the evidence is thin, so the tool never claims certainty it doesn't have
- Truthfulness: each factual claim gets a verdict, backed by quotes and links to sources
- Nuance: absolutism, oversimplification, missing caveats, logical fallacies
- Framing: loaded wording, omissions, cherry-picking, emotional language
- Consistency: internal contradictions and shifting stances (this can only lower the overall score)
- Manipulation safety: anonymous sources, conspiracy patterns, distrust of established sources in general
It also shows a confidence level, the dominant emotion, the likely intent and the share of opinion. A text can be true but heavily slanted, and Aletheia shows that difference.
How we built it
- Extension: Chrome Manifest V3 with a side panel, written in plain HTML, CSS and JavaScript
- Backend: Node.js, TypeScript and Express, running in Docker on a Nebius AI Cloud virtual machine
- Models: NVIDIA Nemotron 3 Super 120B on Nebius Token Factory
- Evidence: Tavily search, in the original language and in English
The pipeline has two parts that run in parallel. For fact-checking, the text is split into self-contained claims, each claim is searched on the web, and the model classifies what every source says about it (supports, contradicts, only repeats, and so on). Our code then computes the verdict from those stances. For the writing analysis, the model rates six categories from 0 to 4, five times, and we average the runs after dropping the highest and lowest.
The key design choice is that the model never outputs the final scores. It classifies, and code turns the classifications into numbers. The overall score is $\text{overall} = 50 + (\text{raw} - 50)\times\text{confidence}$, so it moves toward neutral when evidence is thin.
Challenges we ran into
- Inconsistent scores. Asking a model for a 0 to 100 score gave different answers every run, with spreads of 25 to 50 points. Rating fixed categories, averaging several runs, computing scores in code and rounding to the nearest 5 brought most gauges down to a spread of about 5 to 15 points.
- Circular evidence. An article reporting that someone said something is not evidence that it is true. We split quotes into "did they say it?" and "is it true?", and we discard sources from the same site as the text or copies of it.
- Claims that can't be searched. "He said it was cold" is useless as a search query. We rewrite every claim with real names before searching.
- Honest uncertainty. No evidence is not the same as false. Obscure claims are shown as "not verified" and left out of the score, while absolute claims such as "nobody does it better" need explicit backing.
- Speed. Reasoning models are slow, so we turn off long hidden reasoning for fast steps and run everything in parallel. A full analysis takes roughly 10 to 20 seconds.
What we learned
LLMs are better classifiers than scorers, and a trustworthy tool has to say when it doesn't know. We also learned how much the sourcing logic matters: a fact-checker that confirms a claim with copies of that claim is worse than no fact-checker. We also got to learn more about the various tools from NVIDIA, Nebius and Tavily that we used.
What's next
Streaming results claim by claim, a floating one-click button next to the selection, a Chrome Web Store release over HTTPS, and a larger calibration set with texts in more languages.
Limitations
Scores are estimates based on the sources found, not verdicts. On contested value questions, Aletheia flags the topic instead of declaring a winner. It is a hackathon prototype, not a replacement or an alternative for professional fact-checking.
Built With
- artificial-intelligence
- css
- docker
- express.js
- fact-checking
- html
- javascript
- llm
- manifest-v3
- media-literacy
- misinformation
- natural-language-processing
- nebius
- nebius-ai-cloud
- nebius-token-factory
- nemotron-3-super
- node.js
- nvidia
- nvidia-nemotron
- openai-sdk
- tavily
- typescript
- ubuntu
Log in or sign up for Devpost to join the conversation.