Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the current session needs an answer or a work product from a model on ANOTHER vendor's stack - a second opinion from a different model family, a cheap fast model for bulk work, or a cross-model review - by dispatching that vendor's own CLI as a one-shot worker. Triggers include "ask grok/composer/gemini/claude/codex what it thinks", "get a second opinion from a different model", "cross-model review", "run this by another model", "poll several models". No orchestration framework required
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 111% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 62% | 0% |
A stagiaire is a cook visiting from another kitchen. This skill dispatches one-shot workers on other vendors' CLIs: the user's own logins, one model call per dispatch, no API keys, no framework. Each invocation below is the exact argv that works headless, including the flag that stops that CLI from silently doing nothing.
Precondition: the CLI must already be installed and authenticated by the user. Never run a login flow, never touch auth files, never fall back to an API key. If a CLI is missing or logged out, report it and move on to the vendors that work.
Run these with the task text substituted. Every one returns the worker's answer on stdout.
| Vendor / model | Write-capable dispatch | Read-only dispatch | |---|---|---| | Cursor (composer, grok, gpt, claude families) | cursor-agent --model <id> -p --output-format text -f "<task>" | same with --mode plan --trust instead of -f | | Grok CLI (grok.com login) | grok -m grok-4.5 -p "<task>" --always-approve | grok -m grok-4.5 -p "<task>" --permission-mode plan | | Codex (ChatGPT login) | codex exec --sandbox workspace-write -m <model> "<task>" | codex exec --sandbox read-only -m <model> "<task>" | | Claude Code | claude --model <id> --permission-mode bypassPermissions -p "<task>" | claude --model <id> -p "<task>" (plain -p cannot edit files) | | Antigravity (Google login) | agy --model "<display name>" --add-dir <dir> --dangerously-skip-permissions --print "<task>" | agy --model "<display name>" --sandbox --print "<task>" | | Ollama | ollama run <model> "<task>" | same (prompt-only, no tools) | | opencode (ChatGPT login) | opencode run -m <provider>/<model> "<task>" | same, instruct read-only in the prompt | | pi (ChatGPT login) | pi --model openai-codex/<model>:<tier> -p "<task>" | pi --tools read,grep,find,ls --model openai-codex/<model> -p "<task>" |
Model ids: cursor-agent models, agy models, grok models, opencode models, ollama list. Codex reasoning effort is per-run config: codex exec -c model_reasoning_effort=<none|low|medium|high|xhigh> -m <model> "<task>".
Each of these was found by a dispatch that looked successful and was not. Check for them before trusting a result.
cursor-agent -p prints a refusal and exits clean. Always pass -f (write) or --trust (plan). And Cursor's composer models emit empty text in --mode plan: their findings go into a plan artifact, not stdout. Benchmark or query composer models in write mode with a do-not-modify instruction.grok -p without --always-approve no-ops after its preamble and exits 0.Not inside a trusted directory and --skip-git-repo-check was not specified. Dispatch from inside a git repo.claude -p cannot edit files. Permission prompts have no terminal to land on, so write tasks die quietly. Add --permission-mode bypassPermissions only when the task genuinely needs writes, and prefer an isolated working copy when you do.--print-timeout 12m for thinking-heavy tasks, or the run dies before the model finishes. Model pins are the full display string, parentheses included: agy --model "Gemini 3.5 Flash (Low)".:tier suffix becomes a literal model id the backend rejects, while valid tiers (off through max) are parsed and applied. pi serves gpt-5.6-luna where opencode cannot.For a chef-and-workers setup where a primary model plans, fans out, and synthesizes, opencode's agent config does it natively. Two rules make it safe and cheap:
"tools": { "write": false, "edit": false, "patch": false } on the primary agent. The orchestrator thinks and dispatches. Only worker CLIs touch files. A model that cannot write cannot wreck a tree no matter what goes wrong upstream."options": { "reasoningEffort": "<tier>" }, and the same model at different tiers behaves like different workers. Getting the tier wrong is self-documenting: pass an unsupported value and the error lists the supported ones.json{ "agent": { "chef": { "mode": "primary", "model": "openai/gpt-5.6-sol", "prompt": "You orchestrate. Dispatch native subagents via the task tool; reach other vendors with the bash commands you were given. Never answer worker questions yourself.", "options": { "reasoningEffort": "high" }, "tools": { "write": false, "edit": false, "patch": false } }, "fast": { "mode": "subagent", "model": "openai/gpt-5.6-sol", "description": "Sol, thinking off", "options": { "reasoningEffort": "none" } }, "deep": { "mode": "subagent", "model": "openai/gpt-5.6-sol", "description": "Sol, deep", "options": { "reasoningEffort": "xhigh" } } } }
Give the chef the dispatch table above in its prompt for the cross-vendor seats, and tell it to run them one at a time.
brigade run --worker <seat> replaces every incantation above with one flag.Other measured skills in the registry, with their headline benchmark lift.