# Use OpenAI-compatible tools with Aperture

Last validated Jun 16, 2026

\[Missing snippet: aperture\_release\_note.mdx]

Configure OpenAI-compatible LLM clients to send requests through [Aperture by Tailscale][kb-aperture]. This guide covers any LLM client that supports a custom API base URL, including Gemini CLI, Roo Code, Cline, and custom applications.

For client-specific instructions, refer to the guides for [Claude Code][kb-use-claude-code], [Codex][kb-use-codex], and [OpenCode][kb-use-opencode].

## Prerequisites

Before you begin, you need:

* An Aperture instance with at least one configured provider, accessible from your device. Refer to [get started with Aperture][kb-get-started] if you have not set this up.
* The Aperture host URL accessible from your device. Use `http://`, not `https://`.

\[Missing snippet: aperture\_tls\_warning.mdx]

\[Missing snippet: aperture\_any\_provider.mdx]

## Configure the client

In your LLM client's settings, set the API base URL to your Aperture instance and provide a placeholder API key:

* **API Base URL**: `http://<aperture-hostname>/v1`
* **API Key**: Leave empty or set to any value (Aperture ignores client-provided keys and injects credentials automatically)

The exact setting names vary by client. Look for fields labeled "API Base URL," "Base URL," "API Endpoint," or similar.

## Custom applications

You can point any HTTP client at the Aperture URL as long as it uses a [supported provider API format][kb-provider-compatibility]. For example, to send a request using the OpenAI chat completions API:

```shell
curl -s http://<aperture-hostname>/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
```

Aperture routes the request to the appropriate provider based on the model name.

## Verify the connection

1. Send a test request using your configured tool.
2. Open the Aperture dashboard at `http://<aperture-hostname>/ui/` and confirm the request appears on the **Logs** page (admin only).

If the request does not appear, refer to the [Aperture troubleshooting guide][kb-aperture-troubleshooting].

\[Missing snippet: aperture\_connect\_next\_steps.mdx]

[kb-aperture-troubleshooting]: /docs/aperture/troubleshooting

[kb-aperture]: /docs/aperture

[kb-get-started]: /docs/aperture/get-started

[kb-provider-compatibility]: /docs/aperture/provider-compatibility

[kb-use-claude-code]: /docs/aperture/how-to/use-claude-code

[kb-use-codex]: /docs/aperture/how-to/use-codex

[kb-use-opencode]: /docs/aperture/how-to/use-opencode
