dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
Forward or paste a suspicious email. A team of AI agents dissects it and returns an evidence-cited verdict: SCAM, SUSPICIOUS, or LIKELY SAFE.
Translation pending
SecurityPython · TypeScriptGitHub @Anmols243OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
AEGIS: spot the scam, see the evidence
ForgeHacks 2026 · Track 05: AI + Cybersecurity
"Build an AI-powered solution that helps people recognize, prevent, verify, or respond to scams, impersonation, and fraud enabled by AI or modern technologies."
Paste a suspicious email, drop an .eml file, or forward it to the AEGIS inbox. A team of nine
specialist agents takes it apart in about 15 seconds and returns a verdict
(SCAM / SUSPICIOUS / LIKELY SAFE) where every red flag quotes the exact line, link or header
it came from, plus plain-language next steps and a link you can send to a family member.Read the full README ↗ForgeHacks 2026 · Track 05: AI + Cybersecurity "Build an AI-powered solution that helps people recognize, prevent, verify, or respond to scams, impersonation, and fraud enabled by AI or modern technologies."
Paste a suspicious email, drop an .eml file, or forward it to the AEGIS inbox. A team of nine
specialist agents takes it apart in about 15 seconds and returns a verdict
(SCAM / SUSPICIOUS / LIKELY SAFE) where every red flag quotes the exact line, link or header
it came from, plus plain-language next steps and a link you can send to a family member.
Phishing is still the number one way people get compromised, and AI now writes lures that are personalised, fluent and visually convincing. Spam filters give a silent yes or no, so people never learn why something was a scam and stay vulnerable to the next one. Business-email-compromise scams (fake CEO asking for gift cards) contain no malicious link at all, so link scanners miss them.
/live, "Send a test email" opens your mail app (or Gmail) with the address
and your private code filled in. Paste a suspicious email and send: it appears within seconds,
the nine agents run in front of you, and the verdict is replied in-thread. Only your browser
sees it./live still censors names, addresses and
long numbers on screen, since the page may be screen-shared; links stay as evidence.PRIVATE_RETENTION_DAYS=1); the verdict stays. web (paste / .eml) AgentBoxD webhook AgentBoxD poller
\ | /
+------ analyses queue (SQLite) ---+
|
parse -> triage -> signals -> forensic ----+
\ \-> sandbox ----------------+-> arbiter -> report -> reply in-thread
\ \-> graph (campaigns) -----+ \-> live UI (SSE)
\-> vision (rendered HTML) ---------+
| Agent | What it does | AI? |
|---|---|---|
| parse | Reads raw text or a full .eml (MIME, HTML-only mail, attachments) | no |
| triage | Extracts links, phones, brands, urgency cues, requested action | Kimi K3 |
| signals | 15 deterministic checks: SPF/DKIM/DMARC, lookalike and homoglyph domains, hidden links, sender spoofing, gift-card and executive impersonation | no |
| forensic | Long-context analyst; every finding must quote the email | Kimi K3 |
| vision | Renders the HTML offline (no JS, no network) and asks whether it imitates a brand | Qwen3-VL |
| sandbox | Fetches each link with SSRF guards, looks for password forms and downloads | no |
| graph | Links the email to earlier ones that share infrastructure | no |
| arbiter | Weighted ensemble + corroboration rule + fail-closed | no |
| report | Red flags with evidence, tailored next steps, the email reply | no |
Models run on Featherless AI. The inbox, inbound phishing and prompt-injection scores and the in-thread reply come from AgentBoxD. Full design: ARCHITECTURE.md. API: docs/API.md. Decisions: DECISIONS.md.
Live run against the real models (backend/scripts/eval_live.py, full table in
eval/RESULTS.md): 22 emails, 12 scams and 10 legitimate.
| Metric | Value |
|---|---|
| Scams flagged | 12 / 12 (all at SCAM) |
| Legitimate mail cleared as LIKELY SAFE | 10 / 10 |
| False positives | 0 |
| Time per email | 15 s mean, 32 s max |
This is a small synthetic set: a sanity check of the pipeline, not a real-world accuracy claim.
Requirements: Python 3.11+, Node 20+.
# backend (http://127.0.0.1:8000, API docs at /api/docs)
cd backend
python -m venv .venv && .venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip
.venv/bin/python -m playwright install chromium
export FEATHERLESS_API_KEY=... # required for the AI agents
.venv/bin/uvicorn aegis.main:app --port 8000
# frontend (http://localhost:3000), in a second terminal
cd frontend
npm install && npm run build && npm start
Backend settings (environment variables or backend/.env):
| Variable | Purpose |
|---|---|
FEATHERLESS_API_KEY | Featherless key for the AI agents (without it AEGIS runs degraded and fails closed) |
AEGIS_API_KEY | Require Authorization: Bearer on the API. Set it whenever the backend is reachable beyond localhost; give the same value to the frontend |
AGENTBOXD_API_KEY, AGENTBOXD_INBOX_ID, AGENTBOXD_INBOX_ADDRESS | Inbox integration |
AGENTBOXD_WEBHOOK_SECRET | Enables POST /api/v1/ingest/agentboxd (HMAC-verified) |
AGENTBOXD_POLL | Long-poll the inbox (no public URL needed). Unset: on whenever AgentBoxD is configured and no webhook secret is set |
AGENTBOXD_AUTO_REPLY | Reply in-thread with the verdict card (default true) |
AGENTBOXD_INCLUDE_UNSCREENED | Take mail before AgentBoxD screening finishes, so it shows up at once (default true) |
AGENTBOXD_INCLUDE_HELD | Also read mail AgentBoxD screening held as phishing; needs an API key with the messages:release permission (default false) |
CORS_ORIGINS | Comma-separated allowlist; empty means no CORS headers |
AEGIS_SECRET_KEY | 32 bytes, base64url: encrypts mailbox credentials. If unset, a key is generated into DATA_DIR/secret.key; set it explicitly in production |
PRIVATE_RETENTION_DAYS | Days before pasted and inbox-forwarded email content is purged (default 1) |
INBOX_PUBLIC=true | Demo only: mark test-inbox mail public, so it appears in everyone's campaign graph (it is never listed on Cases or Live) |
AGENTBOXD_BACKFILL_S | On startup, also take inbox mail from this many seconds back (default 0; analyzed mail is skipped) |
MAILBOX_POLL_INTERVAL_S | Seconds between checks of connected mailboxes (default 10) |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Enable Sign in with Google (setup below) |
GOOGLE_REDIRECT_URI | Default ; must match the OAuth client |
Frontend settings: BACKEND_URL (default http://127.0.0.1:8000) and AEGIS_API_KEY
(server-side only; the browser never sees it).
Tests: cd backend && .venv/bin/python -m pytest (82 tests, no network or API key needed).
/inboxconnects Gmail (DECISIONS D15): the backend checks it everyMAILBOX_POLL_INTERVAL_Sseconds and the page refreshes every 3 seconds. Until the setup below is done, Connect is disabled.
Without these two settings the Connect Gmail button on /inbox is disabled. Do this in a normal browser, not an app's
built-in browser panel (Google blocks sign-in there).
https://www.googleapis.com/auth/gmail.modify.http://localhost:3000/api/v1/oauth/google/callback (plus your deployed frontend URL with the
same path).GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET for the backend (and GOOGLE_REDIRECT_URI if
the frontend is not on localhost:3000).Without these two settings the Microsoft button is hidden.
http://localhost:3000/api/v1/oauth/microsoft/callback (plus your
deployed frontend URL with the same path).Mail.ReadWrite, User.Read,
offline_access.MICROSOFT_CLIENT_ID (the Application (client) ID) and MICROSOFT_CLIENT_SECRET for the
backend (and MICROSOFT_REDIRECT_URI if the frontend is not on localhost:3000).Works, verified end to end with real models on Oct 6:
.eml upload, samples) with live agent progress, verdict, highlighted evidence,
share page and abuse report.Limits and not yet verified:
backend/Dockerfile has not been built (no Docker on the build machine).Built during the ForgeHacks window (Oct 3 to 10, 2026) with AI coding assistance (Claude Code).
The v1 pipeline (Oct 3 to 5) is preserved in legacy/v1/; v2 (Oct 6) re-architected it into the
backend/ and frontend/ apps. Featherless, AgentBoxD and the open models are third-party services.
Prompts, pipeline logic, the deterministic checks, the arbiter, the graph, the red-team engine and
the evaluation are this project's own.
http://localhost:3000/api/v1/oauth/google/callbackMICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET | Enable Sign in with Microsoft (setup below) |
MICROSOFT_REDIRECT_URI | Default http://localhost:3000/api/v1/oauth/microsoft/callback; must match the app registration |