Skip to content

Envoy AI Gateway becomes Agent Router and joins the Agentic AI Foundation

Learn more

Adding Tetrate Agent Router as a third-party inference gateway in Claude Desktop

Claude Desktop runs Cowork and Code through an Agent Router gateway with one inference key and no Claude.ai account. Every request lands in your logs, your budgets, and your model policy.

Adding Tetrate Agent Router as a third-party inference gateway in Claude Desktop

Claude Desktop spreads through a company differently from developer tooling, because it does not look like developer tooling. The Cowork tab runs long tasks against files, folders, and connectors. The Code tab is Claude Code with a window around it. People who would never open a terminal install it in an afternoon, and the platform team finds out when the expense reports arrive.

The default way in is a Claude.ai account per person. That is fine for an individual and a problem for an organization. Inference bills to a subscription tier instead of to a team or a project. Requests never touch the AI gateway that Claude Code, Cursor, and VS Code were already routed through, so Request Logs have a hole exactly where the least technical users sit. And the model on offer is whatever the plan tier includes, not what the project catalog grants.

Claude Desktop ships a third-party inference mode that closes that hole. Point it at a Tetrate Agent Router gateway with a base URL, an inference key, and two headers, and every Cowork and Code request becomes an Anthropic Messages call through the gateway: authenticated with the Agent Router key, billed through Agent Router, and visible in Request Logs next to everything else the organization runs. No Claude.ai account needed. The app says so itself on the welcome screen.

What you need

Claude Desktop from claude.ai/download, launched once so its user-data directory exists. An Agent Router gateway and an inference key for it. Optionally the tare CLI, which writes the configuration for you. The step-by-step reference is the Claude Desktop guide in the Agent Router docs.

Gateway mode, not a sign-in

It helps to be precise about what changes. In third-party inference mode, Claude Desktop stops signing a person in to Anthropic and starts presenting a key to the gateway. The Agent Router inference key travels as Authorization: Bearer on every request, the gateway resolves the model and the upstream provider, and the cost is attributed to the key’s project and the person’s team the same way it is for any other client. One configuration covers both the Cowork and Code tabs.

Two consequences follow, and both are worth stating before anyone promises a rollout.

Signing in with Claude.ai bypasses the gateway entirely. The welcome screen keeps an Or sign in with Claude.ai link under the Continue button. Anyone who takes it gets a working Claude Desktop, billed to their subscription, invisible to Request Logs. The configuration is still on disk. It is just not in use.

Claude Desktop runs in gateway mode only. Claude Code supports a passthrough mode that keeps a Claude Max or Pro subscription as the billing path while the gateway routes and observes. Claude Desktop does not. Passing --passthrough to the Desktop integration raises no error and has no effect. Inference is billed through Agent Router, full stop.

How to configure Claude Desktop with Agent Router

The values are the same either way: gateway base URL, inference key, bearer auth, and two custom headers that tag the traffic. What differs is who types them.

Option A: let the tare CLI write it

For a rollout beyond a handful of people, the CLI is the path. Users log in once, run one command, and the tool writes the configuration, validates the key against the gateway, and reports back. A bad paste fails at setup instead of on someone’s first prompt.

Install and authenticate against the management plane. The base URL is the API host of your tenant, not the gateway URL shown in the Console:

Install and log in
curl -fsSL https://tare.tetrate.ai/tools/install.sh | bash
tare api login --base-url https://api.<tenant>.tetrate.ai

List the data planes the account can route through, then preview the change. The dry run prints exactly what will be written, with the key masked, and writes nothing:

Preview the Claude Desktop configuration
tare integrate dataplanes
tare integrate claude-cowork --dataplane acme-prod --dry-run
Detected Claude Cowork: /Users/you/Library/Application Support/Claude-3p exists
? Select model:
    claude-fable-5
    claude-fable-5-1
    claude-haiku-4-5
    claude-opus-4-5
↓   claude-opus-4-6

register Cowork third-party-inference entry "Tetrate AgentRouter":
    inferenceProvider          = gateway
    inferenceCredentialKind    = static
    inferenceGatewayBaseUrl    = https://acme-prod.gateway.example.com
    inferenceGatewayApiKey     = sk-eyJhb...
    inferenceGatewayAuthScheme = bearer
    inferenceCustomHeaders     = {X-Title: Claude-Cowork, X-Provider: Tetrate AgentRouter}
    inferenceModels            = [claude-fable-5]

--dry-run: no changes written.

The model prompt offers only what the key is entitled to call, which is often narrower than the full catalog. Quit Claude Desktop completely, then run the same command without --dry-run. The CLI registers a provider named Tetrate AgentRouter in the app’s configuration library, marks it active, and checks the key against the gateway before it exits.

Claude Desktop reads that configuration at launch and nowhere else, which is why the quit has to be a real quit. Reopen the app and it lands on a welcome screen that confirms the gateway is in place.

Claude Desktop welcome screen stating that Claude is set up to run through a custom inference gateway using the configuration saved on this device, with no Claude.ai account needed, a Continue button, and an Or sign in with Claude.ai link below it
Continue enters gateway mode. The sign-in link below it does not.

Option B: enter it by hand in the Developer menu

The manual path exists for machines where the CLI cannot run, and for anyone who wants to see the dialog before scripting it. It is also the only path when Claude Desktop has never launched on the machine, because the CLI writes into a directory the app creates on first run.

Developer Mode is reachable from the sign-in screen, before any account exists. On macOS it is in the menu bar; on Windows it is behind the application menu at the top left. In both cases: Help, then Troubleshooting, then Enable Developer Mode…. Confirm, and the app restarts.

Claude Desktop Help menu on macOS with the Troubleshooting submenu open and Enable Developer Mode highlighted
Developer Mode lives under Help, then Troubleshooting. No sign-in required to reach it.

After the restart, a Developer menu appears. Open it and select Configure Third-Party Inference….

Claude Desktop Developer menu on macOS with Configure Third-Party Inference highlighted
The Developer menu is only present once Developer Mode is on.

On the Connection tab, fill in the gateway credentials:

FieldValue
ConnectionGateway, the default
Credential kindStatic API key
Gateway base URLThe gateway URL for your data plane, scheme and host only, no /v1
Gateway API keyAn Agent Router inference key for that data plane
Gateway auth schemebearer
Artifact preview iframe originLeave blank
Custom inference headersAdd two: X-Title: Claude-Cowork and X-Provider: Tetrate AgentRouter
The Configure third-party inference dialog in Claude Desktop, Connection tab, showing Gateway selected, Static API key as credential kind, a gateway base URL, a masked API key, bearer auth scheme, and two custom headers X-Title Claude-Cowork and X-Provider Tetrate AgentRouter
Test connection validates the URL and key before anything is saved.

Select Test connection. Once it reports success, select Apply Changes, then Save & Restart. The app comes back with a You’re using Gateway card, and the account row at the bottom of the sidebar is labeled Gateway.

Claude Desktop after restart, showing a You're using Gateway card, the Cowork and Code tabs, a composer with Claude Fable 5.1 selected at High effort, and a sidebar account row labeled Gateway
Both tabs, Cowork and Code, now send inference through the gateway.

Choosing a model

The composer on both tabs shows the active model and its effort level. Selecting the model name lists what the key can call, with the active one checked.

The model picker in the Claude Desktop composer, listing gateway model ids such as claude-fable-5, claude-fable-5-1, claude-haiku-4-5, and several claude-opus versions, with claude-fable-5 checked
Models appear by gateway id, not marketing name, because the list is the gateway's catalog filtered to the key.

Two details here trip people up. Models are listed by gateway id, claude-fable-5 rather than Claude Fable 5, because the list comes from the gateway and not from Anthropic’s own picker. And the list is filtered twice: once by what the key’s project has been granted, and once by the model allowlist in the Claude Desktop configuration. A model enabled organization-wide still has to be granted to the key’s project before it appears. The tare CLI narrows the allowlist to the single model chosen at setup, so widening it later is a visit to the Configure Third-Party Inference dialog, not a re-run of the command.

That is the model choice moving from a plan tier to a policy. If the marketing project’s catalog holds Sonnet and not Fable, no key in that project offers Fable in this picker, and nobody has to explain why.

How to verify traffic in Request Logs

Send a prompt on either tab, then open the Console, go to Monitoring, and select Request Logs. The request appears as Anthropic Messages traffic against the selected model and the key used for the integration. Expand the entry and open Technical Details, then Request, and the two headers are there:

Request headers added by the integration
{
  "X-Title": "Claude-Cowork",
  "X-Provider": "Tetrate AgentRouter"
}

Those headers are what make the desktop app separable from everything else a person runs on the same key. When a team’s spend jumps, the question of whether it came from Cowork sessions or from a coding agent fanning out dozens of calls is answered by a filter, not a meeting.

From there, nothing about Claude Desktop is special. The controls that already govern the rest of the organization’s AI traffic apply unchanged: budgets that alert, cap, or degrade to a cheaper model when a team’s monthly amount is reached, traffic splitting that swaps the model on a key without touching the client, and project catalogs that decide what a key can call at all. We covered how those fit together for exactly this workload in Keeping Marketers Away From Fable.

Before you roll it out

A few constraints are cheaper to know in advance than to discover on a Monday.

  • Quit means quit. Claude Desktop reads its configuration library at launch only. Applying a change while the app is running produces a warning from the CLI, and a relaunch without a full quit produces a sign-in screen with no gateway option. Cmd-Q, or File then Quit, then reopen.
  • The app has to have run once. The CLI writes into a Claude-3p user-data directory that Claude Desktop creates on first launch. On a fresh machine, launch the app, close it, then run the command.
  • The sign-in link is always there. Nothing in the client prevents a user from choosing Claude.ai over the gateway. The signal that someone did is an absence: a working app and no traffic in Request Logs. The fix is to sign out, reopen, and select Continue.
  • One configuration is active at a time. The dialog can hold several saved configurations. Where gateway settings are present but not in effect, a different entry is active. Switch it from the configuration selector in the dialog, not from the sign-in screen.
  • Fewer models than expected is usually entitlement, not a bug. Discovery returns what the key can call, and the local allowlist narrows it further. Grant the model to the key’s project, then widen the allowlist.

The troubleshooting table in the guide maps each of these symptoms to its fix.

One key, one catalog, one bill

The Claude Desktop rollout that used to mean a subscription per person, invisible traffic, and a model chosen by plan tier now means an Agent Router inference key, every request in Request Logs with a header that names the app, and a model picker that shows exactly what the project catalog grants. Cost lands on a team and a project. Policy set once in the gateway applies to the desktop app without anyone editing the desktop app.

Developers and non-developers alike get Cowork and Code with no account to create. The people accountable for spend, and for what leaves the building, get the desktop app inside the same enforcement point they already run for every other client. The rollout stops being a negotiation between the two.

Frequently asked questions

What is third-party inference in Claude Desktop?

Third-party inference is the Claude Desktop mode that stops signing a person in to Anthropic and starts presenting a key to a gateway you configure. With Tetrate Agent Router, every Cowork and Code request becomes an Anthropic Messages call through the gateway: authenticated with the Agent Router key, billed through Agent Router, and visible in Request Logs. No Claude.ai account is needed.

Can I use Claude Desktop without a Claude.ai account or an Anthropic subscription?

Yes. Claude Desktop’s third-party inference mode sends model requests to a gateway you configure, authenticated with that gateway’s key. With Tetrate Agent Router as the gateway, inference is supplied and billed through Agent Router, and the welcome screen confirms that no Claude.ai account is needed.

Does the Agent Router integration cover both the Cowork and Code tabs in Claude Desktop?

Yes. One third-party inference configuration covers both surfaces. The composer on each tab shows the active gateway model, and requests from both appear in Request Logs tagged with X-Title: Claude-Cowork.

Can I keep a Claude Max or Pro subscription and still route Claude Desktop through the gateway?

No. Claude Desktop runs in gateway mode only, so inference is authenticated with the Agent Router key and billed through Agent Router. Passthrough mode, which keeps a subscription as the billing path while the gateway routes and observes, is available for Claude Code and not for Claude Desktop.

How do I verify Claude Desktop is using the gateway?

Send a prompt on either tab, then open the Console, go to Monitoring, and select Request Logs. The request should appear as Anthropic Messages traffic against the selected model and the key used for the integration. Expand Technical Details, then Request, and confirm the X-Title: Claude-Cowork and X-Provider: Tetrate AgentRouter headers. The sidebar account row should read Gateway. A working app with no log entries means the user took the Claude.ai sign-in link instead of Continue.

Do I need the tare CLI to set this up?

No. The same values can be entered by hand in Claude Desktop under Developer, then Configure Third-Party Inference. The CLI is the recommended path for rollouts because it writes the configuration from the logged-in session and validates the key against the gateway before it finishes.

Why does the model picker show fewer models than my administrator enabled?

The picker lists the gateway catalog filtered to what the key can call, and the model allowlist in the Claude Desktop configuration narrows it further. A model enabled organization-wide still has to be granted to the key’s project. Grant it there, then widen the allowlist in the Configure Third-Party Inference dialog.

How do I tell Claude Desktop traffic apart from Claude Code traffic on the same key?

The integration sends X-Title: Claude-Cowork and X-Provider: Tetrate AgentRouter on every request. Both headers appear in Request Logs under Technical Details, so desktop usage and coding-agent usage stay separable in one view.

Now Available

MCP Catalog with verified first-party servers, profile-based configuration, and OpenInference observability are now generally available in Tetrate Agent Router Service. Start building production AI agents today with $5 free credit.

Sign up now

References

Product background Product background for tablets
Building AI agents

Agent Router Enterprise provides a managed AI Gateway, MCP Gateway, and AI Guardrails in your dedicated instance. Graduate agents from prototype to production with consistent model access, governed tool use, and runtime supervision — built on Envoy AI Gateway by its creators.

  • AI Gateway – Unified model catalog with automatic fallback across providers
  • MCP Gateway – Curated tool access with per-profile authentication and filtering
  • AI Guardrails – Enforce policies, prevent data loss, and supervise agent behavior
  • Learn more
    Replacing NGINX Ingress

    Tetrate Enterprise Gateway for Envoy (TEG) is the enterprise-ready replacement for NGINX Ingress Controller. Built on Envoy Gateway and the Kubernetes Gateway API, TEG delivers advanced traffic management, security, and observability without vendor lock-in.

  • 100% upstream Envoy Gateway – CVE-protected builds
  • Kubernetes Gateway API native – Modern, portable, and extensible ingress
  • Enterprise-grade support – 24/7 production support from Envoy experts
  • Learn more
    Decorative CTA background pattern background background
    Tetrate logo in the CTA section Tetrate logo in the CTA section for mobile

    Ready to enhance your
    network

    with more
    intelligence?