> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Client

Filter models and presets by the named harness's eligibility policy: tool calling is required, and when one of your guardrails sets `enforce_first_party_harness_models`, only the harness vendor's own models remain (OpenAI for codex, Anthropic for claude\_code and claude\_desktop). When your workspace's Managed Machines policy sets a model list for that harness, only the listed models remain, and a preset remains only while every model it routes to is listed. This filter doesn't apply the harness's ranking, caps or Claude Desktop model ID aliases, so returned IDs stay routable. One of: claude\_code, claude\_desktop, codex. Omit it to get every model you can use.

## Example Usage

```python theme={null}
from openrouter.operations import Client

# Open enum: unrecognized values are captured as UnrecognizedStr
value: Client = "claude_code"
```

## Values

This is an open enum. Unrecognized values will not fail type checks.

* `"claude_code"`
* `"claude_desktop"`
* `"codex"`
