From fd14ea3f159d9e0a14c75735b51bafc708f1f396 Mon Sep 17 00:00:00 2001 From: Felix <151852644+Felixkw12@users.noreply.github.com> Date: Wed, 26 Aug 2026 16:15:47 +0000 Subject: [PATCH] feat(providers): add Opper as a declarative OpenAI-compatible provider (#11589) --- crates/goose-providers/src/declarative.rs | 1 + .../src/declarative/definitions/opper.json | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 crates/goose-providers/src/declarative/definitions/opper.json diff --git a/crates/goose-providers/src/declarative.rs b/crates/goose-providers/src/declarative.rs index 40b770316..f42fce9ed 100644 --- a/crates/goose-providers/src/declarative.rs +++ b/crates/goose-providers/src/declarative.rs @@ -40,6 +40,7 @@ pub(crate) mod declarative_providers { omlx, opencode_go, opencode_zen, + opper, orcarouter, ovhcloud, perplexity, diff --git a/crates/goose-providers/src/declarative/definitions/opper.json b/crates/goose-providers/src/declarative/definitions/opper.json new file mode 100644 index 000000000..c4b289363 --- /dev/null +++ b/crates/goose-providers/src/declarative/definitions/opper.json @@ -0,0 +1,31 @@ +{ + "name": "opper", + "engine": "openai", + "display_name": "Opper", + "description": "European AI gateway: 600+ chat models from Anthropic, OpenAI, Google, Mistral, xAI and open-weights hosts behind one OpenAI-compatible endpoint, with EU-region variants of the same models.", + "api_key_env": "OPPER_API_KEY", + "base_url": "https://api.opper.ai/v3/compat/chat/completions", + "catalog_provider_id": "opper", + "models": [ + { "name": "anthropic/claude-opus-5", "context_limit": 1000000, "reasoning": true }, + { "name": "anthropic/claude-sonnet-5", "context_limit": 1000000, "reasoning": true }, + { "name": "anthropic/claude-haiku-4-5", "context_limit": 200000 }, + { "name": "aws/claude-sonnet-4-6-eu", "context_limit": 1000000, "reasoning": true }, + { "name": "openai/gpt-5.6-sol", "context_limit": 1050000, "reasoning": true }, + { "name": "openai/gpt-5.5", "context_limit": 1050000, "reasoning": true }, + { "name": "gemini/gemini-3.1-pro-preview", "context_limit": 1048576 }, + { "name": "gemini/gemini-3.6-flash", "context_limit": 1048576 }, + { "name": "xai/grok-4.6", "context_limit": 500000, "reasoning": true }, + { "name": "mistral/devstral-2512", "context_limit": 256000 }, + { "name": "mistral/mistral-large-2512", "context_limit": 256000 } + ], + "dynamic_models": true, + "supports_streaming": true, + "fast_model": "anthropic/claude-haiku-4-5", + "model_doc_link": "https://opper.ai/models", + "setup_steps": [ + "Sign up at https://opper.ai", + "Create an API key at https://platform.opper.ai", + "Paste the key above as OPPER_API_KEY" + ] +}