Claude Code v2.1.90 — 3 New Environment Variables: Anthropic AWS Provider, Marketplace Resilience, and /powerup Lessons#
Published on April 1, 2026
Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog
Claude Code v2.1.90 adds 3 new environment variables and a new /powerup command since v2.1.89. The headline additions are a new "Anthropic AWS" API provider (distinct from Bedrock), offline-resilient marketplace plugin caching, and an interactive tutorial system. The release also includes a significant batch of stability fixes: a prompt-cache regression fix dating back to v2.1.69, PowerShell security hardening, and performance improvements that eliminate quadratic behavior in SSE transport and transcript writes[1].
What Changed#
| v2.1.89 | v2.1.90 | |
|---|---|---|
| Environment variables | 210 | 213 (+3 net) |
| Slash commands | 23 | 24 (+1) |
New Slash Commands#
| Command | What It Does |
|---|---|
/powerup | Launches interactive lessons that teach Claude Code features through animated demos[1]. This is a first-party onboarding mechanism built directly into the CLI — rather than pointing users to external docs, it walks them through capabilities with animated terminal demos inside the tool itself. |
New Environment Variables#
| Variable | What It Does |
|---|---|
CLAUDE_CODE_USE_ANTHROPIC_AWS | Selects "Claude Platform on AWS" as the API provider. Source code confirms this is a distinct provider alongside Bedrock, Vertex, and Foundry — the provider selection function returns "anthropicAws" when set, instantiating a dedicated AnthropicAws SDK client. Like other non-first-party providers, it bypasses OAuth login (API key auth instead), skips Anthropic error telemetry, and disables first-party-only features. This is Anthropic's own AWS-hosted infrastructure — not a Bedrock wrapper — giving enterprise users AWS network locality without Bedrock's model versioning constraints. |
CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH | Skips credential resolution for the Anthropic AWS provider. Source code shows two effects: (1) passes skipAuth: true to the AnthropicAws client constructor, and (2) skips the AWS credential fetch function entirely (no accessKeyId/secretAccessKey/sessionToken resolution) unless ANTHROPIC_AWS_API_KEY is also set. Targeted at server-side deployments where IAM instance roles, ECS task roles, or Lambda execution environments provide ambient credentials — the SDK handles auth internally without Claude Code needing to resolve it first. |
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE | Preserves the local marketplace plugin cache when git pull fails. Source code shows that without this flag, a failed pull triggers a full delete-and-reclone of the marketplace directory. With it set (checked via truthy-string parser), the failure logs a warning and returns early, keeping the existing (possibly stale) clone intact. The changelog[1] explicitly documents this for offline environments. A resilience pattern that prevents plugin disappearance on flaky networks. |
What These Tell Us#
A fifth API provider enters the roster. The provider selection hierarchy is now: Bedrock → Foundry → Anthropic AWS → Vertex → First Party. "Anthropic AWS" is the most interesting addition because it's not a cloud-provider-managed model endpoint like Bedrock or Vertex — it's Anthropic operating its own infrastructure on AWS. For enterprises this means AWS data residency and network locality without being subject to Bedrock's model availability timeline or Vertex's Google Cloud requirement. The paired SKIP_ANTHROPIC_AWS_AUTH flag confirms the target audience: server workloads with IAM-managed credentials, not developer laptops.
Marketplace plugins get offline resilience. The marketplace is Claude Code's plugin distribution mechanism, backed by a git repository. Until now, a git pull failure during plugin refresh would nuke the local clone and attempt a fresh checkout — clean but destructive if the re-clone also fails (no network). The new flag converts a pull failure from "delete and retry" to "warn and continue with stale cache." This is the kind of change that matters disproportionately in air-gapped or bandwidth-constrained environments where plugin access shouldn't require live connectivity on every launch.
Stability sweep addresses deep regressions. The changelog[1] reveals a prompt-cache miss regression traced back to v2.1.69 — users with deferred tools, MCP servers, or custom agents were paying full prompt-cache costs on every --resume first request for 21 versions. The fix, alongside the quadratic-to-linear SSE transport improvement and elimination of per-turn JSON.stringify on MCP tool schemas, suggests Anthropic ran profiling across real-world long sessions. Other notable fixes: auto mode now respects explicit user boundaries ("don't push", "wait for X"), PreToolUse hooks emitting JSON with exit code 2 now correctly block tool calls, and Edit/Write no longer fail when format-on-save hooks rewrite files between consecutive edits.
Notable Changelog Items#
| Category | Change |
|---|---|
| Security | Hardened PowerShell tool: fixed trailing & background job bypass, -ErrorAction Break debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation |
| Security | Removed Get-DnsClientCache and ipconfig /displaydns from auto-allow (DNS cache privacy) |
| Security | CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK removed in v2.1.89 — injection checks now mandatory |
| Performance | SSE transport handles large streamed frames in linear time (was quadratic) |
| Performance | Long conversations no longer slow down quadratically on transcript writes |
| Performance | Eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup |
| Bug fix | Fixed --resume prompt-cache miss on first request for deferred tools/MCP/custom agents (regression since v2.1.69) |
| Bug fix | Fixed infinite loop where rate-limit options dialog repeatedly auto-opened, crashing session |
| Bug fix | Auto mode now respects explicit user constraints ("don't push", "wait for X before Y") |
| Bug fix | Fixed Edit/Write "File content has changed" failure when PostToolUse format-on-save hooks rewrite file |
| UX | .husky added to protected directories in acceptEdits mode |
| UX | --resume picker no longer shows sessions from claude -p or SDK invocations |
| UX | /resume all-projects view loads sessions in parallel for faster load times |
Sources#
- Claude Code Official Changelog — v2.1.90 release notes
This analysis is conducted for independent security research and interoperability purposes under fair use principles. All trademarks belong to their respective owners. The information presented here documents publicly observable behavior of installed software and is not intended to circumvent any technological protection measures, infringe on intellectual property rights, or encourage unauthorized use. Use these findings at your own discretion.
Related Versions#
- Claude Code v2.1.89 — 4 New Environment Variables — agent cost steering, session resume thresholds, deferred permissions
- Claude Code v2.1.88 — 7 New Environment Variables — mouse control, REPL mode, flicker-free rendering
- Claude Code v2.1.86 — 2 New Environment Variables — trusted device tokens, OAuth console override
- Claude Code v2.1.85 — 6 New Environment Variables — MCP server config, yoga-layout removal, OAuth endpoint overrides
- Claude Code v2.1.84 — 6 New Environment Variables — idle management, PowerShell tool, Bedrock parity
Related: Context Window Management Guide | Claude Code Productivity Tips | The Agentic Engineering Playbook