Sero uses providers for model access and model tiers for everyday choices. A profile can use hosted API-key providers, OAuth-backed providers from the Pi SDK, plugin-defined providers, and local/custom providers from models.json.
Sero does not bundle third-party credentials. You connect your own accounts, API keys, environment-backed credentials, or local endpoints.
| Provider type | How it is configured | Typical status |
|---|---|---|
| API-key provider | Add a key in Sero or provide an environment-backed key. | healthy, env, missing, or broken_invalid |
| OAuth provider | Sign in through the OAuth flow exposed by the Pi SDK provider catalog. | healthy, missing, or broken_expired |
| Plugin-defined provider | Installed/built-in package manifest exposes sero.providers metadata. |
Same as API-key providers when auth type is apiKey |
| Local/custom provider | Configure <SERO_HOME>/agent/models.json through Local models or by editing the file. |
local, healthy, missing, or unknown depending on registry results |
| Provider | Provider ID | Auth mode | Notes |
|---|---|---|---|
| Anthropic | anthropic |
API key or env-backed key | Models appear when credentials and registry data are available. |
| OpenAI | openai |
API key or env-backed key | Also used by voice transcription features that require OpenAI credentials. |
| Google (Gemini) | google |
API key or env-backed key | Hosted Gemini model provider. |
| OpenRouter | openrouter |
API key or env-backed key | Aggregated model provider. |
| xAI | xai |
API key or env-backed key | Hosted xAI models. |
| Groq | groq |
API key or env-backed key | Hosted Groq models. |
| Cerebras | cerebras |
API key or env-backed key | Hosted Cerebras models. |
| Mistral | mistral |
API key or env-backed key | Hosted Mistral models. |
| Azure OpenAI | azure-openai-responses |
API key or env-backed key | Azure OpenAI Responses-compatible provider. |
| Hugging Face | huggingface |
API key or env-backed key | Hosted Hugging Face provider. |
| Vercel AI Gateway | vercel-ai-gateway |
API key or env-backed key | Vercel gateway provider. |
| ZAI | zai |
API key or env-backed key | Hosted ZAI provider. |
| OpenCode | opencode |
API key or env-backed key | OpenCode provider. |
| Kimi | kimi-coding |
API key or env-backed key | Kimi coding provider. |
Environment-backed keys are detected through Pi's provider env handling. They are not copied into the UI as plain Sero-owned credentials.
Packages can add provider metadata through sero.providers in their manifest. Sero scans compatible built-in packages, installed profile plugins under <SERO_HOME>/agent/plugins/, extensions under <SERO_HOME>/agent/extensions/, and configured local package paths.
| Provider | Provider ID | Source | Auth mode | Notes |
|---|---|---|---|---|
| Alibaba Coding Plan | alibaba-coding-plan |
plugins/sero-alibaba-plugin/package.json |
API key; env var ALIBABA_CODING_PLAN_KEY |
Plugin manifest declares default tiers for Qwen-family models. Present when the package manifest is available and compatible. |
Plugin-defined providers follow the same health/reconnect behavior as other API-key providers when their manifest declares auth.type: "apiKey".
| Status | Meaning | What to do |
|---|---|---|
healthy |
Sero found usable models for the provider. | You can select its models. |
env |
Environment-backed credentials were detected. Models may or may not be usable yet. | If no models appear, check the env var value and provider access. |
local |
A local/custom provider is configured in models.json. |
Test the local endpoint and fetch models if the list is empty. |
missing |
No saved credential or usable local configuration is available. | Connect, add an API key, or configure a local provider. |
broken_expired |
Saved OAuth login looks expired or unavailable. | Reconnect the provider. |
broken_invalid |
Saved API key may be invalid or no longer works. | Replace or remove the key, then reconnect. |
unknown |
Models are available from a provider Sero cannot classify through the known catalogs. | Use the model if expected; otherwise inspect plugins and models.json. |
A provider can have credentials but no usable models. Sero keeps enough information to warn you rather than silently hiding broken saved choices.
Tiers are profile-level defaults:
| Tier | Intended use |
|---|---|
| LOW | Fast, lightweight, lower-cost tasks. |
| MED | Balanced everyday work. |
| HIGH | Stronger reasoning or complex work. |
Each tier stores both a model and a thinking level. Thinking is tier-based: LOW, MED, and HIGH can each use different thinking levels, and Sero only offers levels supported by the selected model.
Use Admin → Model to change long-term defaults. Use the chat model selector for a one-off session override; see Agent Sessions and Context for where that selector fits in the composer.
Sero derives available thinking levels from the selected model's provider, model ID, display name, reasoning flag, and whether the model appears to support extra-high reasoning. If a model does not support the selected thinking level, Sero warns instead of pretending the setting is valid.
Good defaults:
Local/custom providers are stored in:
Use the Local models UI for common presets such as LM Studio, Ollama, vLLM, and custom OpenAI-compatible servers. Advanced fields are preserved by the UI but may need direct file editing.
For a task guide, see Local LLMs with LM Studio. For exact supported fields, see models.json Reference.
| Symptom | Recovery |
|---|---|
| No providers are usable during onboarding | Connect a provider, add an API key, or configure a local provider. |
Provider shows env but no models |
Check that the environment variable is available to Sero and that the provider account can list/use models. |
| OAuth provider shows expired/broken | Reconnect through the provider auth flow. |
| API-key provider shows invalid/broken | Replace the key or remove the stale credential and connect again. |
| Local provider has no models | Start the local server, test the URL, fetch models, and save. |
| Saved tier warns about unavailable model | Reconnect the provider or choose another model in Admin → Model. |
models.json error blocks local editing |
Back up and fix <SERO_HOME>/agent/models.json, then reopen the model manager or restart Sero. |