Skip to content
Back to skills

Openrouter Fusion

ASecurity

Query OpenRouter — a parallel multi-model panel with judge synthesis for deep-research and compare-and-contrast questions, a single non-Anthropic model for a one-off, or the raw HTTP reference for auth, the /models catalogue and the /chat/completions body. Use when reaching a non-Anthropic family, when a question wants several models answering in parallel rather than one, on "fusion", "ask GLM/Kimi/Qwen/DeepSeek", "what does another model think", or when writing code against the OpenRouter API.

  • 13 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
ai-agentsgobashapi

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned September 21, 2026

npx -y skills add yulonglin/dotfiles --skill openrouter-fusion --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openrouter Fusion?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openrouter Fusion
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yulonglin-openrouter-fusion/badge)](https://www.skillsdirectory.com/skills/yulonglin-openrouter-fusion)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openrouter-fusion
description: Query OpenRouter — a parallel multi-model panel with judge synthesis for deep-research and compare-and-contrast questions, a single non-Anthropic model for a one-off, or the raw HTTP reference for auth, the /models catalogue and the /chat/completions body. Use when reaching a non-Anthropic family, when a question wants several models answering in parallel rather than one, on "fusion", "ask GLM/Kimi/Qwen/DeepSeek", "what does another model think", or when writing code against the OpenRouter API.
---

# OpenRouter

**Reach OpenRouter through `openrouter-cli` for a question or a panel; a subagent is the other route, and only for a model the router already serves.** Since the model-router gateway was wired on 2026-09-06 an agent's `model:` frontmatter does reach a foreign model — but only through a generated agent file, because `config/model-router.toml` declares which routing IDs exist and `model-router-wire apply` renders `claude/agents/`. A hand-written frontmatter naming a raw OpenRouter slug is not a route; `claude/rules/delegation.md` is the authority on that. The CLI stays the right tool for a one-off, a panel or anything that needs the call logged. It is on PATH; `--help` on any subcommand is authoritative.

```bash
openrouter-cli models              # configured models; --check cross-checks the catalogue
openrouter-cli ask glm "question"  # one model
openrouter-cli fusion "question"   # panel in parallel, then judge synthesis
```

`fusion` takes `--panel <aliases>` to override the configured panel and `--dry-run` to print the request body instead of spending. Model config lives in `config/openrouter-models.toml`; the key comes from per-project secrets (`setup-envrc`, or `secrets run OPENROUTER_API_KEY -- <cmd>`), never a global export.

## Fusion is for disagreement, not for lookup

The prompt goes to every panel model in parallel — each with `openrouter:web_search` and `openrouter:web_fetch` — and a judge synthesises them. The whole pipeline is server-side: one call from your side. The synthesis names **consensus**, **contradictions**, **partial_coverage**, **unique_insights** and **blind_spots**, which is the point: a collapsed panel is visible rather than silent.

It costs latency and money. Use it for research questions, multi-domain critique and compare-and-contrast. Skip it for a simple factual lookup or a generation task — one model is cheaper and no worse.

## The raw API, when you are writing code rather than asking

```
Base URL:  https://openrouter.ai/api/v1
Auth:      Authorization: Bearer $OPENROUTER_API_KEY
```

OpenAI-compatible, so any OpenAI SDK works with `base_url="https://openrouter.ai/api/v1"`. Optional `HTTP-Referer` and `X-OpenRouter-Title` headers feed the usage leaderboard.

The model catalogue is dynamic — query it rather than hardcoding slugs:

```bash
curl https://openrouter.ai/api/v1/models -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  | jq '.data[] | {id, context_length, pricing}'
```

Fusion as a raw tool call is `"tools": [{"type": "openrouter:fusion", "parameters": {...}}]` with `"tool_choice": "required"`. Its parameters: `analysis_models` (1-8 slugs, the panel), `model` (the judge slug), `max_tool_calls` (1-16, default 8 web calls per panel model), `max_completion_tokens`, `reasoning.effort` (low/medium/high), `temperature` (0-2).

## Reach for a neighbour instead when

- the point is an **adversarial check on your own work** rather than an OpenRouter query — that is the `council` skill, which picks the rung (one model, two advisors, agentic, or the full panel)
- the question is about **spend or queueing** a long fan-out: the `jobs` skill, and `~/.claude/checklists/experiments.md` for the spend gate
- you are **judging text by meaning** at scale rather than asking a question once: the `llm-judge` skill

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.