April 2026 brings a focused wave of Claude updates — from a brand-new interactive learning experience in Claude Code to important deprecation deadlines that could affect your production applications. Here's everything you need to know.
Claude Code Updates
/powerup — Interactive Lessons Are Here
The April 1 release introduced /powerup, an in-session command that walks you through Claude Code features using animated, step-by-step demos. Rather than reading documentation, you learn by doing — right inside your terminal.
# Run inside a Claude Code session
/powerupAfter running the command, you'll see a menu of available lessons covering topics like hooks configuration, MCP server setup, and multi-agent workflows. Each lesson is self-paced and interactive, making it ideal for users who are newer to Claude Code or who want to explore features they haven't tried yet. For a deep dive into everything /powerup offers, check out the Claude Code /powerup Command Guide.
Critical Bug Fixes
Several high-impact bugs were resolved in this release cycle:
Rate limit dialog infinite loop (Critical) After hitting a usage limit, the rate-limit options dialog would repeatedly auto-open, eventually crashing the entire session. This is now fixed — a welcome relief for teams running intensive workloads.
--resume causing full prompt-cache miss
Users with deferred tools, MCP servers, or custom agents configured were experiencing a complete prompt-cache miss on the very first request after using --resume. This caused slower cold-start performance and higher token costs. The fix makes resume work as expected. See the Claude Code April 2026 Update — Deferred Permission & MCP article for related context.
PostToolUse hook triggering "File content has changed" errors
When a PostToolUse hook (e.g., a format-on-save script) rewrote a file between consecutive edits, the next Edit or Write operation would fail with a "File content has changed" error. This is now resolved, which particularly benefits teams using Prettier, ESLint, or similar formatters as hooks.
PreToolUse hook JSON stdout + exit code 2 not blocking tool calls Hooks that wrote JSON to stdout and exited with code 2 were not correctly blocking the tool call they were intended to block. This behavior is now fixed.
Other Additions
- New
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILUREenvironment variable keeps the existing marketplace cache intact when agit pullfails — useful in offline or constrained network environments. .huskyadded to the protected directories list inacceptEditsmode.X-Claude-Code-Session-Idheader is now included in all API requests, making it easier for proxies to aggregate requests by session without body inspection.
Anthropic API Updates
Batches API Now Supports 300k Output Tokens
The Message Batches API now allows up to 300,000 output tokens per request for Claude Opus 4.6 and Claude Sonnet 4.6. To enable this, include the output-300k-2026-03-24 beta header in your Batches API call.
import anthropic
client = anthropic.Anthropic()
# Enable 300k output tokens via the Batches API
response = client.beta.messages.batches.create(
requests=[
{
"custom_id": "long-form-001",
"params": {
"model": "claude-sonnet-4-6",
"max_tokens": 300000,
"messages": [
{
"role": "user",
"content": "Generate a comprehensive technical specification for..."
}
]
}
}
],
betas=["output-300k-2026-03-24"]
)
print(response.id)
# Output example: msgbatch_01XFDUDYJgAACcwz5riDLjBXThis is particularly powerful for use cases involving long-form document generation, large-scale code output, and bulk structured data extraction. Combined with the async nature of the Batches API, you can queue up many high-volume jobs cost-effectively.
Models API Now Returns Capability Fields
The GET /v1/models endpoint now returns max_input_tokens, max_tokens, and a capabilities object for each model. This enables applications to dynamically discover model limits at runtime rather than hardcoding them.
import anthropic
client = anthropic.Anthropic()
models = client.models.list()
for model in models.data:
print(f"{model.id}: max_input={model.max_input_tokens}, max_output={model.max_tokens}")
# Example output:
# claude-sonnet-4-6-20261018: max_input=1000000, max_output=8192
# claude-opus-4-6-20261018: max_input=1000000, max_output=8192This is a small but meaningful quality-of-life improvement for developers building multi-model applications.
Web Search & Programmatic Tool Calling Are Now Generally Available
Both the web search tool and programmatic tool calling have exited beta and are now generally available — no beta headers required. If you've been including betas=["tools-2024-05-16"] or similar headers in your requests, you can remove them.
Additionally, web search and web fetch now support dynamic filtering: results are filtered using sandboxed code execution before reaching the context window. This means your model receives only the most relevant content, reducing token usage and improving response quality.
# Before GA (beta header required)
response = client.beta.messages.create(
model="claude-sonnet-4-6",
betas=["web-search-2025-03-05"], # No longer needed
...
)
# After GA (no beta header)
response = client.messages.create(
model="claude-sonnet-4-6",
# No beta header required
tools=[{"type": "web_search_20250305", "name": "web_search"}],
messages=[{"role": "user", "content": "What happened in AI today?"}]
)Deprecation & Migration Deadlines
Claude Haiku 3 Retires April 19, 2026
Claude Haiku 3 will be fully retired on April 19, 2026. If any of your applications currently call claude-haiku-3 (or claude-haiku-3-20240307), they will stop working after that date unless migrated.
Claude Haiku 4.5 is the recommended replacement — it matches or exceeds Haiku 3's speed while delivering meaningfully better output quality at comparable pricing. For step-by-step migration instructions, see the Claude Haiku 3 Deprecation & Migration Guide.
Quick migration:
# Before
model = "claude-haiku-3-20240307" # Retiring April 19
# After
model = "claude-haiku-4-5-20251001" # Recommended replacement1M Token Context Beta Ends April 30, 2026
The 1M token context window beta for Claude Sonnet 4.5 and Claude Sonnet 4 ends on April 30, 2026. After that date, the context-1m-2025-08-07 beta header will have no effect on these models — they will revert to their standard context limits.
To continue using 1M token context windows, migrate to Claude Sonnet 4.6 or Claude Opus 4.6, both of which support 1M context at standard pricing with no beta header required.
# Before: Sonnet 4.5 with beta header (stops working April 30)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=4096,
betas=["context-1m-2025-08-07"], # Ineffective after April 30
messages=[...]
)
# After: Sonnet 4.6 — no beta header needed
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
# No betas parameter needed
messages=[...]
)If you're building applications that rely on long context windows, now is the time to test and validate the migration.
Agent Skills on claude.ai
Claude.ai now includes Agent Skills — pre-built, task-specific skills available in conversations with Extended Thinking enabled. The initial set focuses on document creation and editing workflows, allowing Claude to take multi-step actions within a single conversation without manual back-and-forth.
This marks a step toward a more capable, agentic experience directly in the web interface, complementing the automation already possible in Claude Code and Cowork environments.
Data Residency Controls
The API now supports an inference_geo parameter, giving you control over which geographic region model inference runs in. US-only inference is available at 1.1x pricing for models released after February 1, 2026.
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
inference_geo="us", # Inference runs only in US regions
messages=[{"role": "user", "content": "Process this compliance-sensitive document..."}]
)This feature is especially relevant for healthcare, financial services, and government applications that require data to remain within specific geographic boundaries.
Looking back
April 2026's Claude updates cover a lot of ground — developer experience, API capabilities, and critical migration deadlines all in one wave:
/powerupmakes learning Claude Code more accessible with in-session animated lessons- Batches API can now handle 300k output tokens per request for large-scale generation tasks
- Web search and programmatic tool calling are fully GA — remove those beta headers
- Haiku 3 retires April 19 and 1M context beta ends April 30 — don't miss these dates
- Agent Skills and data residency controls open new doors for enterprise and compliance use cases
If you're looking to get the most out of the models powering all of this, the Claude Sonnet 4.6 Complete Mastery Guide is a great next step.