Skip to main content
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: 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. 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.
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.
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 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.
  • Settings → External connectors — outside MCP servers the agent can call (calendars, trackers, CRMs). See Connectors.