Published:
Chat-O has always focused on picking the right model for the job. Now we are applying that to the conversation itself. Chat Rooms let you put several AI characters into one chat so they work as a panel, rather than forcing you to bounce between separate tabs.
Part feature announcement, part post-mortem on building it with OpenCode, the open source coding agent, running the Omen Alpha model. Spoiler: building it went smoothly. The review pass is what actually made it production-ready.
Open any chat, click Room, and choose the characters you want. Chat-O includes five defaults: The Skeptic, The Proofreader, The Builder, The Optimist, and The Researcher. You can also build your own with custom instructions, a color, and a dedicated model.
Then you just talk. It feels much closer to a real working group than a standard chatbot round robin:
We have argued before that single-model chatbots are holding you back. Chat Rooms turn that argument into a shipping feature.
Rooms run on the same stack as the rest of Chat-O: Elixir, Phoenix LiveView, Postgres, and Oban for background work.
The core mechanics:
kind, an accent color, and a model identifier to the prompts table. Creating a new persona takes a form, not a deploy. chat_session_members table maps personas to a session in order, with a unique index so a persona cannot be added to a room twice. turn_id. That caps follow-ups at one and ties reactions to the answer they belong to. On September 4, OpenCode announced Omen Alpha: a new stealth model, exclusive to its Go subscription, pitched as “$100 usage for $10”. No model card, no benchmark table, no named lab standing behind it. The maker still has not claimed it.
We built the entire feature with Omen Alpha inside OpenCode the day it dropped. The honest takeaway: it was fast, and it handled the job well. A model available for barely 24 hours is already driving production code. The model itself was solid, but the tight feedback loop mattered just as much.
The workflow was straightforward. We outlined the feature in a planning doc, and the agent generated the migration, context module, two Oban workers, and the LiveView UI. From there, we tested on a real dev server with real accounts and live model calls, feeding errors back into the chat. Blank message bubbles? Traced to a dead upstream model route and patched in the same session, with a fallback retry added so a broken route can never silently eat a turn again. Input field failing to clear? Fixed right away. Messages rendering without persona badges? Solved in minutes when the agent spotted a missing preload in the PubSub handlers.
That loop (spec, compile, test against live endpoints, patch) is where OpenCode earns its keep. No bouncing between windows, no pasting stack traces back and forth. The agent held the whole codebase in context, and Omen Alpha kept the thread across the database schema, background jobs, streaming, and UI. Clean compile, push to dev, click through, report bugs, repeat. We knocked out what usually takes us several days in a single focused session.
To be clear about what “handled the job well” means: the initial code compiled and ran. The agent moves fast and sounds confident. Unearned confidence is the last thing you want from a code reviewer, which is why we never ship on one model’s word.
Before this branch went anywhere near production, we pointed the agent at Hunyuan Hy4 preview, Tencent’s new open-weight flagship (770 billion parameters, mixture of experts, Apache 2.0), and told it to tear through the diff line by line. Not to be encouraging. To find what was wrong.
It found a handful of issues before we pushed the code: the kind that only shows up when a second set of eyes traces the unhappy paths, retries, and real interaction flow. That review made the feature stronger without turning the post into a catalog of implementation mistakes.
This two-stage setup is what we trust now: Omen Alpha writes the first pass, Hy4 stress-tests it. Two models, two jobs, like the rooms themselves. It is not our first time leaning on an unannounced model either. Last cycle we used Ox Alpha to migrate a full stack codebase from Rails to Go, and before that Optimus Alpha showed up the same way, unnamed and unannounced.
Omen Alpha is not on any API and not on Chat-O. You can only reach it inside the OpenCode agent with a Go subscription. That appears deliberate: OpenCode’s “$100 usage for $10” pricing only works when the model stays inside the product instead of being resold per token. There is still no model card, no public benchmark, no lab claiming credit. If the usual pattern holds, the stealth period ends with a reveal, and models like this tend to surface more broadly later. For now, Go subscribers get it day one, which is exactly how we shipped this feature.
Chat Rooms are live on Chat-O now. Open a chat, hit Room, pick your team, and send a message. See who answers first, watch the rest weigh in, and pull any of them into the discussion with a click.
Join Chat-O and give your next question a room of its own.