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

> ## Agent Instructions
> For agents: install the OpenWork desktop app with `brew install --cask openwork` (macOS) or from https://openworklabs.com/download. Do not run `npx openwork`; the npm package named `openwork` is a different project.
> Connect an agent to OpenWork with the MCP Gateway: `claude mcp add --transport http openwork https://api.openworklabs.com/mcp/agent`. Teams sign up at https://app.openworklabs.com?mode=sign-up.
> Step-by-step agent guide: https://openworklabs.com/docs/start-here/use-openwork-from-an-ai-agent.md
> Connect Slack (any organization admin): https://openworklabs.com/docs/slack/connect-slack.md. OpenWork in Slack (@openwork bot) is private alpha for approved organizations. Setup guide: https://openworklabs.com/docs/slack/overview.md. Agent skill: https://openworklabs.com/.well-known/agent-skills/set-up-openwork-slack/SKILL.md.

# Adding a custom LLM provider

> Share an OpenAI-compatible endpoint, such as Azure AI Foundry, LiteLLM, or vLLM, with your org from OpenWork Cloud.

Use this when you need a custom endpoint or model definition outside the supported AI Gateway integrations, such as vLLM or an internal gateway. You add the endpoint and key once in OpenWork Cloud, and it syncs to members' desktop apps.

Providers created with this legacy custom-provider form sync the key to members' apps and have no AI Gateway usage tracking. Before using it, check the [provider support matrix](https://openworklabs.com/docs/ai-gateway/provider-support.md): Gateway supports compatible catalog endpoint overrides, a dedicated [LiteLLM integration](https://openworklabs.com/docs/ai-gateway/litellm.md), Azure OpenAI, and [Claude on Microsoft Foundry](https://openworklabs.com/docs/ai-gateway/microsoft-foundry.md), while keeping upstream credentials on the server. See [Adding a managed LLM provider](https://openworklabs.com/docs/cloud/share-with-your-team/managed-llm-provider.md) for how the two paths compare.

## Create the custom provider

1. In OpenWork Cloud, open **AI Gateway › AI Providers**.
2. Scroll to **Legacy Providers** and click **Add legacy provider**.
3. Switch to **Custom provider**.
4. Paste the shared key into **API key / credential**.
5. Enter the **Base URL** of the OpenAI-compatible endpoint. It usually ends in `/v1`. For Azure AI Foundry it looks like `https://my-resource.openai.azure.com/openai/v1`.
6. OpenWork checks the endpoint and lists the models it serves. Pick the ones to share. If a model is missing, click **My model isn't listed — enter IDs manually** and type the IDs in **Model IDs**, one per line. On Azure AI Foundry, these are your deployment names.
7. Enter a short **Provider ID**, such as `azure-foundry`. Or click **Rename** next to **Name** and type a name, and the **Provider ID** fills in from it. If you don't rename it, the name is based on the endpoint, for example `my-resource.openai.azure.com — key 1`.
8. Under **Who can use it**, keep **Everyone in** *(your organization name)*, or pick specific **Teams** and **People**.
9. Click **Create Provider**.

![The Custom provider form: Provider ID, API key / credential, Base URL, and Model IDs](https://mintcdn.com/differentai/iwpDWiNaQNqf99YJ/images/cloud-custom-llm-provider-form.png?fit=max\&auto=format\&n=iwpDWiNaQNqf99YJ\&q=85\&s=c38e58c3f16292a78dba849f1ee16343)

You don't need to write JSON for an OpenAI-compatible endpoint.

Once saved, the provider page shows its configuration, whether the key is saved, and the models you shared:

![Acme LLM Gateway provider detail: Credential saved, provider ID, API base, and two selected models](https://mintcdn.com/differentai/iwpDWiNaQNqf99YJ/images/cloud-custom-llm-provider-detail.png?fit=max\&auto=format\&n=iwpDWiNaQNqf99YJ\&q=85\&s=c2920d24383cdce269cf70b52581a774)

### Advanced: raw JSON config

If the provider needs more than the form covers (a different AI SDK package, per-model limits or modalities, custom options), click **Advanced: edit as JSON** and paste a models.dev-style definition into **Custom provider JSON / JSONC**. Click **Use the guided form instead** to go back. The JSON must include `id`, `name`, `npm`, `env`, and `models`; `api` is optional, but most OpenAI-compatible providers use it. The editor requires valid JSON, at least one environment variable, and at least one model.

```json theme={null}
{
  "id": "custom-provider",
  "name": "Custom Provider",
  "npm": "@ai-sdk/openai-compatible",
  "env": [
    "CUSTOM_PROVIDER_API_KEY"
  ],
  "doc": "https://example.com/docs/models",
  "api": "https://api.example.com/v1",
  "models": [
    {
      "id": "custom-provider/example-model",
      "name": "Example Model",
      "attachment": false,
      "reasoning": false,
      "tool_call": true,
      "structured_output": true,
      "temperature": true,
      "release_date": "2026-01-01",
      "last_updated": "2026-01-01",
      "open_weights": false,
      "limit": {
        "context": 128000,
        "input": 128000,
        "output": 8192
      },
      "modalities": {
        "input": [
          "text"
        ],
        "output": [
          "text"
        ]
      }
    }
  ]
}
```

## What members see

Members don't import anything. Their desktop app syncs the provider automatically, and its models show up in the model picker. Members can check status in **Settings › AI Providers › Cloud providers**. See [What members see](https://openworklabs.com/docs/cloud/share-with-your-team/managed-llm-provider.md#what-members-see).

### Functional example: an LLM gateway (Infron)

An LLM gateway is one OpenAI-compatible endpoint that fans out to many model providers. If you want to run the routing yourself, [LiteLLM](https://infron.ai/docs/frameworks-and-integrations/litellm) is a good starting point. [Infron](https://infron.ai) is the hosted option: one API key gets you every model in its [marketplace](https://infron.ai/models) with automatic provider fallbacks and a single invoice, so adding a new LLM to OpenWork is just another entry under `models`.

Grab a key from the [API Keys dashboard](https://infron.ai/dashboard/apiKeys). If you don't have an account yet, sign up at [infron.ai/login](https://infron.ai/login) and their [quickstart](https://infron.ai/docs/overview/quickstart/text) walks you through your first request.

Add a legacy provider, switch to **Custom provider**, and paste the key into **API key / credential**. Then click **Advanced: edit as JSON** and use this JSON:

```json theme={null}
{
  "id": "infron",
  "name": "Infron",
  "npm": "@ai-sdk/openai-compatible",
  "env": [
    "INFRON_API_KEY"
  ],
  "doc": "https://infron.ai/docs/frameworks-and-integrations/openwork",
  "api": "https://llm.onerouter.pro/v1",
  "models": [
    {
      "id": "deepseek/deepseek-v3.2",
      "name": "DeepSeek V3.2",
      "attachment": false,
      "reasoning": true,
      "tool_call": true,
      "structured_output": true,
      "temperature": true,
      "release_date": "2025-09-29",
      "last_updated": "2025-09-29",
      "open_weights": true,
      "limit": {
        "context": 128000,
        "input": 128000,
        "output": 8192
      },
      "modalities": {
        "input": ["text"],
        "output": ["text"]
      }
    }
  ]
}
```

Once synced, Infron models show up in the Chat model picker alongside everything else:

![DeepSeek V3.2 via Infron in the OpenWork Chat model picker](https://mintcdn.com/differentai/KaN_YBcXtcxDn1Ob/images/infron-model-picker.png?fit=max\&auto=format\&n=KaN_YBcXtcxDn1Ob\&q=85\&s=5d09c0d486e7598ce0cf2e1960d05899)

Pick the model and it's live in the session footer:

![Infron · DeepSeek V3.2 selected in an OpenWork session](https://mintcdn.com/differentai/KaN_YBcXtcxDn1Ob/images/infron-model-active.png?fit=max\&auto=format\&n=KaN_YBcXtcxDn1Ob\&q=85\&s=9706a90be53e1b4cc1b5001f73faf0b0)

Add more entries under `models` to expose other routes the gateway supports (e.g. `openai/gpt-5.4`, `google/gemini-2.5-flash`).

## When to use a cloud provider

Use a cloud provider when a whole org or team should share the setup. For your own computer only, [add the provider in the desktop app](https://openworklabs.com/docs/start-here/connect-your-stack/add-a-custom-llm.md) instead.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.