Clients
Connect Claude Code, Codex, OpenCode, Grok Build, Hermes, Raycast, ChatGPT for Mac or DeepSeek Harness to OpenLLM, or any OpenAI or Anthropic client.
Each supported client has a command that connects it to OpenLLM. Most run per session and leave your own config alone; Raycast, the ChatGPT Mac app, and Hermes profiles are persistent and come with a command to undo them.
| Client | Command | How it connects | Guide |
|---|---|---|---|
| Claude Code | openllm claude | Per session: run-local --settings and --mcp-config | Claude Code |
| Codex | openllm codex | Per session: -c overrides on your config | Codex |
| OpenCode | openllm opencode | Per session: merged config file via OPENCODE_CONFIG | OpenCode |
| Grok Build | openllm grok | Per session: private GROK_HOME over your ~/.grok | Grok Build |
| Hermes | openllm hermes | Per session, or a sticky profile with openllm hermes install | Hermes |
| Raycast | openllm raycast | Persistent: provider block in providers.yaml | Raycast |
| ChatGPT for Mac | openllm chatgpt | Persistent: an OpenLLM ChatGPT launcher app | ChatGPT for Mac |
| DeepSeek Harness | dsh plugin --profile web add github:openllmsh/dsh | Persistent: a bundle in a dsh profile, through the local daemon | DeepSeek Harness |
The openllm commands need the OpenLLM CLI. See Install.
How the launchers work
-
The gateway is chosen at launch. If your local daemon answers on
http://127.0.0.1:8787, the client talks to it. Otherwise it talks tohttps://www.openllm.sh. Persistent setups (Raycast and the Hermes profile) keep the address from when you ran the command. -
Arguments pass through. Everything after the client name goes to the client unchanged, so
openllm claude --resumebehaves likeclaude --resume. -
OpenLLM's flags go first. Put them before the client name:
Flag What it does -dAdds the client's own skip-approvals flag. Fails on clients that have none. --newAlways starts a new session instead of offering to attach to a running one. --attach [id]Attaches to a running session on this machine without asking. -
Models map to aliases. Each client defaults to
ultra, andplusandliteare available everywhere. Most clients also list every model you have activated; OpenLLM configures only the three aliases for Hermes and DeepSeek Harness. Change what the aliases mean in Configuration. See Routing and fallback. -
Tools come along. Every launcher adds the OpenLLM MCP server, except Raycast. See MCP server.
Who pays for a request
Every client sends requests to OpenLLM with your sk-llm key. Which account pays depends on the model that serves the request:
| Model | Who pays |
|---|---|
| A subscription model, such as Claude Code or Codex on your own plan | Your subscription, through the daemon on one of your devices |
| An API-key model | Your account with that provider |
| A local model, such as Ollama | Runs on your own machine, through the daemon |
An included openllm/ model | OpenLLM, up to your plan's monthly allowance |
Aliases such as ultra are fallback chains, so one request can try more than one of these. On the Free plan, a monthly token cap also applies. See Providers, Included models, and Plans and limits.
Don't see your tool?
Anything that speaks the OpenAI or Anthropic API can use OpenLLM with a base URL and your key. See Any OpenAI or Anthropic client. For MCP-only tools, see MCP server.
Last updated on
Install OpenLLM
Install the openllm CLI and daemon on macOS or Linux with one curl command, or install the Mac app, then check, update, or uninstall OpenLLM.
Claude Code
Run Claude Code through OpenLLM with openllm claude, map the Opus, Sonnet and Haiku slots to your models, or set ANTHROPIC_BASE_URL yourself.