Skip to content

feat: add Opper provider - #15

Open
Felixkw12 wants to merge 1 commit into
Jeomon:mainfrom
Felixkw12:feat/opper-provider
Open

Felixkw12 wants to merge 1 commit into
Jeomon:mainfrom
Felixkw12:feat/opper-provider

Conversation

@Felixkw12

Copy link
Copy Markdown

Adds Opper as an LLM provider.
Opper is an EU-hosted, OpenAI-compatible AI gateway: one API key gives access to 700+ models from 50+ providers.

ChatOpper extends ChatOpenAI and only sets the base URL, the API key env var and the provider name, the same pattern the other OpenAI-compatible providers use.

Changes
  • windows_use/providers/opper/: new ChatOpper class.
    • Base URL: https://api.opper.ai/v3/compat.
    • Key: OPPER_API_KEY. Optional base URL override: OPPER_API_BASE.
    • Default model: claude-sonnet-4-6.
  • windows_use/providers/__init__.py: export ChatOpper.
  • windows_use/cli/registry.py: provider, models, API key flag and display name.
  • windows_use/cli/setup.py: create_llm branch and env var map entry.
  • README.md: provider table row and a short usage example.
  • tests/unit/providers/test_opper.py: client defaults and CLI registry entries.

The listed models (claude-sonnet-4-6, gpt-5.4-mini, gpt-5.5, gemini-3.8-flash, mistral-large-2512) are pool names from Opper's public catalog (GET https://api.opper.ai/v3/models), and all of them support vision and tool calling, which the agent needs. Keys: https://platform.opper.ai

Testing
  • I did not run pytest or ruff locally, so CI is the first run. The new tests follow the existing provider tests line for line.

Disclosure: Opper is my startup.

Adds ChatOpper, a ChatOpenAI subclass for Opper's OpenAI-compatible API at https://api.opper.ai/v3/compat, in the same shape as the other OpenAI-compatible providers. It reads OPPER_API_KEY (and OPPER_API_BASE to override the base URL), and is registered in the CLI setup wizard, the provider exports and the README, with unit tests next to the existing provider tests.

Opper is an EU-hosted AI gateway: 700+ models from 50+ providers behind one key. The default model, claude-sonnet-4-6, and the other listed models are pool names from Opper's public catalog (GET https://api.opper.ai/v3/models) that support vision and tool calling.

Disclosure: Opper is my startup.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant