Claude Desktop and Cowork
Claude Desktop can send Chat, Cowork and Code to a third-party inference gateway. Pointed at ozeye, the app keeps its native Anthropic protocol and runs on EU-hosted open models; the picker shows ozeye's opus, sonnet and haiku tiers (glm-5.3, deepseek-v4.1-flash, deepseek-v4-flash-0731).
Set up in the app
- Open Claude Desktop, go to Help → Troubleshooting and enable Developer Mode.
- From the menu bar choose Developer → Configure Third-Party Inference.
- Gateway base URL:
https://ozeye.ai. - Gateway API key: your
oz_…key from Dashboard → API keys. - Auth scheme:
bearerorx-api-key, both work. Credential kind: static API key. - Quit Claude Desktop fully, reopen it and pick Continue with Gateway. The model picker now lists GLM 5.3, DeepSeek V4.1 Flash and DeepSeek V4 Flash 0731 under the opus, sonnet and haiku tiers, plus Kimi K2.6 and GLM 5.3 Flash.
Managed settings (MDM)
For an organisation, the same values ship as managed settings. Leave inferenceModels out to let the app discover models from GET /v1/models, or pin the list:
# managed settings (MDM / JSON policy)
{
"inferenceProvider": "gateway",
"inferenceGatewayBaseUrl": "https://ozeye.ai",
"inferenceGatewayAuthScheme": "x-api-key",
"inferenceModels": ["claude-opus-ozeye-g53", "claude-sonnet-ozeye-d41f", "claude-haiku-ozeye-d4f"]
}
Tiers
Claude Desktop rejects any discovered model id that names a non-Anthropic vendor, even when the tier fields are set, so when /v1/models is called by an Anthropic client (recognised by the anthropic-version header they all send) it lists the tiered models under alias ids (claude-opus-ozeye-g53 for GLM 5.3, claude-sonnet-ozeye-d41f for DeepSeek V4.1 Flash, claude-haiku-ozeye-d4f for DeepSeek V4 Flash 0731, claude-opus-ozeye-k26 for Kimi K2.6, claude-haiku-ozeye-g53f for GLM 5.3 Flash). The picker shows the real model names; usage and invoices record the real models. Use the alias ids in inferenceModels when you pin the list.
Cowork and prompt caching
Cowork sends cache_control breakpoints and expects cache hits after the first turn. ozeye accepts the breakpoints and relies on the host's automatic prefix caching; the DeepSeek, Kimi and GLM hosts report cache_read_input_tokens and bill them at the cached rate, so multi-turn sessions stay cheap.
Troubleshooting
- Cannot connect: the base URL must be exactly
https://ozeye.ai. Openhttps://ozeye.ai/v1in a browser to confirm the API answers. - No models in the picker: the account has no credits, or the app was not fully restarted after saving the gateway settings.
- Gateway option missing: Developer Mode is off, or the settings were saved to a different profile.
- Web fetch blocked: allow the hosts under Developer → Configure Third-Party Inference → Workspace restrictions.
Protocol details: Anthropic Messages API.