This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend Hawk is a debate room for AI models. You ask one question, and three models answer it side by side, each in its own terminal-style window. After the first round, the models read each other's answers, respond to them, and vote. You can run up to three rounds and watch the answers change.
I built it for Tamara Surla, who is a developer, basically he uses AI so much for his work the problem is that he does not know which model to trust as it can backfire his progress so to build trust I have build this project.
His workflow looked like this:
How Hawk fixes it:
It runs on Render's free tier, so the first load after a quiet period can take about a minute while the services wake up.
Multi-LLM panel debates for coding tasks - several models discuss, vote, and synthesize a consensus while you watch live.
Hawk runs an interactive CLI with two modes:
/hawk) that argues in rounds, casts Approve/Reject/Abstain votes, and produces a synthesized conclusion
No paid subscriptions required. A free OpenRouter key is enough to run a 3-model panel.
:free models/api/debate) talks to the backend, so the browser never calls the engine directly.POST /debate/round streams each round back as server-sent events, so answers appear live as the models write them.main.
Inside the Discussion Room
Hawk is a place where you seat a panel of three AI models, ask one question, and watch them work through it together.
You start on a clean home screen. In the left sidebar you can open Models & keys, and on the right you can click Choose models. Once your panel of three is seated, the question box unlocks. Until then it stays locked, so you can't start half-set-up.
Click New discussion and ask your question once. Each model answers in its own terminal-style window, with the replies streaming in live. You can compare them side by side instead of switching between tabs. In the following rounds the models read each other's answers and respond to them, so mistakes get challenged and you can see where the panel agrees and where it splits. Your debates are kept in History in the sidebar.
I kept it to what your screenshots show. If voting or History works differently from what I described, change those lines to match your app.
Run it locally
Hawk runs on your own computer with no paid hosting. It has two parts that run side by side: the engine (the Python backend) and the website (the Next.js frontend).
REQUEST:
If you see "The Hawk engine failed", it almost always means a model provider rejected the request, not that Hawk is broken. First, check your API key: make sure it's pasted in full, matches the provider of that seat's model, and is still active in your provider's dashboard. Then check its limit, because free keys have usage caps and some models have no free allowance at all. Wait a minute and retry, or swap the failing seat for another model in Models & keys. If you see "The Hawk engine isn't running" instead, the app can't reach the engine, so start it (locally) or wait about a minute for it to wake up (hosted).
If you like the concept please give me a star ⭐️ on github [Alejandro (Project-Hawk)](https://github.com/Alejandro356bc/project-hawk)
Prize categories which I am applying or falling under are :
Gemma
Gemma is one of the open-weight models I seat at the Hawk table. It takes one of the three seats in a debate, answers the same question as the other two models, then reads their answers and responds to them. Hawk is built to compare models side by side, so Gemma gets tested directly against other models on the same question, and it can be swapped in or out of any seat without changing the code.
Render
Both halves of Hawk run on Render as two web services. The Python (FastAPI) engine streams debate rounds live, and the Next.js website talks to it. Both services deploy straight from my repo, so every push to main rebuilds and redeploys them automatically. The live demo linked in this post runs on Render.
GitHub
The whole project lives in a public GitHub repository, from the engine in src/ to the website in frontend/. GitHub is the source of truth for the project, and pushing to main is what triggers each deployment on Render.