Skip to content

feat: add Opper as an OpenAI-compatible provider alias - #4677

Merged
aheritier merged 1 commit into
docker:mainfrom
Felixkw12:feat/opper-provider
Oct 21, 2026
Merged

aheritier merged 1 commit into
docker:mainfrom
Felixkw12:feat/opper-provider

Conversation

@Felixkw12

Copy link
Copy Markdown
Contributor

Summary

  • add Opper as a built-in OpenAI-compatible provider alias (opper, base URL https://api.opper.ai/v3/compat), in the same shape as the OpenRouter alias
  • discover OPPER_API_KEY for automatic model selection and credential forwarding, with claude-sonnet-4-6 as the default model
  • merge consecutive system messages, like the other gateway aliases
  • document inline and named-model configuration, add an example recipe, and list the provider in navigation, the alias table and the schema description

Opper is an EU-hosted AI gateway: 700+ models from 50+ providers behind one OpenAI-compatible API, with one key. The models.dev catalog already carries the opper provider (it is in pkg/modelsdev/snapshot.json), so the default model and the example resolve through it and no catalog exemption is needed.

Testing

  • Not run locally. The new rows mirror the existing alias, auto-config and system-message merge tests, so CI is the first run of go test, lint and the docs build.
  • The default model and the example model are pool names checked against Opper's public catalogue (GET https://api.opper.ai/v3/models) and the embedded models.dev snapshot.

Disclosure: Opper is my startup.

@Felixkw12
Felixkw12 requested a review from a team as a code owner October 20, 2026 22:30
@aheritier aheritier added area/config For configuration parsing, YAML, environment variables area/docs Documentation changes area/providers/openai For features/issues/fixes related to the usage of OpenAI models kind/feat PR adds a new feature (maps to feat:). Use on PRs only. status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key labels Oct 20, 2026
@aheritier

Copy link
Copy Markdown
Collaborator

👋 Some commits in this PR are not signed and verified by GitHub. Please sign your commits with a GPG or SSH key registered in your GitHub account, then force-push.

Commits that are not verified: 19f8616

See GitHub's guide on signing commits for setup instructions. I've added status/needs-signed-commits; it will be removed automatically once every commit in this PR carries a valid GitHub-verified signature.

@aheritier
aheritier marked this pull request as draft October 21, 2026 10:40
Adds Opper (https://opper.ai), an EU-hosted AI gateway, as a built-in
OpenAI-compatible alias in the same shape as the OpenRouter alias: alias
entry with OPPER_API_KEY and base URL https://api.opper.ai/v3/compat,
auto-config support with claude-sonnet-4-6 as the default model, the
system-message merge shared with the other gateway aliases, a provider
docs page, an example recipe, and test coverage across the touched
packages. The models.dev catalog already carries the opper provider, so
the default model and the example resolve through it and no catalog
exemption is needed.

Disclosure: Opper is my startup.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Felix Wunderlich <felix@opper.ai>
@Felixkw12
Felixkw12 force-pushed the feat/opper-provider branch from 19f8616 to afb8dac Compare October 21, 2026 12:57
@Felixkw12

Copy link
Copy Markdown
Contributor Author

Thanks for the approval. The commit is now signed and verified by GitHub (afb8dac). Same tree as before, no content changes.

@aheritier aheritier removed the status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key label Oct 21, 2026
@aheritier
aheritier marked this pull request as ready for review October 21, 2026 14:22
Copilot AI balanced review requested due to automatic review settings October 21, 2026 14:23
@aheritier
aheritier enabled auto-merge October 21, 2026 14:23
@aheritier
aheritier added this pull request to the merge queue Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes follow established alias patterns with no unresolved findings; test execution remains unverified.

No open issues 🎉

What changed in this PR

Adds Opper as a built-in OpenAI-compatible provider using the existing alias infrastructure.

Changes:

  • Registers Opper’s endpoint, API key discovery, and default model.
  • Enables consecutive system-message merging and adds regression tests.
  • Adds configuration documentation, navigation, and an example.
File Description
pkg/​model/​provider/​openai/​system_message_merge_test.go Tests Opper message merging.
pkg/​model/​provider/​openai/​client.go Enables gateway message merging.
pkg/​model/​provider/​aliases.go Registers the Opper alias.
pkg/​model/​provider/​aliases_test.go Verifies alias settings.
pkg/​config/​auto.go Adds credential discovery and default model.
pkg/​config/​auto_test.go Tests automatic Opper selection.
examples/​README.md Lists the Opper example.
examples/​opper.yaml Provides a sample agent configuration.
docs/​providers/​overview/​index.md Lists Opper authentication.
docs/​providers/​opper/​index.md Documents setup and usage.
docs/​data/​nav.yml Adds provider navigation.
docs/​configuration/​models/​index.md Lists Opper in configuration guidance.
agent-schema.json Adds Opper to the provider description.

Review effort: Balanced

Merged via the queue into docker:main with commit ed01ded Oct 21, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config For configuration parsing, YAML, environment variables area/docs Documentation changes area/providers/openai For features/issues/fixes related to the usage of OpenAI models kind/feat PR adds a new feature (maps to feat:). Use on PRs only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants