Resilience scoping controls how the proxy shares (or isolates) cooldown and rate-limit state across clients. This is especially important when the proxy is used both by solo developers (personal OAuth tokens) and enterprise/shared deployments.
By default, the proxy treats backends as:
- Personal when the backend type contains
oauthorcodex. - Shared otherwise.
The built-in personal list includes:
antigravity-oauthgemini-oauth-freegemini-oauth-plangemini-cli-cloud-projectqwen-oauthopenai-codex
This means OAuth- and Codex-style backends are scoped per user/session without any configuration changes.
Configure scoping rules in the main config under resilience. Use these
lists to explicitly mark backends as personal or shared.
Use CLI flags for one-off overrides (highest precedence):
--resilience-personal-backends BACKEND[,BACKEND...]--resilience-shared-backends BACKEND[,BACKEND...]
You can pass a comma-separated list or repeat the flag.
Use environment variables to override config defaults:
RESILIENCE_PERSONAL_BACKEND_TYPESRESILIENCE_SHARED_BACKEND_TYPES
Both accept comma-separated backend type lists.
Use resilience.personal_backend_types and resilience.shared_backend_types to
override the defaults when needed.
resilience:
# Force personal scoping for selected backends (optional).
personal_backend_types: ["openai-codex", "qwen-oauth"]
# Force shared scoping for selected backends (optional).
shared_backend_types: ["openai", "openrouter"]- If a backend appears in
shared_backend_types, it is treated as shared. - Otherwise, if a backend appears in
personal_backend_types, it is personal. - If neither list matches, defaults apply.
- Enterprise/shared backend but name contains
oauth: add it toshared_backend_typesto keep shared cooldown state. - Personal backend without
oauth/codexin name: add it topersonal_backend_typesto isolate state by session.
- Mixed deployments: isolate personal OAuth backends while keeping shared enterprise backends on a single cooldown pool.
- Custom backend names: enforce scoping when backend naming doesn't match
the default
oauth/codexheuristic.