Configuring Providers
This guide explains how providers work in Orion, how to add and configure them, and how to set up common local and third-party services. It's aimed at anyone who wants to go beyond the built-in OpenAI and Anthropic integrations.
This guide explains how providers work in Orion, how to add and configure them, and how to set up common local and third-party services. It's aimed at anyone who wants to go beyond the built-in OpenAI and Anthropic integrations.
What is a provider?
A provider is a configured connection to an LLM API. It defines where Orion sends requests (the base URL), which models are available, and how to authenticate.
Orion ships with two providers built in:
- OpenAI — points to
https://api.openai.com/v1and includesgpt-4o,gpt-4o-mini,gpt-4-turbo, andgpt-3.5-turboout of the box. - Anthropic — points to
https://api.anthropic.comand includes the Claude model family.
You cannot delete these built-in providers, but you can edit them — for example, to swap in a different model or change the base URL to route through a proxy. Any custom providers you add live alongside them.
Opening the Providers settings
- Click the gear icon at the bottom of the sidebar to open Settings.
- Select the Providers tab (it's the default).
The tab lists all providers, showing their name, base URL, and model count. Click Edit on any provider to modify it, or Add Provider (top right) to create a new one.
Adding a custom provider
Clicking Add Provider opens the provider form. Here's what each field does.
Name
A label for the provider that appears in the provider dropdown when you're editing a prompt. Choose something you'll recognize: Ollama (local), OpenRouter, My Corp Proxy, and so on.
Type
The type tells Orion what API format to expect and which path suffix to append to your base URL.
| Type | Path Orion appends | Use when |
|---|---|---|
| OpenAI-compatible | /chat/completions |
Ollama, LM Studio, llama.cpp server, OpenRouter, LocalAI, or any API that mirrors the OpenAI chat format |
| Anthropic | /v1/messages |
Anthropic's API directly, or an Anthropic-format proxy |
| Custom | /chat/completions |
You're running a proxy or gateway that deviates from standard paths |
OpenAI-compatible is the right choice for most self-hosted and third-party services. If you're unsure, start there.
The Custom type defaults to the same path suffix as OpenAI-compatible but starts with a batch concurrency of 1 — appropriate for non-standard or rate-sensitive endpoints.
Base URL
Enter the root URL of the API — no trailing slash. Orion appends the appropriate path (shown in the table above) before every request.
The form shows a Full request URL preview below the field as you type, so you can confirm the final URL looks right before saving.
Click the examples link next to the field label to see common base URLs for the selected type. Clicking any example fills the field for you.
Examples for OpenAI-compatible:
https://api.openai.com/v1 → https://api.openai.com/v1/chat/completions
http://localhost:11434/v1 → http://localhost:11434/v1/chat/completions (Ollama)
http://localhost:8080/v1 → http://localhost:8080/v1/chat/completions (llama.cpp)
https://openrouter.ai/api/v1 → https://openrouter.ai/api/v1/chat/completions
Examples for Anthropic:
https://api.anthropic.com → https://api.anthropic.com/v1/messages
Models
The models list is the set of model IDs available in this provider's dropdown when writing prompts. Orion does not auto-discover models — you add them manually.
Type a model ID in the input field and press Enter or click the + button to add it. Added models appear as removable tags. Click the × on any tag to remove it.
Use the exact model ID that the API expects — for example gpt-4o, llama3, mistral, openai/gpt-4o (for OpenRouter). The ID is sent verbatim in the request body.
API Key
Click Set API Key to expand the credential input. Enter your API key and save it.
API keys are stored in your operating system's secure keychain (Keychain on macOS, Secret Service on Linux, Credential Manager on Windows) — never in a file on disk. Orion injects the key at request time in the main process; it never passes through the renderer.
For providers that don't require a key (such as Ollama running locally), you can leave this blank.
Advanced options
These fields are collapsed into the lower part of the form. They're optional for most providers but important for local models and non-standard setups.
Custom Headers
Adds HTTP headers to every request sent to this provider. Click + Add to add a key-value row.
Common uses:
HTTP-RefererandX-Title— required by OpenRouter to identify your app in their dashboard.x-api-key— some proxies use a non-standard header for authentication instead ofAuthorization: Bearer.- Custom routing or tracing headers required by an internal gateway.
Query Parameters
Appends query string parameters to every request URL. Click + Add to add a key-value row.
Less common than headers, but useful for APIs that accept options via query string (some proxies and model servers do this).
Ignore SSL Errors
A toggle. When enabled, Orion skips SSL certificate verification for this provider's requests.
Enable this when you're running a local model server with a self-signed certificate and HTTPS — for example, a llama.cpp server or LocalAI instance configured with SSL on your LAN. Do not enable it for production API endpoints on the public internet.
Batch Concurrency
Controls the maximum number of parallel requests Orion sends to this provider during a batch run (when you run a prompt against a CSV file with many rows).
The default is 5 for cloud providers and 1 for custom-type providers. The range is 1–50.
Why this matters for local models: a single local model server typically handles one request at a time. Sending multiple concurrent requests causes queuing, timeouts, or errors. Set this to 1 for Ollama, LM Studio, llama.cpp, and any other local inference server. For cloud APIs that support higher throughput (OpenAI, Anthropic, OpenRouter), you can increase it to speed up large batch runs.
Testing the connection
After saving a provider, click Edit to reopen its form. You'll see a Test button in the bottom-left corner of the form (it only appears once the provider has been saved).
Clicking Test sends a minimal request to the provider — a short completion using the first model in the list — and reports success or failure alongside the latency. A green Wi-Fi icon and message indicate a working connection. A red icon with an error message means something is wrong: check the base URL, API key, and (for local models) that the server is actually running.
The Test button is only available on saved providers. If you're creating a new provider, save it first, then reopen it to test.
Common setups
Ollama
Ollama exposes an OpenAI-compatible API at http://localhost:11434/v1 by default.
| Field | Value |
|---|---|
| Name | Ollama |
| Type | OpenAI-compatible |
| Base URL | http://localhost:11434/v1 |
| Models | Model names as you've pulled them: llama3, mistral, phi3, etc. |
| API Key | Leave blank |
| Ignore SSL | Off (Ollama uses plain HTTP locally) |
| Batch Concurrency | 1 |
LM Studio
LM Studio's local server defaults to port 1234 and is OpenAI-compatible.
| Field | Value |
|---|---|
| Name | LM Studio |
| Type | OpenAI-compatible |
| Base URL | http://localhost:1234/v1 |
| Models | Whatever model you've loaded — LM Studio accepts any string; the loaded model responds regardless |
| API Key | Leave blank (or enter any non-empty string if LM Studio requires one) |
| Batch Concurrency | 1 |
OpenRouter
OpenRouter routes requests to dozens of models from a single API key. It uses the OpenAI-compatible format.
| Field | Value |
|---|---|
| Name | OpenRouter |
| Type | OpenAI-compatible |
| Base URL | https://openrouter.ai/api/v1 |
| Models | Any model slug from the OpenRouter catalogue: openai/gpt-4o, anthropic/claude-3.5-sonnet, meta-llama/llama-3.1-70b-instruct, etc. |
| API Key | Your OpenRouter API key |
| Custom Headers | HTTP-Referer: https://yoursite.com and X-Title: Orion (recommended by OpenRouter) |
| Batch Concurrency | Start at 5; increase based on your OpenRouter rate limits |
What's next
- Using variables — learn how to use
{{variable}}placeholders in prompts to create reusable templates that work across providers. - Batch runs — attach a CSV to a prompt and run it against every row in one click.
- Comparing models — use the comparison view to run the same prompt against multiple providers or models side by side.