How to Set Up a Fusion Model
By Jack Butcher
OpenRouter just shipped a Fusion API. The pitch: "Fable-level intelligence at half the price."
The trick is simple. Instead of asking one AI model your question, you ask several at the same time, then a judge model reads all of their answers and writes the best final one. The panel disagrees, the judge keeps what survives, and the result beats any single model in the group. Their benchmark shows a panel of cheaper models scoring higher than the most expensive model running alone.
There are three ways to set this up. This guide covers all three, written for someone who has never written code. Read the next section, pick the one that fits you, and skip straight to it.
Pick your path
- Option 1: No code. Use OpenRouter's website. You click a few buttons and type your question into a box. Nothing to install. Five minutes. Start here if you just want the result.
- Option 2: One line of code. Let OpenRouter run the panel for you, but call it from a script you can reuse and automate. Twenty minutes. Start here if you want to plug fusion into your own tools.
- Option 3: Build your own panel. You pick every model yourself and write the judge's instructions. Most control, works with any provider, not just OpenRouter's preset. Thirty minutes. Start here if you want to understand and own the whole thing.
Options 2 and 3 share the same setup, so do Option 1 first regardless. It gets you the account and key the other two need.
Option 1: No code (the GUI)
This is the version in the announcement. You never touch a terminal.
Step 1: Make an OpenRouter account
OpenRouter is one website that lets you talk to every AI model (Claude, GPT, Gemini) through a single login. That is what makes a panel easy. You do not need a separate account with each company.
- Go to openrouter.ai and click Sign In. Sign up with Google or email.
Step 2: Add a few dollars of credit
The models cost money to use, but very little. A handful of questions costs pennies. Note that fusion charges you for every model in the panel plus the judge, so a fusion question costs a little more than a normal one. Still pennies.
- Click your profile picture in the top right, then Credits.
- Add five dollars. That is more than enough to test this many times over.
Step 3: Open Fusion and ask
- Go to openrouter.ai/fusion.
- Pick a preset. Quality uses stronger models, Budget uses cheaper ones. Start with Quality. If you want, you can build a custom panel by choosing the exact models yourself, but the preset is fine to begin.
- Type your question in the box and send it.
You will watch the panel answer in parallel, then the judge writes the final response. That is a fusion model, fully set up, no code. To see exactly which models ran and what each one cost, open Activity from your profile menu.
For most people, this is the whole article. If you want to reuse fusion inside your own projects, keep reading.
Option 2: Call Fusion from code (one line)
Here you let OpenRouter run the panel, but you call it from a small script you can save, change, and run as many times as you want. The only difference from a normal AI call is the model name: openrouter/fusion.
Step 1: Get your OpenRouter API key
You made the account in Option 1. Now get an API key, which is the password your code uses to talk to OpenRouter. This is your OpenRouter key, not a key from Anthropic, OpenAI, or Google. You only need this one, and it covers every model in the panel.
- On openrouter.ai, click your profile picture in the top right, then Keys.
- Click Create Key, give it any name, and click create.
- It shows a long string starting with
sk-or-. That is your OpenRouter API key. Copy it now and paste it somewhere safe. You will not see it again after you close the box. Treat it like a password. Anyone who has it can spend your money.
Step 2: Install Node
The code needs one free program to run it, called Node. This is the only thing you install.
- Go to nodejs.org.
- Click the big green button that says LTS (the stable version).
- Open the file it downloads and click Next, Next, Next until it finishes. The defaults are correct.
To check it worked, open your terminal. On a Mac, press Command + Space, type Terminal, press enter. On Windows, click Start, type Terminal, press enter. A window with a blinking cursor appears. Type this and press enter:
node --version
If it prints a number like v22.0.0, you are set. If it says "command not found," restart your computer and try again.
Step 3: Create the file
In the terminal, type these lines, pressing enter after each. This makes a folder on your Desktop and an empty file inside it:
cd Desktop
mkdir fusion
cd fusion
touch fusion.js
open .
On Windows, replace the last two lines with notepad fusion.js and click Yes to create it.
Step 4: Paste the code
A folder opens showing fusion.js. Open it in any text editor (TextEdit on Mac, Notepad on Windows). Paste everything below. Near the top, replace PASTE-YOUR-OPENROUTER-KEY-HERE with your OpenRouter API key from Step 1. Keep the quote marks.
// Your OpenRouter API key, from openrouter.ai under Keys.
const API_KEY = "PASTE-YOUR-OPENROUTER-KEY-HERE"
// Type your question here, between the quotes.
const QUESTION = "What is the single best way to learn a new skill fast?"
async function run() {
console.log("Running the panel...\n")
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer " + API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "openrouter/fusion",
messages: [{ role: "user", content: QUESTION }],
}),
})
const data = await res.json()
console.log(data.choices[0].message.content)
}
run()
Save the file (Command + S on Mac, Control + S on Windows) and close the editor.
Step 5: Run it
Back in the terminal, type this and press enter:
node fusion.js
Wait a few seconds and the final answer prints. To ask something else, change the text in QUESTION, save, and run node fusion.js again.
That is the entire setup. One model name, openrouter/fusion, and OpenRouter handles the panel and judge for you.
Option 3: Build your own panel
This version does not rely on OpenRouter's preset at all. You choose the three models, you write the judge's instructions, and you can swap any piece. More control, and you understand exactly what is happening.
The setup is identical to Option 2 (account, key, Node, a file). The only thing that changes is what you paste into fusion.js. Use this instead:
// Your OpenRouter API key, from openrouter.ai under Keys.
const API_KEY = "PASTE-YOUR-OPENROUTER-KEY-HERE"
// The three models that answer your question.
// Use models from different companies. Different companies make
// different mistakes, which is the entire reason this works.
const PANEL = [
"anthropic/claude-opus-4.8",
"openai/gpt-5.5",
"google/gemini-3.1-pro-preview",
]
// The model that reads all three answers and writes the final one.
// Make this your best model.
const JUDGE = "anthropic/claude-opus-4.8"
// Type your question here.
const QUESTION = "What is the single best way to learn a new skill fast?"
async function ask(model, prompt) {
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer " + API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: model,
messages: [{ role: "user", content: prompt }],
}),
})
const data = await res.json()
return data.choices[0].message.content
}
async function fusion() {
console.log("Asking the panel...\n")
// Ask all three models at the same time.
const answers = await Promise.all(PANEL.map((model) => ask(model, QUESTION)))
// Stack the three answers into one block of text.
let panelText = ""
answers.forEach((answer, i) => {
panelText += "Candidate " + (i + 1) + ":\n" + answer + "\n\n"
})
// Ask the judge to write the best final answer.
const judgePrompt =
"Three models answered the question below. Weigh them against each other. " +
"Keep what they agree on, resolve what they conflict on, and write one final " +
"answer. Do not mention the candidates.\n\n" +
"Question:\n" + QUESTION + "\n\n" + panelText
const final = await ask(JUDGE, judgePrompt)
console.log("FINAL ANSWER:\n")
console.log(final)
}
fusion()
Run it the same way: node fusion.js.
You only ever need to touch three things in this file:
- The question. Change the text in
QUESTION. - The panel. The three lines under
PANELare the models that answer. Use different companies, not three of the same one. You can see every model name on openrouter.ai under Models. - The judge. This writes the final answer, so make it your best model. A weak judge averages three good answers into a dull one. A strong judge reads three flawed answers and writes a better one than any of them.
Why bother
A single model is a single point of failure. It has one set of blind spots and one way of being confidently wrong. Three models from three companies rarely share the same blind spot, so when you combine them the mistakes cancel and the good parts stack. It is the same reason a panel of forecasters beats the best single forecaster.
And it is cheaper than it looks. The honest comparison is not "one call versus four." It is your panel of mid-priced models against the one frontier model you would have paid a premium for. Three mid-priced answers plus one judge call often costs less than a single top-tier call and scores higher. You are not adding cost. You are spending it smarter.
Use it when the answer matters more than the seconds: research, analysis, decisions you will act on. For a quick draft you were going to rewrite anyway, one model is fine. The principle underneath is older than the API. Do not bet everything on one source of judgment. Get a few independent reads, then decide.
The Fundamentals of Value
Mindset, systems, positioning. 34 free lessons.
Go deeper.
Install the full system — lessons, tools, workflows, and everything we build. $99/year.
Stay in the loop.
New ideas, tools, and work. No spam.





