Profiles & AI Providers

Configuring connections, models, keys and profile backups.

1. Managing profiles

A profile contains the provider, URL, API key, model and generation settings. The native tools offered to the model are shared by all profiles and chosen in Settings › Agent. Click the profile name in the header to select, create, edit or delete one. You can switch between messages; existing history is sent to the new provider on subsequent requests.

The editor is organised in collapsible chapters (Connection, WebGPU execution parameters only with WebLLM, Behaviour, MCP servers and Browser); each collapsed chapter shows a summary of its contents and its warnings. In MCP servers you tick the external MCP services the profile starts when it is activated; other running services are not stopped. A notice lists the ones the profile starts: they keep running until you stop them, but they are not remembered for the next session, unlike the ones you start in Settings › MCP. If one is not configured in the local server or does not start, ZeroChat warns you.

In Browser the profile asks only for the minimum it needs. If it requires nothing, the model browses with the tool of Settings › Browser, by default browser_action when Playwright is installed. With Playwright MCP required, while the profile is active, and in zerochat --prompt --profile, Playwright MCP is the browsing tool and starts with the chosen browser: ZeroChat’s own browser with one of its installed engines, or your Chrome, Edge or Chromium through the extension. With ZeroChat’s own browser it runs isolated in memory by default (--isolated, supporting concurrent runs); you can also specify a Persistent storage name to keep cookies and sessions between uses in ~/zerochat/playwright/profile/<engine>/<storage> (without simultaneous multitasking on the same name) and tick Show the window while the model browses. If it is already running with another browser, another storage or without the requested window, it restarts. The extension token remains that of Settings › Browser.

The editor includes temperature, instructions and reasoning. With Google Gemini the temperature control is disabled and the model default is used, because Google is retiring custom sampling parameters. Save applies changes; Lock changes prevents normal profile editing but is not computer access control.

Export downloads HTML containing encrypted editable profiles. Open it to start importing into ZeroChat and confirm: new profiles are added and matching identifiers are updated. Mirror is retained.

In Settings → Encryption you can set your own password or return to the default. The application's built-in key is known; default encryption does not protect secrets from someone with access to storage or the backup. With a custom password, unlocking material remains in browser storage for 24 hours. Treat backups as sensitive files and keep your password: forgotten keys cannot be recovered.

2. Providers and protocols

ProviderConnectionRequirement
OpenAI and compatible serversCompatible chat API; for example LM Studio, LocalAI or vLLMServer URL, model and key if required
Ollamahttp://localhost:11434Running service and allowed origin
OpenRouterhttps://openrouter.ai/api/v1API key; how to obtain one
Anthropic Claudehttps://api.anthropic.com/v1 or any server with the Messages API (/v1/messages), such as llama.cppAPI key if the server requires one
Google GeminiOpenAI-compatible endpointAPI key; how to obtain one
WebLLMwebllm://localWebGPU and a downloaded model
MirrorLocal simulationNo key or inference

Chat compatibility does not mean every model supports images, tools or reasoning. CORS, local network permissions and browser restrictions also apply.

3. Querying the server

  1. Select the API type and enter the URL and key where required.
  2. Press Query to retrieve models and available information.
  3. Select the model, review settings and save.

Network profiles require a successful query before saving. Capabilities may come from metadata or model-based heuristics: a successful query does not guarantee all subsequent operations will work.

For WebLLM, you can save an already downloaded model without repeating Query. To prepare another, open the catalogue and finish its download.

4. Inspecting a profile

The magnifying glass in the selector queries the configured model and displays availability, context and capability diagnostics. If it fails, check the URL, key, running service and browser access.

Vision is marked as confirmed or unsupported when the server declares which inputs the model accepts (llama.cpp, LM Studio, Ollama and OpenRouter do); otherwise the adapter's declaration or the model-name hint is shown.

Diagnostics help locate problems but do not certify compatibility with every feature. Try a simple conversation before adding images or tools.

5. Ollama and CORS

If the browser blocks access through CORS, allow the origin used to open ZeroChat in Ollama's configuration and restart its service. For GitHub Pages, the origin is https://albalday.github.io.

# Linux / macOS
OLLAMA_ORIGINS="https://albalday.github.io" ollama serve

# Windows PowerShell
$env:OLLAMA_ORIGINS="https://albalday.github.io"
ollama serve

If Ollama already runs as a service, change that service's environment instead of starting a second instance. For the local interface, add its exact origin. See the Ollama documentation. CORS does not replace authentication or resolve every browser restriction on local networks.

6. Mirror profile

Mirror is a read-only test profile that displays the message and normalized request structure without calling a model. Use it to inspect the interface and request format.

It does not generate AI answers or validate an external provider. A working Mirror profile does not establish that networking or credentials are configured correctly.