# Providers

> Built-in LLM providers, defaults, and per-provider customisation.

The plugin ships with **sixteen** built-in providers. Five of them are enabled by default; the rest are off by default and can be opted into with a single line of config. This page lists every default and every field you can override.

## Defaults at a glance

The five providers that appear in the dropdown out of the box:

| Provider           | Strategy         | URL template                                 |
| ------------------ | ---------------- | -------------------------------------------- |
| **ChatGPT**        | `url-prompt`     | `https://chatgpt.com/?q={prompt}`            |
| **Claude**         | `clipboard-open` | `https://claude.ai/new`                      |
| **Gemini**         | `clipboard-open` | `https://gemini.google.com/app`              |
| **GitHub Copilot** | `url-prompt`     | `https://github.com/copilot?prompt={prompt}` |
| **Perplexity**     | `url-prompt`     | `https://www.perplexity.ai/?q={prompt}`      |

These five are the largest providers by user base; the goal is to keep the default dropdown short and recognisable. To use any other provider, opt in explicitly (see [Opting in to a provider](#opting-in-to-a-provider)).

## The full catalog

| Provider               | Default | Strategy         | URL template                                                 | Notes                                |
| ---------------------- | ------- | ---------------- | ------------------------------------------------------------ | ------------------------------------ |
| **ChatGPT**            | ✅ on    | `url-prompt`     | `https://chatgpt.com/?q={prompt}`                            | Auto-submits                         |
| **Claude**             | ✅ on    | `clipboard-open` | `https://claude.ai/new`                                      | Web prefill broken Oct 2025          |
| **Gemini**             | ✅ on    | `clipboard-open` | `https://gemini.google.com/app`                              | No native prefill                    |
| **GitHub Copilot**     | ✅ on    | `url-prompt`     | `https://github.com/copilot?prompt={prompt}`                 | Officially documented                |
| **Perplexity**         | ✅ on    | `url-prompt`     | `https://www.perplexity.ai/?q={prompt}`                      |                                      |
| **Google AI Studio**   | off     | `url-prompt`     | `https://ai.studio/prompts/new_chat?prompt={prompt}`         |                                      |
| **Cursor**             | off     | `inline-content` | `https://cursor.com/link/prompt?text={prompt_with_markdown}` | 8 KB cap, falls back to `url-prompt` |
| **DeepSeek**           | off     | `clipboard-open` | `https://chat.deepseek.com/`                                 | No prefill                           |
| **DuckDuckGo AI Chat** | off     | `url-prompt`     | `https://duckduckgo.com/?q={prompt}&ia=chat&duckai=1`        |                                      |
| **Grok**               | off     | `url-prompt`     | `https://grok.com/?q={prompt}`                               |                                      |
| **HuggingChat**        | off     | `clipboard-open` | `https://huggingface.co/chat/`                               | No prefill                           |
| **Kagi Assistant**     | off     | `url-prompt`     | `https://kagi.com/assistant?q={prompt}`                      | Subscribers only                     |
| **Mistral Le Chat**    | off     | `clipboard-open` | `https://chat.mistral.ai/chat`                               | No prefill                           |
| **Phind**              | off     | `clipboard-open` | `https://www.phind.com/agent`                                | No prefill                           |
| **T3 Chat**            | off     | `url-prompt`     | `https://t3.chat/new?q={prompt}`                             | Path must be `/new`                  |
| **You.com**            | off     | `url-prompt`     | `https://you.com/search?q={prompt}`                          |                                      |

For why each provider uses its assigned strategy, see [Concepts: per-provider strategies](/starlight-llm-actions/getting-started/concepts/#strategies).

## Provider IDs

When configuring `providers`, use these exact ids:

* `aistudio` — Google AI Studio
* `chatgpt`
* `claude`
* `copilot` — GitHub Copilot
* `cursor`
* `deepseek`
* `duckduckgo`
* `gemini`
* `grok`
* `huggingchat`
* `kagi`
* `mistral` — Mistral Le Chat
* `perplexity`
* `phind`
* `t3chat`
* `youcom` — You.com

## Opting in to a provider

Default-off providers must be opted into explicitly. Pass `true` for the shortest form:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        cursor: true,
        t3chat: true,
        kagi: true,
      },
    },
  },
})
```

Or pass an override object — that also opts the provider in:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        cursor: { maxBytes: 4000 },
      },
    },
  },
})
```

## Disabling providers

Pass `false` for any provider — including default-on ones — to remove it from the submenu:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        copilot: false,
        gemini: false,
      },
    },
  },
})
```

## Customising a provider

Pass a [`ProviderOverride`](/starlight-llm-actions/configuration/reference/#provideroverride) object. Every field is optional; unset fields fall back to the built-in defaults.

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        chatgpt: {
          label: 'ChatGPT (work account)',
          description: 'Send the page to ChatGPT for summary',
          prompt: 'Summarise the linked Acme docs page: {url}',
        },
      },
    },
  },
})
```

## Common customisations

### Tighter `inline-content` budget for Cursor

Cursor’s default `maxBytes` is 8000 (8 KB). To force the fallback for any page over 4 KB:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        cursor: {
          maxBytes: 4000,
          fallbackStrategy: 'clipboard-open',
        },
      },
    },
  },
})
```

### Force a different strategy

If a provider ships URL prefill in the future, you can switch its strategy without waiting for a plugin release:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        claude: {
          strategy: 'url-prompt',
          url: 'https://claude.ai/?q={prompt}',
        },
      },
    },
  },
})
```

### Replace icons with your own brand assets

Provider icons are SVGs sourced from [Simple Icons](https://simpleicons.org/) (CC0) and [Lobe Icons](https://lobehub.com/icons) (MIT). To use official brand assets:

```js
starlightLlmActions({
  actions: {
    openIn: {
      providers: {
        chatgpt: {
          icon: 'https://example.com/openai-official.svg',
        },
      },
    },
  },
})
```

`icon` accepts:

* An SVG filename under the package’s `icons/` folder (e.g. `'chat-bubble.svg'`) — inlined into the markup.
* An absolute URL, or a root-relative path such as `/icons/foo.svg` — rendered as an `<img>`.
* `false` — hide the icon.

T3 Chat and You.com ship with the generic `chat-bubble.svg` because neither icon set carries an official mark for them. Override `providers.<id>.icon` if you have your own asset.

### Per-provider prompts

Each provider can use a different prompt:

```js
starlightLlmActions({
  prompt: 'Help me understand this page: {url}',
  actions: {
    openIn: {
      providers: {
        cursor: {
          prompt: 'Use this docs context to scaffold an integration.',
        },
        chatgpt: {
          prompt: 'Summarise in one paragraph: {url}',
        },
      },
    },
  },
})
```

`{md_url}` is substituted with the absolute URL of the current page’s `.md` route (preferred — gives LLMs clean markdown). `{url}` substitutes the rendered HTML URL instead. `{prompt_with_markdown}` in the URL template appends the page’s markdown body to the prompt — useful for `inline-content` providers.

## Trademark and branding note

Brand names (ChatGPT, Claude, Gemini, GitHub Copilot, Perplexity, Cursor, T3 Chat, Google AI Studio, DeepSeek, DuckDuckGo, Grok, HuggingChat, Kagi, Mistral, Phind, You.com) and marks remain trademarks of their respective owners and appear nominatively in the plugin only to identify the linked services. No endorsement is implied. The bundled icons are from [Simple Icons](https://simpleicons.org/) under CC0 and [Lobe Icons](https://lobehub.com/icons) under MIT; to use official brand assets, override `providers.<id>.icon`.