openrouterlisted
Install: claude install-skill opascope/skills
# Ask another model through OpenRouter
Read [shared.md](shared.md) first. Save each call's receipt with kind `receipt`.
The script sits beside this file. Run it by its full path:
`python3 "<this skill's directory>/scripts/openrouter.py" <verb> ...`. Resolve the
directory from where you loaded this SKILL.md; do not rely on a variable for it.
## When to use it, and when not
Use it when the answer needs something you do not have: the live web, a different
model's view, a vector, a decision limited to fixed options, or catalog facts. Do not
use it for ordinary reasoning or writing you can do yourself. A second model is a
cost, not a ritual.
## The key
Networked verbs need `OPENROUTER_API_KEY` in the environment. Create one at
https://openrouter.ai/keys. `models` works without it. Never print the key, put it in
a command line you show, or save it in any file.
## The verbs
```
openrouter.py chat "<prompt>" [--role R | --model ID] [--system S] [--json]
[--max-tokens N] [--effort none|low|medium|high] [--image PATH]
openrouter.py research "<question>" [--deep]
openrouter.py pick "<representative prompt>"
openrouter.py decide --state FILE|- --questions FILE
openrouter.py embed "<text>" [--json]
openrouter.py models [list [--search Q] [--newest] | check]
openrouter.py key
```
Every networked verb takes `--json-out` for one JSON object, and `--receipt FILE` to
write the trailer and the generation id to a file.
## How the model is chosen
First mat