Inspiration
News feels loud; facts feel faint. We wanted a tool that shows where bias hides in wording and framing—and lets readers view a neutral alternative without handing their article to anyone else. The idea: weigh evidence with a multi-agent “tribunal,” then keep rewriting and summaries device-side so the reading experience stays personal, quiet, and under the user’s control.
What it does
- Choose your scan path: a cloud tribunal for breadth or an on-device model when you want everything to stay on your machine.
- Real-time fact-checking: optional Google Search grounding verifies claims with external sources—6-8 strategic queries per article, cited in tribunal analysis (Cloud Mode only).
- Explainable verdicts: specialized agents (Context, Language, Bias Hunter, Skeptic, Prosecutor, Defense) argue the case; a Judge issues rating + confidence with linked evidence.
- In-page highlights: biased phrases vs. neutral phrasing, shown directly on the article.
- Results dashboard: verdict, confidence, transcripts, grounding citations, and reasoning you can audit.
- Local clarity: rewrites and summaries run on-device (Gemini Nano)—no forwarding, no waiting for servers.
- History & flow: quick/deep modes, side-panel controls, and a timeline of past analyses.
How we built it
- Chrome MV3 extension: service-worker orchestrator (background/), content extraction (content/), Side Panel UI (sidepanel/), and a rich Results page (results/).
- Hybrid analysis
- Cloud Tribunal (Gemini API): parallel agents with optional Google Search grounding that generates 6-8 strategic verification queries, executes real-time searches, and provides external citations; Judge synthesizes a defensible verdict with fact-checked context.
- On-device path: scanning option backed by device-resident model when users prefer local execution (grounding requires Cloud Mode).
- Real-time grounding system: dedicated coordinator generates strategic search queries with AI, executes Google Search via Gemini's grounding tool, extracts citations from authoritative sources, and formats context for tribunal analysis—mutually exclusive with Private Mode.
- Local authoring layer: Chromium Built-in AI (Gemini Nano) handles rewriting + summarizing on-device to keep sensitive passages device-resident.
- Resilient parsing: markdown-first extraction for rating/confidence, with regex/JSON fallbacks.
- Safety by design: no backend servers; keys stored locally; DOM sanitized; least-privilege permissions.
- Stack: Chrome Extension APIs (Side Panel, Storage, Tabs, Runtime), Gemini API (2.5 Pro/Flash/Flash-Lite with Google Search tool), Gemini Nano, JS (ESM), HTML, CSS.
Challenges we ran into
- User flow, v1 → v2 (UX): the MVP mixed status, settings, and action on one screen. We split into two states—Ready to Scan → Results—and moved toggles to Settings (⚙️).
- Async orchestration: coordinating service worker ↔ side panel ↔ results ↔ content; fixed with reconnection guards and lifecycle-safe messaging.
- Normalizing LLM outputs: markdown vs JSON drift; built a multi-strategy extractor with strict schema checks.
- Chrome-specific quirks: storage.local hiccups, injection timing, CSP; added retries/backoff, explicit timing, and CSP-safe rendering.
- Speed vs token budget: introduced Quick vs Deep modes and smart fallbacks; keep payloads lean with local extraction.
- Capability gating: gracefully prefer on-device features when available; surface clear fallbacks when not.
Accomplishments that we’re proud of
- A multi-agent tribunal that yields defensible, readable bias verdicts.
- Real-time fact-checking with Google Search grounding that cross-references claims with authoritative external sources—strategic query generation, citation extraction, and seamless tribunal integration.
- On-device rewriting/summaries that keep text close to the reader.
- Inline highlights that turn abstract bias into visible, fixable text.
- A coherent loop: Side Panel → Scan (cloud or device) → Results → Highlights → Local Neutralize.
- A robust parser that survives format changes and still returns clean numbers.
- History so findings are reviewable, comparable, and sharable.
What we learned
- Agent design matters: clear roles (Prosecutor/Defense/Skeptic/Judge) reduce “vibes,” increase traceable reasoning.
- Chrome MV3 realities: service-worker lifecycles, cross-context state, and CSP shape architecture choices.
- Local-first UX earns trust: a simple scan-mode choice plus device-side authoring lowers the “do I dare click this?” barrier.
- Small UX edges—load cues, tooltips, copy tone—change confidence more than big features.
What’s next for BiasNeutralizer
- Enhanced grounding: source quality scoring, claim-level citation mapping, offline caching of verified facts, and visual citation cards in results.
- On-device styles: neutralization presets (journalistic, academic, simplified).
- Audit Mode: clearer evidence cards, verdict trace, exportable report with grounding sources.
- UX polish: finer highlights, better empty states, guided onboarding.
- Reliability & metrics: smarter fallbacks, rating calibration, offline resilience.
Built With
- chrome-built-in-ai-?-gemini-nano-(rewriter
- chrome-extension-apis-(background-service-worker
- chrome-extension-mv3
- chrome.storage.local
- css
- dompurify
- gemini-flash-latest
- gemini-flash-lite-latest
- google-generative-language-api-?-gemini-2.5-pro/flash
- grounding-with-search
- html
- intersectionobserver
- javascript-(es-modules)
- katex
- languagemodel)
- messaging)
- no-external-databse
- prompt-api
- rewriter-api
- runtime
- side-panel
- storage
- summarization-api
- summarizer
- tabs
Log in or sign up for Devpost to join the conversation.