Override Appium AI settings per session

By default, Appium AI uses the LLM settings configured for your organization. See Configure Appium AI settings for your organization. You can override those settings for a single Appium session by passing kobiton:* desired capabilities.

If you omit a capability, the session uses the value from your organization settings. If your organization doesn’t set a value, the session uses the host defaults.

See Available capabilities for the full reference of the kobiton:llm*, kobiton:visionCoordSpace, and kobiton:locatorStrategy capabilities. kobiton:locatorStrategy selects how Appium AI resolves elements; see Appium AI: Natural language locators for guidance on choosing a strategy.

Use this to:

  • Route AI requests through your own OpenAI, Azure OpenAI, Anthropic Claude, or local LLM endpoint to meet compliance or data residency requirements.

  • Use a different model without requiring an administrator to update your organization settings or the host defaults.

  • Run AI features against a local LLM for air-gapped or cost-sensitive environments.

Prerequisites

  • Appium AI is turned on in your organization settings, or your organization hasn’t saved Appium AI settings.

  • You have an API key or reachable local endpoint for the LLM provider you want to use.

Examples

OpenAI (default endpoint, your API key)

python
desired_capabilities = {
  'kobiton:llmApiKey': '<your-openai-key>',
  'kobiton:llmTextModel': 'gpt-5.6-terra',
  'kobiton:llmVisionModel': 'gpt-5.6-terra',
}

Azure OpenAI

python
desired_capabilities = {
  'kobiton:llmBaseUrl': 'https://my-resource.openai.azure.com',
  'kobiton:llmApiKey': '<your-azure-key>',
  'kobiton:llmApiFormat': 'AzureOpenAiV1ChatCompletions',
  'kobiton:llmApiVersion': '2024-02-01',
  'kobiton:llmTextModel': 'my-gpt4o-deployment',
  'kobiton:llmVisionModel': 'my-gpt4o-deployment',
}

For Azure, llmTextModel and llmVisionModel use the Azure deployment name, not the underlying model name.

Anthropic Claude

python
desired_capabilities = {
  'kobiton:llmBaseUrl': 'https://api.anthropic.com/v1',
  'kobiton:llmApiKey': '<your-anthropic-key>',
  'kobiton:llmApiFormat': 'AnthropicMessages',
  'kobiton:llmTextModel': 'claude-opus-4-8',
  'kobiton:llmVisionModel': 'claude-opus-4-8',
}

Kobiton-hosted LLM

The Kobiton-hosted LLM runs at https://llm.kobiton.com/v1 and needs no third-party LLM account. It is available on Private and Local devices where the Mac mini host can reach llm.kobiton.com. It is unavailable on an air-gapped host or where the domain is blocked.

The hosted model serves vision only. Set kobiton:locatorStrategy to visionvirtual for sessions that use it.

python
desired_capabilities = {
  'kobiton:llmBaseUrl': 'https://llm.kobiton.com/v1',
  'kobiton:llmApiKey': '<your-kobiton-llm-key>',
  'kobiton:llmApiFormat': 'KobitonChatCompletions',
  'kobiton:llmVisionModel': 'qwen25-vl-7b',
  'kobiton:locatorStrategy': 'visionvirtual',
}

qwen25-vl-7b is the only model this endpoint serves. Any other value in kobiton:llmVisionModel returns an error. If your administrator has already set the Kobiton-hosted LLM as the host-wide default, sessions do not need to set these capabilities.

Local LLM endpoint (Ollama)

python
desired_capabilities = {
  'kobiton:llmBaseUrl': 'http://localhost:11434',
  'kobiton:llmApiKey': '<token-or-placeholder>',
  'kobiton:llmApiFormat': 'OpenAiChatCompletions',
  'kobiton:llmTextModel': '<local-model-name>',
  'kobiton:llmVisionModel': '<vision-capable-local-model>',
}

Ollama exposes a native API and an OpenAI-compatible chat completions API. Set kobiton:llmApiFormat to OllamaChat for the native endpoint or OpenAiChatCompletions for the compatibility endpoint.

kobiton:llmApiKey is required even for local Ollama endpoints that do not enforce authentication. Pass any value, such as ollama.

Local endpoints are resolved from the host running the Appium session. For example, localhost refers to the Mac mini running the session.

Notes

  • Capabilities apply only to the session that passed them; other sessions continue to use your organization settings or the host defaults.

  • A session that sets kobiton:llmBaseUrl must also set kobiton:llmApiKey. Appium AI doesn’t send an API key from your organization settings or the host defaults to an endpoint set in the session. Existing scripts that set kobiton:llmBaseUrl without kobiton:llmApiKey fail on the first LLM request. See API key rules.

  • kobiton:llmApiFormat must match the provider used by kobiton:llmBaseUrl.

  • Vision-based features require a model that accepts image input such as screenshots.