Project Info
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
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.
AId Hominem
A live debate coach that transcribes speech, flags logical fallacies, and fact-checks claims in real time.
Setup
Copy .env.example to .env and fill in your keys:
| Variable | Purpose |
|---|---|
DEEPGRAM_API_KEY | Streaming speech-to-text |
OPENROUTER_API_KEY | Fallacy analysis and fact-checking |
OPENROUTER_MODEL | Model override (default: google/gemini-3.1-flash-lite) |
BROWSERBASE_API_KEY | Web search for fact-checking |
Run
npm start
Open http://localhost:4173. Use Start for live Deepgram streaming or Demo for a canned debate.
Desktop app (Electron)
npm install
npm run desktop
Use Mic for microphone input or Desktop for system audio. macOS will prompt for microphone, screen, and system-audio permissions. Closing the window hides the app to the tray; Quit from the tray menu exits.
Analysis
View
Metric
- 11
- 4
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- Google GeminiClaimed
- Node.jsClaimed
3 of 5 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
55 KB
Source files
6
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
uci-tuan4/AI_Hominem
16 files · 152 KB · @ 3ff1808
Structure
Interface
2 files · 13%Screens, components and styles rendered to the user.
Application logic
5 files · 31%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript76%
- CSS17%
- HTML5%
- Markdown2%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 11 development-only dependencies.
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.