Claude Code 2.1.68 expands effort level support to Sonnet 4.6 (previously Opus 4.6 only), re-introduces the ultrathink keyword for high-effort mode, and removes Opus 4/4.1 from the first-party API
The Agent SDK permissions documentation was significantly expanded with a new dontAsk mode (TypeScript only), clearer distinction between allow/deny rule evaluation, and guidance on how bypassPermissions interacts with allowed_tools
Dozens of API documentation pages had their primary code examples switched from Python to Shell (curl), making them more accessible to users of any language
Multiple new MCP server integrations were added to both the Claude Code and API documentation (Gusto, LSEG, Mem, Pylon, Daloopa, Similarweb, Bigdata.com, and more)
Opus 4.6 now defaults to medium effort for Max and Team subscribers; medium effort is the sweet spot between speed and thoroughness and can be changed with /model
Effort level support expanded to Sonnet 4.6 (in addition to Opus 4.6)
Re-introduced the ultrathink keyword to enable high effort for the next turn
Major bug fixes
Removed Opus 4 and Opus 4.1 from Claude Code on the first-party API; users with these models pinned are automatically moved to Opus 4.6
Updated effort level description to note that both Opus 4.6 and Sonnet 4.6 support effort control (previously only Opus 4.6 was mentioned) [line 845] [Source]
Significantly restructured permission evaluation flow: deny rules are now evaluated separately before allow rules, and the ordering is now: hooks → deny rules → permission mode → allow rules → canUseTool [lines 17-44] [Source]
New section added explaining allowed_tools and disallowed_tools behavior with a table and practical examples [lines 46-72] [Source]
New dontAsk permission mode documented (TypeScript only): converts permission prompts into denials for fixed, explicit tool surfaces [lines 80-84] [Source]
Clarification that allowed_tools does NOT constrain bypassPermissions — all tools are still approved unless explicitly in disallowed_tools [lines 66-68] [Source]
New dedicated subsection for dontAsk mode with guidance on Python equivalent workarounds [lines 131-140] [Source]
Added new MCP server: Gusto — Query and analyze your Gusto data (https://mcp.api.gusto.com/anthropic)
Added new MCP server: LSEG — Access best in class data & analytics across a broad spectrum of asset classes (https://api.analytics.lseg.com/lfa/mcp/server-cl)
Added new MCP server: Bigdata.com — Access real-time financial data (https://mcp.bigdata.com/)
Added new MCP server: Daloopa — Financial fundamental data and KPIs with hyperlinks (https://mcp.daloopa.com/server/mcp)
Added new MCP server: Pylon — Search and manage Pylon support issues (https://mcp.usepylon.com/)
Added new MCP server: Similarweb — Real time web, mobile app, and market data (https://mcp.similarweb.com)
Added new MCP server: WordPress.com — Secure AI access to manage your WordPress.com sites (https://public-api.wordpress.com/wpcom/v2/mcp/v1)
Added new MCP server: Yardi Virtuoso — Real-time Yardi data & insights (https://mcp.virtuoso.ai/mcp)
Container reuse example replaced with Shell (curl) equivalent, showing how to extract container ID with jq and pass it to a second request [lines 506-553] [Source]
Fixed cache_control structure in multi-turn conversation example: moved cache_control inside the content block array (correct API structure) [lines 403-414] [Source]
Fixed usage.get() call to use proper SDK attribute access: response2.usage.cache_read_input_tokens or 0
Added a complete example request showing how to trigger manual compaction using context_management with compact_20260112 edit type [lines 234-243] [Source]
Direct search results example replaced with Shell (curl) equivalent, showing the full JSON structure for search_result content blocks [lines 187-244] [Source]