What
The self-hosted model gateway sits between Claude Code and the model provider and forwards requests to one or more upstreams. An upstream is a provider endpoint the gateway sends requests to. The gateway config now accepts two new upstream providers, and upstreams can be limited to a list of models.
mantle(AWS Bedrock Mantle):- Needs a region and at least one entry in
models. The list holds the models your AWS account has on Mantle, named as clients send them, for examplemodels: [claude-opus-4-7, claude-haiku-4-5]. Only those models go to this upstream. - Defaults to
https://bedrock-mantle.<region>.api.aws/anthropic. - Signs in with an AWS bearer token, an access key and secret, or AWS's default credential chain.
aws_access_key_idandaws_secret_access_keymust be set together, and both are required withaws_session_token. CLAUDE_CODE_SKIP_AWS_CRED_CACHEskips the cached credential lookup.- Validation rejects a mantle upstream placed beside a bedrock upstream that has a guardrail.
- Needs a region and at least one entry in
anthropicGoogleCloud:- Needs
project_idandworkspace_id.locationdefaults to global. - Signs in with
access_tokenor Google's own sign-in, optionally withservice_account_json.
- Needs
- Per-upstream
modelslist: when choosing where to send a model, the gateway first checks the upstream's optionalmodelslist, matching without regard to capitals or by the model's canonical id. A model not on the list is skipped with an error such as "is not served by upstream". Before, there was no such filter. - New config warnings cover Mantle model entries that route nowhere, mappings that never apply, and bedrock per-developer attribution not carrying over to Mantle.
Why
Gateway operators can now route to Bedrock Mantle and Google Cloud's Anthropic endpoint, and send each model only to the upstreams that serve it. A mantle upstream without a models list is a config error, so add one when you set it up.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
| [Model restrictions](/docs/en/model-config#restrict-model-selection) | `availableModels` filters which models appear in the picker. Adding `enforceAvailableModels` also constrains the auto-selected default model. See [surface coverage](/…admin-setup see the edit
To have Claude check these files for outdated or conflicting instructions, run `/doctor prompt-audit` in a session. Claude reads your CLAUDE.md, CLAUDE.local.md, and AGENTS.md files, plus the rules, skills, commands, subagents, and output …memory see the edit
It is not clear which configuration file or key holds the `models` list.
A small documentation edit on How Claude remembers your project touched a line naming models after this was published.