Configuration

Providers, models, and thinking

Connect Anthropic, OpenAI, Google, OpenRouter, Ollama, or an OpenAI-compatible endpoint, then choose models and thinking levels.

Last reviewed October 25, 2026 · 6 min read

Browse the wiki

PiLot Studio uses PI's provider catalog and PI's credential store. You can connect a hosted provider, sign in with OAuth where supported, or point PI at a local OpenAI-compatible server.

The Providers tab

Open Providers with the key icon or press 4.

Each card shows the provider name, the authentication method it found, and its current status. Depending on the provider you may see:

  • API key valid — a key is stored and verification succeeded.
  • OAuth active — an OAuth credential is stored.
  • Key from models.json or Command from models.json — the credential comes from a custom provider definition rather than auth.json.
  • Not configured — no credential was found.

Actions on a card include:

  • Sign in for providers that support OAuth. The browser flow is handled by the Pi CLI; PiLot Studio waits for the result and reports progress in the panel.
  • Sign out to delete stored OAuth credentials.
  • Verify to test the credential against the provider.
  • Remove credentials to delete the stored key without deleting the provider definition.

PiLot Studio writes keys to PI's auth.json with owner-only permissions and preserves the rest of the file. Keys are never sent to Printaga. They are sent only to the provider endpoint you select.

PI can also read credentials from its environment or its own auth configuration. If a key works in the Pi CLI but PiLot Studio shows the provider as unconfigured, check the same agentDir and environment.

Adding an API key

  1. Open Providers.
  2. Find the provider card and paste the key.
  3. Save. The status refreshes after the host verifies it.
  4. Open the model picker and choose a model from that provider.

Use Open auth.json if you prefer to edit the credential file directly. Keep the file private.

OAuth providers

Some providers support an interactive OAuth login instead of a static API key. Choose Sign in, complete the browser flow, and return to VS Code. The panel shows the authorization state and any prompt the provider requires. Sign out removes the stored OAuth credential.

OAuth is implemented by the Pi CLI (pi login flow), so the result is shared with the CLI.

Custom and local providers

Use Add custom provider for any OpenAI-compatible endpoint, including a local server, a gateway, or a provider PI does not ship in its catalog.

Field Meaning
Provider ID The internal identifier, for example kilocode. It cannot be changed after creation.
Display name The label shown in the model picker.
Base URL The OpenAI-compatible base URL, for example http://localhost:11434/v1.
API The wire protocol; openai is the usual choice.
API key Optional. Leave empty for an unauthenticated local server.
Models One model per line, optionally id, Display Name.

Fetch available models queries <base URL>/models and fills the model list. For an authenticated endpoint, paste the key first; stored keys are not sent back into the form.

Custom providers are saved to PI's models.json, not to a PiLot-only database. They remain visible in the Pi CLI and can be edited by hand. Editing an existing custom provider preserves per-model metadata that the form does not expose, such as context window, cost, reasoning support, and thinking-level maps.

For Ollama, point the base URL at the local OpenAI-compatible endpoint (usually http://localhost:11434/v1) and list the models you have pulled. Pair it with Light Mode to keep the local context small.

Refreshing the catalog

The Providers header has two refresh actions:

  • Refresh reloads the local/offline model catalog. This is the default and does not make a network request.
  • Refresh (online) asks PI to refresh its personalized network catalog. This can discover remote models and provider-specific entries, and may use your provider key for scoping (for example OpenRouter). Use it when a model you expect is missing.

Model lists are cached by PI. A refresh updates the Providers panel and the model picker together.

Choosing a model

Open the model picker from the header or with 3.

  • Only models from configured providers are listed.
  • Filter by name or provider, or choose a provider tab.
  • The star adds a model to Favorites; the header's star menu gives you quick access to favorites.
  • Refresh model list reloads the catalog.
  • Open models.json opens the custom-provider file.

The selected model applies to the current session. Switching models mid-session is supported; the transcript stays, and the next request uses the new model. If a resumed session cannot use its original model, PI's fallback notice appears in chat.

Thinking levels

Models that support reasoning expose a thinking-level control in the header and under Preferences → Thinking Level. The levels are:

Level Meaning
off No additional reasoning.
minimal Quick thoughts.
low Brief reasoning.
medium Standard reasoning (default).
high Deep analysis.
xhigh Very high reasoning.
max The model's maximum.

PiLot Studio clamps the selection to the levels the selected model advertises. If a model carries no capability metadata, the full set is shown and the provider decides what to do with it. Higher levels can cost more and take longer; medium is a reasonable default.

The default for new sessions is pi-agent.thinkingLevel. Changing it in the UI updates the current session immediately.

Media models

The Providers panel also lists PI's image and classifier catalog entries. These are not chat models and do not appear in the chat model picker. They are shown so you can see which providers expose them; classifier-only providers are labeled. They run through PI's codemode and tooling rather than the conversation picker.

Offline mode

pi-agent.offline starts PI with --offline (equivalent to PI_OFFLINE=1). It disables startup network operations such as update checks and catalog refreshes. It does not disable model requests: a chat still goes to the endpoint you selected.

For a fully local setup, use a local OpenAI-compatible endpoint, enable Light Mode, and optionally keep pi-agent.offline on. Voice dictation is already local after its one-time model download.

Troubleshooting provider problems

  • No models in the picker. The provider is not configured, or the model catalog has not loaded. Check the Providers card, then use Refresh.
  • Authentication failed. Re-enter the key or sign in again. For custom providers, confirm the base URL and the /models path.
  • Model not found. A custom provider's model list may not include the exact ID the endpoint expects. Add it manually in models.json or in the custom-provider form.
  • Requests fail after switching models. Some models do not support images or the selected thinking level. Check the provider's error in the chat transcript.

Something inaccurate or missing? Open an issue with the page title.