Riven Chat v2 is live
Why we rebuilt chat
The first version of Riven Chat ran on a long-lived VM stack. It worked, but every change touched a snowflake environment. Shipping a tweak meant pushing code, logging into the box, and hoping it stayed healthy. For a product that needs to move quickly, that was the wrong shape.
Chat v2 moves the chat surface onto Riven Auth, our OIDC-based identity layer. The application is now a set of containerized services that deploy the same way every time, and identity is handled by a real auth system rather than ad-hoc session logic bolted onto a VM.
What changed
- Riven Auth (OIDC). Registration, callback, session, and redirect are now standard OIDC flows. We verified each step end to end: a fresh account can register, complete the callback, land in an authenticated session, and be redirected correctly on logout.
- No more VM stack. The chat frontend and backend run as containers behind our edge proxy. Deploys are reproducible, and rollbacks are a version switch instead of a salvage operation.
- Shared session model. Because chat now sits on the same auth layer as the rest of the platform, a signed-in user moves between the app, the API console, and the docs without re-authenticating.
Why this matters
This was foundational work, not a feature release. The guest funnel depends on a clean separation between anonymous guest sessions and authenticated accounts. Ten free prompts on rivenai.io with no account only works cleanly when guest state and account state are different objects handled by the same identity layer. Building that on the old stack would have meant bolting a second identity model onto the VMs. With Riven Auth in place, guest-to-account upgrade is a clean handoff instead of a migration.
It also unblocks the rest of the roadmap. When auth is a service rather than an accident, the things that follow it — team workspaces, billing, usage metering, per-user model access — have a stable surface to build on. Every product decision that touches identity used to be a special case; now it is a call into the same API.
What we verified
Before flipping the switch we walked the full identity path manually and in automated tests. The point was to make each of these flows boring and correct, because identity is the one place where a quiet bug becomes a security incident:
- Registration with email confirmation and the OIDC callback redirect
- Session creation and persistence across reloads
- Logout destroying the session and redirecting to a known safe page
- Guest prompt flow that does not require an account, with the upgrade path into a real session
Each of these failed loudly during the build on purpose, then passed. The point of moving to OIDC was not novelty; it was to make these flows boring and correct.
What is next
The chat surface itself is straightforward now; the work shifts to what runs through it. The live model catalog holds 160+ models behind one OpenAI-compatible API, and Chat v2 is the primary place people try them. You can test it today at rivenai.io with 10 free guest prompts, no account required.
For the API path, the base URL is https://api.rivenai.io/v1. It is a drop-in OpenAI SDK replacement: change base_url and your key, keep everything else.
from openai import OpenAI
client = OpenAI(
base_url="https://api.rivenai.io/v1",
api_key="rk_live_...",
)
resp = client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "Summarize OIDC in one line."}],
)
print(resp.choices[0].message.content)Get started
Create an account at /sign-up for authenticated access to all 160+ models, or read the platform docs to wire the API into your own code.