What it does

AId Hominem is a live debate coach. It:

  • Listens and transcribes speech in real time via streaming speech-to-text
  • Flags logical fallacies as they're spoken — ad hominem, strawman, false dilemma, slippery slope, circular reasoning, emotional appeals, and more; each with the offending quote, a severity/confidence rating, an explanation, and a suggested follow-up question
  • Fact-checks claims in real time by extracting a checkable claim, searching the web, reading sources, and returning a verdict (supported / contradicted / unclear) with citations

How we built it

  • Backend (server.js) — a Node.js HTTP server with a hand-rolled WebSocket proxy.
  • Speech-to-text — Deepgram streaming STT over a WebSocket proxy.
  • Fallacy analysis — Gemini 3.1-Flash-Lite calls with a structured JSON output schema.
  • Fact-checking — Gemini extracts one checkable claim, Browserbase searches and fetches pages, and a second LLM call produces the verdict with sources.

Challenges we ran into

  • Real-time without latency death — running STT, fallacy analysis, and web fact-checking simultaneously meant carefully throttling work (analysis every ~15s, fact-checks every ~30s) so the UI stayed responsive.
  • Writing a WebSocket proxy from scratch — to keep the dependency footprint tiny we implemented the WebSocket framing protocol over raw TCP ourselves, which meant debugging frame parsing by hand.

What we learned

  • How to architect a single codebase that runs in both browser and Node/Electron contexts.
  • The nuts and bolts of the WebSocket framing protocol.
  • How to coax reliable structured JSON out of LLMs and combine multiple model calls into a search-and-verify pipeline.

What's next for AId Hominem

  • Speaker diarization — attribute flags to who said what in multi-person debates.
  • Post-debate reports — a scored summary of each participant's argument quality and fallacy count.
  • Rebuttal suggestions — go beyond flagging and propose how to respond.
  • Mobile and meeting integrations — Zoom/Meet/Teams plugins for live calls.
  • Tunable strictness — let users dial sensitivity up for casual chats or down for formal debate.
  • Personal coaching mode — analyze your own arguments over time to help you debate better.

Built With

Share this project:

Updates