crossmodel-setuplisted
Install: claude install-skill devloadingbr/claude-code-crossmodel
# crossmodel setup
Get the user from "installed" to "working" without making them hand-write JSON.
Do this **interactively and in order**. Never write a config for a provider you have not
confirmed is installed and answering — a config full of aliases that fail on first use is
worse than an empty one.
## Locate the CLI
Prefer the binary on PATH:
```bash
command -v crossmodel
```
If that works, `$CM` below is just `crossmodel`. If it does not:
```bash
# Claude Code plugin checkout
find ~/.claude/plugins -name crossmodel.mjs -path '*crossmodel*' 2>/dev/null | head -1
```
Use that path as `node "$CM"` for the rest of the session. On Cursor, run
`crossmodel install --host cursor` (from this repo, `node bin/crossmodel.mjs install --host cursor`)
so the next session has the shim on PATH, an always-on rule, and the user enforcement hook
that sends native sweeps through `crossmodel`; Grep of a single file still works. Use
`--no-enforce` to skip/remove that hook, or `CROSSMODEL_ENFORCE=0` to allow it temporarily.
Do not keep looking up
`$CLAUDE_PLUGIN_ROOT` — Cursor does not set it.
## Step 1 — see what is already there
```bash
crossmodel --list
# or: node "$CM" --list
```
Aliases marked `ok` already work. If the user only wants to add one model, skip to
step 3 rather than redoing everything.
## Step 2 — detect installed providers
```bash
for b in codex grok agent opencode gemini agy ollama claude; do
printf '%-9s ' "$b"; command -v $b >/dev/null && echo installed || ec