Sound approach. Use SET NX with the TTL so check-and-claim is atomic, and only process when the set succeeds. Acknowledge duplicates with a 200 so retries stop.
Ask once. Hear every model. See where they disagree.
One question goes to Claude, ChatGPT, Gemini and Grok at the same time. Bring your own API keys: you pay providers directly, at their rates, with no markup.
One question. Three answers. The disagreement, on top.
A replay of one Consult turn, exactly as the app shows it. Flip between each model's answer and Concord's, or open the lens to read the whole thread as one model.
REST with an OpenAPI contract. tRPC's type safety is excellent while every client is TypeScript, but your mobile client won't be. Write the spec first, generate the TypeScript client from it, and the web team keeps most of the ergonomics. The cost is some ceremony up front; the payoff is one contract every client can read.
tRPC now. With three engineers and one client, iteration speed matters more than a contract nobody else consumes yet. When mobile arrives, expose the procedures you need through an OpenAPI adapter instead of rewriting the layer. Designing for a client that is a year away is how small teams slow down.
REST with OpenAPI. The mobile client is the deciding constraint: an adapter over tRPC works, but it tends to leak procedure-shaped endpoints into a public API you then have to version. Generate the web client from the spec so type safety isn't lost. Make the spec the source of truth, not an afterthought.
You're already doing this by hand.
You ask one model and don't quite trust the answer. You paste the question into a second tab, then a third, re-explaining the context each time, and do the comparison in your head. Concord does the asking in parallel and the comparing in the open.
Three steps, one thread.
Ask once. Pick which providers join this turn; the rest of the thread keeps its context.
See where they agree and where they don't. Switch the lens to re-read the thread through any one model.
Act on the recommendation, export the thread as a write-up or the full transcript, or share a read-only link.
Two models approved the plan. One found the bug.
Agreed: atomic claim, 24h TTL. Return fast and hand the work to a queue, so slow processing doesn't trigger retries in the first place.
Two failure modes. Providers can retry for days, so a 24h TTL lets late retries through. And under memory pressure Redis can evict keys before they expire: a double charge with no error anywhere. Put a unique constraint on event_id in the database.
Built to be kept open all day.
The comparison is the start. These are the parts that make it a tool.
Re-read the entire conversation as Concord's synthesis, or as if only one provider had been asked. A view, not a filter: nothing in the thread is lost.
Reusable instructions added before or after your prompt automatically, for every provider or just some.
Tighten a rough prompt before it's sent. You review the change first.
Repeatable consultation pipelines, built on a canvas, with checkpoints where you step in, run inside the thread.
Turn a thread into a composed report, or export the full transcript, as a PDF.
Send a read-only link to anyone, no account needed. They can switch between every model's answer; your costs and hooks stay private.
Tokens and dollars for every turn, per provider. It's your key, so it's your number.
Ask something you'd rather not keep. Ghost conversations never land in your history and can't be shared.
First-party providers today. Next: any OpenAI-compatible endpoint, whether self-hosted, a gateway or local.
Your keys. Their rates.
You connect your own provider API keys. Requests go to each provider at their standard pricing, and they bill you directly. Concord never adds a markup to tokens.
A second opinion before your agent commits.
We're building an MCP server so a coding agent can call Concord mid-task, get a multi-model review of its plan, and see where the models disagree before it writes the code. Not available yet.
Join the waitlist to hear when it ships →{
"mcpServers": {
"concord": {
"url": "https://mcp.concord-ai.dev",
"headers": { "Authorization": "Bearer cnc_…" }
}
}
}
// agent → concord.consult(plan, ["claude","gpt","gemini"])
// ← consensus, divergences, recommendation
Bring a question. Leave with an artifact.
A decision write-up
The options, what every model agreed on, and the call you made.
Flagged risks
What the models raised, with the catch only one of them made kept visible.
A risk list, with the splits
Each risk marked where the models disagreed, so you know what to test first.
A trade-off table
Which option survives production, and which model weighted which cost.
I kept doing the same thing: ask one model, not quite trust it, paste the question into another, and compare the answers in my head. The useful part was never any single answer. It was where they disagreed. Concord is the tool I wanted for that.
Share links
Send a read-only snapshot of any conversation to anyone, no account needed.
Sign in with Google
One click in, alongside email sign-up with a verification code.
Workflows
Build multi-step consultation pipelines on a canvas and run them inside the thread.
The lens
Re-read a whole thread as if only one model had been asked, prompt hooks included.
Every plan: your keys, no markup.
You pay providers for tokens. You pay us for the workbench.
- Two providers per turn
- Synthesis and the lens
- Per-turn cost view
- Every provider
- Prompt Hooks
- Write-up export and share links
- Everything in Pro
- Workflows
- Agent access In progress
Asked plainly, answered plainly.
What is Concord?
A workbench for asking several AI models the same question at once. Concord sends your question to the providers you pick, then shows where their answers agree, where they don't, and a recommendation. You can re-read any thread through one model with the lens.
How is this different from opening several chat tabs?
Tabs make you do the work: paste the question and context into each one, read everything, and compare in your head. Concord asks in parallel, keeps one shared thread, and puts the agreements and disagreements side by side so you don't miss the one model that caught something.
What does bring-your-own-keys mean, and what will it cost me?
You add your own API keys from Anthropic, OpenAI, Google and xAI. Providers bill you directly at their standard rates, and Concord never adds a markup to tokens. Every turn shows its cost, per provider. Concord's own plans will be a flat price for the workbench.
Are my keys safe?
Keys are encrypted at rest and never displayed again after you save them, to you or anyone else. They're used only to send the requests you make. You can remove a key at any time and Concord stops using it immediately.
Does it eliminate hallucinations?
No. Several models can be confidently wrong together. What Concord does is make disagreement visible, which is often the clearest signal that something needs checking. Treat agreement as evidence, not proof.
What is the lens?
A way of re-reading the whole conversation. Concord shows its synthesis; picking a provider shows the thread as if only that model had been consulted. It changes the view, never the history. Inside any turn you can also flip between each model's answer, or compare two side by side.
Do I need a ChatGPT, Claude or Gemini subscription?
No. You need an API key from each provider you want to use. API access is separate from chat subscriptions like ChatGPT Plus or Claude Pro, and is billed per use by the provider.