Configuring Vision
oxbshw/watch-skill
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models.
This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
$ npx skills add jamesrochabrun/skills --skill llm-router -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamesrochabrun/skills llm-router --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/llm-router .claude/skills/llm-router && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .claude/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jamesrochabrun/skills/tree/main/skills/llm-routerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jamesrochabrun/skills --skill llm-router -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamesrochabrun/skills llm-router --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/llm-router .agents/skills/llm-router && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .agents/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamesrochabrun/skills --skill llm-router -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamesrochabrun/skills llm-router --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/llm-router .cursor/skills/llm-router && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .cursor/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jamesrochabrun/skills.git --path skills/llm-router--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jamesrochabrun/skills --skill llm-router -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamesrochabrun/skills llm-router --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/llm-router .gemini/skills/llm-router && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .gemini/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jamesrochabrun/skills llm-routerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jamesrochabrun/skills --skill llm-router -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/llm-router .github/skills/llm-router && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .github/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamesrochabrun/skills --skill llm-router -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamesrochabrun/skills llm-router --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamesrochabrun/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/llm-router .opencode/skills/llm-router && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "llm-router" agent skill from https://github.com/jamesrochabrun/skills/tree/main/skills/llm-router into .opencode/skills/llm-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-router", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
llm-routerThis skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
LLM Router is an agent skill from jamesrochabrun/skills. This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI. Use this skill when users ask to "use grok", "ask grok", "use groq", "ask deepseek", or any similar request to query a specific LLM provider in agent mode.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/providers.md`, `scripts/check_install_cli.sh` and `scripts/configure_provider.sh`).
It sits in AI & LLM Engineering, covering Model routing and gateways. It works with OpenAI, DeepSeek and OpenRouter. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2482c17. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
XAI_API_KEYOPENAI_API_KEYGROQ_API_KEYDEEPSEEK_API_KEYOPENROUTER_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
LLM Router loads about 3.3k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 948 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jamesrochabrun/skills at commit 2482c17, republished under its MIT licence (© jamesrochabrun). 948 words, ~3,305 tokens.
.claude/skills/llm-router/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Route AI requests to different LLM providers using SwiftOpenAI-CLI's agent mode. This skill automatically configures the CLI to use the requested provider (OpenAI, Grok, Groq, DeepSeek, or OpenRouter), ensures the tool is installed and up-to-date, and executes one-shot agentic tasks.
When a user requests to use a specific LLM provider (e.g., "use grok to explain quantum computing"), follow this workflow:
Check if SwiftOpenAI-CLI is installed and up-to-date:
scripts/check_install_cli.shThis script will:
swiftopenai is installedBased on the user's request, identify the target provider and configure SwiftOpenAI-CLI:
scripts/configure_provider.sh <provider> [model]Supported providers:
openai - OpenAI (GPT-4, GPT-5, etc.)grok - xAI Grok modelsgroq - Groq (Llama, Mixtral, etc.)deepseek - DeepSeek modelsopenrouter - OpenRouter (300+ models)Examples:
# Configure for Grok
scripts/configure_provider.sh grok grok-4-0709
# Configure for Groq with Llama
scripts/configure_provider.sh groq llama-3.3-70b-versatile
# Configure for DeepSeek Reasoner
scripts/configure_provider.sh deepseek deepseek-reasoner
# Configure for OpenAI GPT-5
scripts/configure_provider.sh openai gpt-5The script automatically:
The configuration script automatically checks if an API key is set and will stop with clear instructions if no API key is found.
If API key is missing:
The script exits with error code 1 and displays:
Do not proceed to Step 4 if the configuration script fails due to missing API key.
Instead, inform the user they need to set their API key first:
Option 1 - Environment variable (session only):
export XAI_API_KEY=xai-... # for Grok
export GROQ_API_KEY=gsk_... # for Groq
export DEEPSEEK_API_KEY=sk-... # for DeepSeek
export OPENROUTER_API_KEY=sk-or-... # for OpenRouter
export OPENAI_API_KEY=sk-... # for OpenAIOption 2 - Config file (persistent):
swiftopenai config set api-key <api-key-value>After the user sets their API key, re-run the configuration script to verify.
Run the user's request using agent mode:
swiftopenai agent "<user's question or task>"Agent mode features:
Examples:
# Simple question
swiftopenai agent "What is quantum entanglement?"
# With specific model override
swiftopenai agent "Write a Python function" --model grok-3
# With session for conversation continuity
swiftopenai agent "Remember my name is Alice" --session-id chat-123
swiftopenai agent "What's my name?" --session-id chat-123
# With MCP tools (filesystem example)
swiftopenai agent "Read the README.md file" \
--mcp-servers filesystem \
--allowed-tools "mcp__filesystem__*"User Request: "Use grok to explain quantum computing"
Execution:
# 1. Check CLI installation
scripts/check_install_cli.sh
# 2. Configure for Grok
scripts/configure_provider.sh grok grok-4-0709
# 3. Execute the task
swiftopenai agent "Explain quantum computing"User Request: "Ask DeepSeek Reasoner to solve this math problem step by step"
Execution:
# 1. Check CLI installation
scripts/check_install_cli.sh
# 2. Configure for DeepSeek with Reasoner model
scripts/configure_provider.sh deepseek deepseek-reasoner
# 3. Execute with explicit model
swiftopenai agent "Solve x^2 + 5x + 6 = 0 step by step" --model deepseek-reasonerUser Request: "Use groq to generate code quickly"
Execution:
# 1. Check CLI installation
scripts/check_install_cli.sh
# 2. Configure for Groq (known for fast inference)
scripts/configure_provider.sh groq llama-3.3-70b-versatile
# 3. Execute the task
swiftopenai agent "Write a function to calculate fibonacci numbers"User Request: "Use OpenRouter to access Claude"
Execution:
# 1. Check CLI installation
scripts/check_install_cli.sh
# 2. Configure for OpenRouter
scripts/configure_provider.sh openrouter anthropic/claude-3.5-sonnet
# 3. Execute with Claude via OpenRouter
swiftopenai agent "Explain the benefits of functional programming"GPT-5 models support advanced parameters:
# Minimal reasoning for fast coding tasks
swiftopenai agent "Write a sort function" \
--model gpt-5 \
--reasoning minimal \
--verbose low
# High reasoning for complex problems
swiftopenai agent "Explain quantum mechanics" \
--model gpt-5 \
--reasoning high \
--verbose highVerbosity levels: low, medium, high
Reasoning effort: minimal, low, medium, high
Grok models are optimized for real-time information and coding:
grok-4-0709 - Latest with enhanced reasoninggrok-3 - General purposegrok-code-fast-1 - Optimized for code generationKnown for ultra-fast inference with open-source models:
llama-3.3-70b-versatile - Best general purposemixtral-8x7b-32768 - Mixture of expertsSpecialized in reasoning and coding:
deepseek-reasoner - Advanced step-by-step reasoningdeepseek-coder - Coding specialistdeepseek-chat - General chatProvides access to 300+ models:
The best practice for using multiple providers is to set all API keys as environment variables. This allows seamless switching between providers without reconfiguring keys.
Add to your shell profile (~/.zshrc or ~/.bashrc):
# API Keys for LLM Providers
export OPENAI_API_KEY=sk-...
export XAI_API_KEY=xai-...
export GROQ_API_KEY=gsk_...
export DEEPSEEK_API_KEY=sk-...
export OPENROUTER_API_KEY=sk-or-v1-...After adding these, reload your shell:
source ~/.zshrc # or source ~/.bashrcHow it works:
XAI_API_KEYOPENAI_API_KEYIf you only use one provider, you can store the key in the config file:
swiftopenai config set api-key <your-key>Limitation: The config file only stores ONE api-key. If you switch providers, you'd need to reconfigure the key each time.
# View current configuration (API key is masked)
swiftopenai config list
# Get specific API key setting
swiftopenai config get api-keyPriority: Provider-specific environment variables take precedence over config file settings.
For complex setups, use the interactive wizard:
swiftopenai config setupThis launches a guided setup that walks through:
Maintain conversation context across multiple requests:
# Start a session
swiftopenai agent "My project is a React app" --session-id project-123
# Continue the session
swiftopenai agent "What framework did I mention?" --session-id project-123Connect to external services via Model Context Protocol:
# With GitHub MCP
swiftopenai agent "List my repos" \
--mcp-servers github \
--allowed-tools "mcp__github__*"
# With filesystem MCP
swiftopenai agent "Read package.json and explain dependencies" \
--mcp-servers filesystem \
--allowed-tools "mcp__filesystem__*"
# Multiple MCP servers
swiftopenai agent "Complex task" \
--mcp-servers github,filesystem,postgres \
--allowed-tools "mcp__*"Control how results are presented:
# Plain text (default)
swiftopenai agent "Calculate 5 + 3" --output-format plain
# Structured JSON
swiftopenai agent "List 3 colors" --output-format json
# Streaming JSON events (Claude SDK style)
swiftopenai agent "Analyze data" --output-format stream-jsonIssue: "swiftopenai: command not found"
Solution: Run the check_install_cli.sh script, which will install the CLI automatically.
Issue: Authentication errors
Solution: Verify the correct API key is set for the provider:
# Check current config
swiftopenai config list
# Set the appropriate API key
swiftopenai config set api-key <your-key>
# Or use environment variable
export XAI_API_KEY=xai-... # for GrokIssue: Model not available
Solution: Verify the model name matches the provider's available models. Check references/providers.md for correct model names or run:
swiftopenai modelsIssue: Rate limiting or quota errors
Solution: These are provider-specific limits. Consider:
Enable debug mode to see detailed HTTP information:
swiftopenai config set debug trueThis shows:
This skill includes bundled resources to support LLM routing:
check_install_cli.sh before routing requestsconfigure_provider.sh to ensure correct setup--session-id for multi-turn conversationsreferences/providers.md for detailed provider information# User: "Use grok to tell me about recent AI developments"
scripts/check_install_cli.sh
scripts/configure_provider.sh grok grok-4-0709
swiftopenai agent "Tell me about recent AI developments"# User: "Ask deepseek to explain how to solve this algorithm problem"
scripts/check_install_cli.sh
scripts/configure_provider.sh deepseek deepseek-reasoner
swiftopenai agent "Explain step by step how to implement quicksort"# User: "Use groq to quickly generate a REST API"
scripts/check_install_cli.sh
scripts/configure_provider.sh groq llama-3.3-70b-versatile
swiftopenai agent "Generate a REST API with authentication in Python"# User: "Use openrouter to access claude and write documentation"
scripts/check_install_cli.sh
scripts/configure_provider.sh openrouter anthropic/claude-3.5-sonnet
swiftopenai agent "Write comprehensive documentation for a todo app API"# User: "Use gpt-5 with high reasoning to solve this complex problem"
scripts/check_install_cli.sh
scripts/configure_provider.sh openai gpt-5
swiftopenai agent "Design a distributed caching system" \
--model gpt-5 \
--reasoning high \
--verbose high© jamesrochabrun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in skills/llm-router of jamesrochabrun/skills.
Open the folder on GitHubat commit 2482c17
LLM Router next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| LLM Router this skilljamesrochabrun/skills | 216 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Configuring Visionoxbshw/watch-skill | 469 | — | ~509 | Automated safety check: Notes | MIT | |
| OpenCode Agent Provider for NanoClawnanocoai/nanoclaw | 31k | — | ~5k | Automated safety check: Notes | MIT | |
| Embeddings via 9Routerdecolua/9router | 30k | — | ~604 | Automated safety check: Pass | MIT | |
| Using Ccproxy Inspectorstarbaser/ccproxy | 350 | — | ~2.7k | Automated safety check: Pass | Custom licence | |
| Mecatl Model Router Configstacklok/mecatl | 250 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 |
oxbshw/watch-skill
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models.
nanocoai/nanoclaw
Installs OpenCode as an optional NanoClaw agent runtime, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's own configuration.
decolua/9router
Generates vector embeddings through the 9Router /v1/embeddings endpoint, using models from providers such as OpenAI, Gemini, Mistral and Voyage for RAG and semantic search.
starbaser/ccproxy
Operates the ccproxy inspector MITM system for intercepting, inspecting, and transforming LLM API traffic.
stacklok/mecatl
Interviews you about provider, cost, openness and image needs, then designs the models section of a mecatl settings file with aliases, slots and router categories.
starbaser/ccproxy
Guides users through ccproxy as an OpenAI-compatible and Anthropic-compatible LLM API server with SDK integration, OAuth authentication, sentinel key substitution, model routing, and troubleshooting.
jamesrochabrun/skills
Generate comprehensive Product Requirements Documents (PRDs) for product managers.
jamesrochabrun/skills
Plan and execute technical product launches for developer tools, APIs, and technical products.
jamesrochabrun/skills
Generate comprehensive design briefs for design projects. An agent skill from jamesrochabrun/skills.
jamesrochabrun/skills
Manage Git worktrees for parallel Claude Code development. An agent skill from jamesrochabrun/skills.
jamesrochabrun/skills
Generate comprehensive content briefs for writers, ensuring clarity, alignment, and strategic content creation across all formats.
jamesrochabrun/skills
This skill provides comprehensive guidance for implementing advanced SwiftUI animations, transitions, matched geometry effects, and Metal shader integration.
Works with
Categories
This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI. LLM Router is an agent skill from jamesrochabrun/skills. This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
LLM Router fits situations like: users ask to use grok; any similar request to query a specific LLM provider in agent mode.
Run `npx skills add jamesrochabrun/skills --skill llm-router -a claude-code`. Or copy the skill folder (skills/llm-router in jamesrochabrun/skills) into .claude/skills/llm-router in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamesrochabrun/skills --skill llm-router -a codex`. Or copy the skill folder (skills/llm-router in jamesrochabrun/skills) into .agents/skills/llm-router in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jamesrochabrun/skills --skill llm-router -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/llm-router, .gemini/skills/llm-router, .github/skills/llm-router and .opencode/skills/llm-router in your project.
Going by SKILL.md and its folder, LLM Router needs a shell for the scripts in its folder and credentials named XAI_API_KEY, OPENAI_API_KEY, GROQ_API_KEY and DEEPSEEK_API_KEY. Our summary lists: Python 3; A Bash shell; A credential in XAI_API_KEY; A credential in GROQ_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
LLM Router is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with LLM Router: Configuring Vision (oxbshw/watch-skill, 469 stars), OpenCode Agent Provider for NanoClaw (nanocoai/nanoclaw, 31k stars), Embeddings via 9Router (decolua/9router, 30k stars) and Using Ccproxy Inspector (starbaser/ccproxy, 350 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamesrochabrun (a GitHub user) maintains it in jamesrochabrun/skills, which has 216 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on January 14, 2026.
Source: jamesrochabrun/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.