Follow Discord
Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.269 ·

OAuth tokens can now carry a user:plugins scope for plugin sync and search

Token refresh can now request a user:plugins OAuth scope, used to gate account plugin sync and plugin/skill search, with automatic retry if rejected

TierUnder the hoodhow much it should matter to you
Useful2my rating, 1 to 5
Signal3worth watching, 1 to 5
AreaPlugin Searchwhat it touches
KindInternal Changesin v2.1.269,
Group of 5 Under the hood

Token refresh can now request a user:plugins OAuth scope, used to gate account plugin sync and plugin/skill search, with automatic retry if rejected

What

  • Token refresh now requests the user:plugins OAuth scope alongside existing scopes. If the server rejects the expanded scope request with invalid_scope, the refresh automatically retries once with the original scope set, and the outcome is tagged invalid_scope_retried on both the success telemetry and the failure event's context.
  • The tengu_oauth_token_refresh_success telemetry event now records whether the user:plugins scope was requested and whether it was actually granted.
  • Account plugin sync now has its own experiment flag, tengu_account_plugins_sync_enabled (default off); when enabled and either the allow_plugin_skill_search or allow_account_plugins_sync policy is set, the user:plugins scope is included in the requested scope set.
  • A new gate decides whether to send a plugin/skill search request at all, based on being first-party, not essential-traffic-only, not a CCR session token, and whether the current OAuth token already carries the user:plugins scope (refreshing the token first to check). Third-party OAuth clients or tokens without a refresh token still send the request; only a stock login token missing the scope skips it.

Why This rolls out a new, narrower OAuth scope specifically for plugin-related features (account plugin sync, plugin/skill search) instead of relying on broader existing scopes, while making sure older servers that don't yet recognize the scope don't break token refresh.

See this entry in the whole of v2.1.269 →

Feedback