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

# Providers

> Configure the AI model, image generation, web search, semantic search, and file storage for a self-hosted workspace — all from Settings → Providers.

A self-hosted Studiograph brings its own keys. After the server is up, almost everything that defines *what your workspace runs on* is configured in the web app under **Settings → Providers** (owner-only) — no config files to edit and no restart needed. Five things are configured here:

| Panel                                 | What it controls                              | Required?                        |
| ------------------------------------- | --------------------------------------------- | -------------------------------- |
| [AI Provider](#ai-provider)           | The language model that powers the agent      | Yes                              |
| [Image generation](#image-generation) | The model the agent uses to generate images   | Optional                         |
| [Web Search](#web-search)             | Whether and how the agent searches the web    | Optional                         |
| [Semantic Search](#semantic-search)   | Meaning-aware search on top of keyword search | Optional                         |
| [Asset Storage](#asset-storage)       | Where uploaded files live                     | Optional (local disk by default) |

Structural settings (provider names, model ids, bucket names) are stored in the committed workspace config; API keys and credentials go into the encrypted secrets store, protected by `STUDIOGRAPH_MASTER_KEY` — see [Configuration](/self-hosting/configuration). Every key field has a **Test connection** button that verifies the credential against the real service.

## AI Provider

The language model that powers the agent. Choose a provider — **Anthropic, OpenAI, Google, xAI, Groq, or OpenRouter** — pick a model, and paste your own API key.

* The model field is a combobox: focusing it suggests curated models for the selected provider, and typing accepts any model id — useful for OpenRouter's long tail or a just-released model that isn't curated yet.
* API keys are stored per provider. Switching from Anthropic to OpenAI and back keeps both keys intact — you don't re-enter a key when you switch back.
* You can also set the provider at deploy time (first-boot prompt, Docker env vars, or `studiograph deploy railway --provider … --model … --api-key …`) and change it here later.

## Image generation

Lets the agent generate images. Image generation runs through **OpenRouter**, independent of the chat provider above — so you can chat on Anthropic and generate images with a Google or OpenAI image model through one OpenRouter key.

* **OpenRouter API key** — if your AI Provider is already OpenRouter, it's the same key (entering it in either place keeps both in sync).
* **Model** — defaults to `google/gemini-2.5-flash-image` (Nano Banana). Curated alternatives are GPT-5 Image (`openai/gpt-5-image`) and FLUX.2 Pro (`black-forest-labs/flux.2-pro`), and you can type any OpenRouter image model id. Leave it blank to use the default.

## Web Search

Off by default. Choose a search provider to let the agent search the web during chats:

* **Model native** — searches run through your AI provider's own built-in web search, using the API key you already set. No separate search account: your model provider bills the searches (roughly 1–1.5¢ each). Supported when the AI provider is Anthropic, OpenAI, Google, xAI, or OpenRouter. If your provider doesn't offer native search (for example Groq), searches fall back to a standalone key below if one is set — otherwise web search stays off.
* **Brave** or **Tavily** — paste the service's API key.
* **Google** — paste an API key **and** a Programmable Search Engine ID (the `cx` parameter).
* **None** — turns web search off.

## Semantic Search

Optional. Paste a **Voyage AI** key and search understands meaning, not only keywords — every entry is embedded as it's indexed, and queries match by similarity as well as text. Without a key, search still works fine on keyword matching alone. Adding or removing the key requires no other changes; new content is embedded as it's indexed.

## Asset Storage

Where uploaded files (images, video, audio, fonts, PDFs) live. Entries themselves are text in the workspace's git repository — this panel only concerns uploads.

* **Local (default)** — files are stored in `.studiograph/assets/` on the server's disk. Zero configuration.
* **Cloudflare R2** — files are stored in an R2 bucket and served via signed URLs. Enter the account ID, bucket name, public URL, and credentials. Once R2 is active, a **Sync** action moves any files still sitting on local disk into the bucket, so storage stays in one place.

See [Storage & backups](/self-hosting/storage-and-backups) for what each backend means for your backup strategy.

## Everything else

Two settings panels outside Providers complete the picture:

* **Settings → Agents** — each member's personal thinking level for the agent, the workspace's MCP endpoint URL, and personal access tokens for [connecting Claude Code, Codex, and other AI tools](/cli/mcp).
* **Settings → External connectors** — outside MCP servers the agent can call (calendars, trackers, CRMs). See [Connectors](/agent/connectors).
