"Antivirus for information." Highlight any text on any website — or capture any image/screenshot — and get an AI-powered verdict in under 10 seconds.
| Everyone Else | Cipher |
|---|---|
| Single-model checkers | Multi-Model: Groq (Llama-3.3) and Gemini 1.5 Flash |
| No caching | Qdrant Semantic Cache — same claim, different wording = ⚡ Instant |
| Only works on selected text | Text Selection + Full-page OCR + Dynamic Live Search |
| Outdated Info | Dynamic Hybrid Radar — Real-time web gathering via Tavily AI |
| Number, no story | Manipulation Meter scores emotional language and fake news framing |
Cipher uses a Retrieval-Augmented Generation (RAG) pipeline optimized for the live web:
- Semantic Cache (RAG First): Searches Qdrant Cloud for a semantically similar claim (3072-vector match). If found, returns the verdict in under 100ms.
- Web Search (Dynamic Fallback): If no cache match exists, it performs a real-time search using Tavily AI.
- Multimodal Analysis: Claims are analyzed by Gemini 1.5 Flash (Multimodal/Vision) or Groq to provide a stance (Supported, Refuted, or Uncertain).
Cipher/ ← Monorepo root
├── backend/ ← Python FastAPI (deploys to Railway)
│ ├── main.py ← /verify, /stats, /tone, /ocr endpoints
│ ├── routers/
│ │ ├── verify.py ← REFINED: Hybrid-RAG (Cache + Search) logic
│ │ ├── ocr.py ← AI image/screenshot fact-checking
│ │ └── tone.py ← Manipulation / Bias analysis
│ ├── services/
│ │ ├── cache_service.py ← NEW: Qdrant cloud semantic cache
│ │ ├── search_service.py ← NEW: Tavily live web search API
│ │ └── llm_client.py ← Groq / Gemini JSON client
│ ├── Procfile ← Railway start command
│ ├── requirements.txt
│ └── .env.example
│
├── cipher-extension/ ← Chrome Extension Manifest v3
│ ├── manifest.json
│ ├── content.js ← Professional UI + Draggable Card + Badge
│ ├── popup.html ← Toolbar telemetry popup
│ └── icons/ ← Transparent branding assets
│
├── dashboard/ ← Next.js Professional Frontend (Vercel)
│ ├── src/app/page.tsx ← GSAP-powered Retro Landing Page
│ ├── src/app/dashboard/ ← Live System Stats & Telemetry
│ └── src/components/ ← Reusable Retro Design System (Navbar, Cards)
│
├── docs/ ← Comprehensive project documentation
└── README.md ← This file
-
Backend:
cd backend && python -m venv .venv && source .venv/bin/activatepip install -r requirements.txt- Add your keys (
TAVILY,GROQ,GEMINI,QDRANT) tobackend/.env. uvicorn main:app --reload
-
Dashboard:
cd dashboard && npm install && npm run dev
-
Extension:
- Load
cipher-extension/in Chrome via Developer Mode. - Point
BACKENDto your production URL.
- Load
- Dynamic Radar: Text highlight → Real-time fact-check badge (✅ / ❌ /
⚠️ ) - Hybrid-RAG: Instant cache hits via Qdrant Semantic memory.
- OCR Radar: Right-click image → Fact-check all text inside screenshot.
- Manipulation Meter: AI score for emotional language & conspiracy framing.
- Professional Dashboard: Next.js stats and live processing telemetry.
- Multilingual claim detection (Support for 50+ languages).
- Enterprise API for newsrooms + Slack/Discord bot.
- Mobile Safari & Firefox ports.
- Deep-fake video detection lab.
- DEPLOYMENT_READY.md — 🛰️ Step-by-step launch guide.
- ARCHITECTURE.md — System design & data flow.
- PERFORMANCE_REPORT.md — ⚡ Speed & accuracy benchmarks.
- DEMO_GUIDE.md — 🎥 How to record your demo.
- AI/LLM: Groq (Llama-3.3-70B), Gemini 1.5 Flash
- Search Engine: Tavily AI (Native dynamic web gathering)
- Vector DB: Qdrant Cloud (3072-dim Semantic Cache)
- Backend: FastAPI + Gunicorn
- Frontend: Next.js 14 + GSAP + Tailwind CSS