Providers
A provider supplies models. You pick one model per session, and any provider you have connected can supply it — including a GPU endpoint Podcode deployed for you.
Four types
The type decides what setup costs you, and where your tokens go.
| Type | What you supply | Where inference happens |
|---|---|---|
| Cloud, API key | A key | The vendor's API |
| Cloud, OAuth | A browser or device-code sign-in | The vendor's API |
| Local | Nothing — auto-detected on its default port | Your machine |
| Self-hosted | A base URL, optionally a key | Wherever you're running it |
RunPod is a fifth case: it's self-hosted inference on hardware you rent, but Podcode does the deploying. It gets its own guide.
One provider spans several of these. Google is a single provider with three modes — an AI Studio API key, Vertex AI in your own GCP project, or an OAuth sign-in — chosen when you connect it.
What ships
| Provider | Type | Auth | Endpoint |
|---|---|---|---|
| Anthropic | Cloud | API key | api.anthropic.com |
| OpenAI | Cloud | API key | api.openai.com |
| Cloud | API key (AI Studio), service account or ADC (Vertex AI), or OAuth | Google AI API, or Vertex in your GCP project | |
| GitHub Copilot | Cloud | GitHub device-code OAuth | api.githubcopilot.com |
| Mistral | Cloud | API key | Mistral API |
| Cohere | Cloud | API key | Cohere API |
| MiniMax | Cloud | API key | api.minimax.io — Anthropic-compatible |
| Z.ai (GLM) | Cloud | API key | api.z.ai — OpenAI-compatible |
| OpenRouter | Cloud | API key or OAuth | openrouter.ai — an aggregator |
| NVIDIA | Cloud | API key | integrate.api.nvidia.com |
| Fireworks AI | Cloud | API key | api.fireworks.ai — OpenAI-compatible |
| Amazon Bedrock | Cloud | AWS SigV4 keys or a Bedrock API key, plus a region | bedrock-runtime.{region}.amazonaws.com |
| Ollama | Local | none | localhost:11434, configurable |
| LM Studio | Local | none | localhost:1234, configurable |
| vLLM | Self-hosted | optional key | your base URL |
| llama.cpp | Self-hosted | none | your base URL |
| RunPod | GPU | RunPod API key | deployed per endpoint |
Where credentials go
Into ~/.config/podcode/auth.json, encrypted at rest. They are never written into a workspace, and api_key, base_url, env, and npm are stripped out of a workspace's .podcode/config.json before it merges — a cloned repository cannot redirect a model endpoint and collect your key on the way past.
How a model's limits are resolved
Context windows and output caps come from four layers, highest priority first:
- Runtime — your config overrides.
- Live — what the provider itself reported at runtime.
- Synced — the models.dev catalogue, cached on disk for 24 hours.
- Bundled — a snapshot that ships with the build, for offline use.
When a provider publishes a live overlay, the bundled and synced rows for that provider are hidden entirely — only live and runtime remain visible. This is why a local model's advertised window comes from the server you're actually running rather than a guess from a table. When no layer declares limits at all, the fallback is 128,000 context and 4,096 output.
Next
- Connect a provider — one walkthrough per type.
- RunPod — deploy a private endpoint from inside the app.