Back to Blog

Claude Code 2.1.116: /resume is 67% faster and the binary went native

Alex Kim
9 min read
Claude Code 2.1.116: /resume is 67% faster and the binary went native

Since Claude Opus 4.7 shipped last Thursday, Claude Code has quietly shipped four more releases. A native binary replaced the bundled JavaScript. /resume got 67% faster on big sessions. The sandbox learned to block rm / even when you told it to auto-allow. /ultrareview picked up a diffstat and parallelized its checks.

If you've been shipping and haven't updated in a week, 2.1.116 is worth the restart.

Here's what landed in 2.1.113 through 2.1.116, in the order that actually affects your workflow.

The headline: /resume on 40MB+ sessions is 67% faster

The change most developers will feel first is /resume. On sessions over 40 MB (long-running refactors, multi-day feature branches, anything with a lot of tool output), Claude Code 2.1.116 is up to 67% faster at resuming them.

Two bug fixes ship alongside it. /branch stopped rejecting conversations over 50 MB, and /resume stopped silently showing an empty conversation when a large session file failed to load. Both were real paper cuts on heavy use. The empty-conversation one was particularly bad because it looked like data loss when the file was fine.

If you've been starting fresh sessions because /resume was too slow, that workaround is no longer necessary.

The quieter but bigger deal: Claude Code went native

Claude Code 2.1.113 (April 17) changed how the CLI launches. Instead of running bundled JavaScript, the claude command now spawns a native binary built per platform – macOS, Linux, Windows. The change is delivered as a per-platform optional dependency, so npm install still works.

Why this matters:

  • Lower startup latency – fewer milliseconds between typing claude and getting a prompt
  • Lower memory overhead – useful on resource-constrained machines and inside containers
  • Platform-specific optimizations – the binary can use OS features bundled JS can't

This is the kind of change that doesn't produce a dramatic before/after screenshot but compounds every time you launch. If you run claude 50 times a day, you're getting that speedup 50 times a day.

Security hardening you'll want to know about

Three changes across 2.1.113 and 2.1.116 tighten the sandbox meaningfully.

2.1.116 – rm / protection: Sandbox auto-allow no longer bypasses the dangerous-path safety check for rm or rmdir targeting /, $HOME, or other critical system directories. If you had an overly permissive allowlist, the sandbox now catches it before Claude executes a disaster. Defense-in-depth.

2.1.113 – macOS /private/... paths treated as dangerous. Bash(rm:*) allow rules no longer auto-approve removal of /private/etc, /private/var, /private/tmp, or /private/home. On macOS those resolve to symlinks for /etc, /var, /tmp, /home – same critical paths, different prefix. Previously Claude could trigger a rm /private/etc/… and skip the dangerous-path check. Fixed.

2.1.113 – Bash deny rules match wrapped commands. env, sudo, watch, ionice, setsid and similar exec wrappers now trigger the same deny rules as the wrapped command. Previously sudo rm -rf /var/log/... could sneak past a rule that denied bare rm -rf. And Bash(find:*) allow rules no longer auto-approve find -exec / find -delete variants.

Bonus: 2.1.113 also added sandbox.network.deniedDomains – a deny list that overrides a broader allowedDomains wildcard. If you allow *.example.com but want to block admin.example.com, now you can.

None of this changes the happy path. It tightens the edges where the happy path could go wrong.

/ultrareview is materially better

Claude Code 2.1.111 shipped /ultrareview for parallel multi-agent code review. 2.1.113 made it useful in production:

  • Faster launch – checks kick off in parallel instead of sequentially
  • Diffstat in the launch dialog – you see the scope of the review before it runs
  • Animated launching state – actual feedback instead of a frozen terminal

If you ran /ultrareview once when it shipped and found it slow, run it again. The experience changed.

Everything else, in one table

VersionDateThemeStandouts
2.1.116Apr 20Performance + polish/resume 67% faster, rm / sandbox safety, thinking-progress inline, /doctor during response, gh rate-limit hints
2.1.114Apr 18PatchPermission dialog crash fix for agent-teams
2.1.113Apr 17Native binary + hardeningCLI → native binary, sandbox.network.deniedDomains, /ultrareview refinements, macOS /private/... treated as dangerous, Bash deny rules match sudo/env/watch
2.1.112Apr 16Hotfix"claude-opus-4-7 is temporarily unavailable" for auto mode (covered in the Opus 4.7 post)

Four releases in four days. About 65 individual changes. That's the pace.

UX polish that actually ships

A few smaller items worth calling out from 2.1.116:

  • Thinking spinner now shows progress inline – "still thinking", "thinking more", "almost done thinking" – replacing the separate hint row. Less screen real estate, more signal.
  • /config search matches option values. Search "vim" and the Editor mode setting surfaces. Previously you had to know the field name.
  • /doctor works while Claude is responding. You don't have to wait for the turn to finish to diagnose a hanging tool.
  • gh rate-limit hints. Bash tool surfaces a hint when gh commands hit the GitHub API rate limit, so agents can back off instead of retrying into a brick wall.
  • /reload-plugins auto-installs missing dependencies from marketplaces you've already added.
  • Kitty-protocol keybind fixes. Ctrl+- undoing, Cmd+Left/Right jumping to line start/end – now work in iTerm2, Ghostty, kitty, WezTerm, Windows Terminal.
  • Ctrl+Z no longer hangs when Claude Code launches via a wrapper like npx or bun run.
  • Agent frontmatter hooks: fire when running as a main-thread agent via --agent.

On their own each is tiny. Collectively they're what turns Claude Code from "impressive" to "quiet and reliable."

Should you update today?

Yes, unless you have a specific reason not to. Three checks first:

  1. If you automate around /resume size limits (scripts that assume sessions over X MB will fail), retest. The limits either moved or disappeared.
  2. If you pin claude as a Node-only JS tool (e.g., shipped inside a larger JS bundle, custom package layouts), verify the per-platform binary dependency resolves in your setup.
  3. If you have a permissive Bash(rm:*) or Bash(find:*) allowlist, your rules are now stricter. Expect more permission prompts for rm /private/… or find -exec. That's working as intended.

For everyone else, claude --version to confirm 2.1.116 and move on.

The last two weeks of Claude Code have been more architecture-and-hardening than new-feature theater. Given we just migrated a model generation (Opus 4.7) with a new tokenizer and an auto-mode behavior change, that's the right priority.

FAQ

How much faster is /resume in Claude Code 2.1.116?

Up to 67% faster on sessions over 40 MB. The improvement is most noticeable on long-running session files with many dead-fork entries. Smaller sessions also resume faster but the delta is less dramatic. Fixes for /resume silently failing on large files and /branch rejecting 50 MB+ conversations ship alongside the performance work.

What changed in Claude Code 2.1.113?

2.1.113 (April 17) was the big one. The CLI now spawns a native Claude Code binary per platform instead of running bundled JavaScript – reduced startup latency and memory. It also added the sandbox.network.deniedDomains setting, refined /ultrareview with parallelized checks and a diffstat, tightened Bash deny rules to match wrapped commands (sudo, env, watch), treated macOS /private/... paths as dangerous for rm, and shipped 30+ other improvements and fixes.

Does Claude Code 2.1.116 support Opus 4.7?

Yes. Opus 4.7 support shipped in 2.1.111 with the new xhigh effort level and auto mode for Max subscribers. 2.1.112 fixed an availability bug. 2.1.113-2.1.116 are incremental improvements on top of that foundation. See the Opus 4.7 release breakdown for migration details.

What is the native binary transition in Claude Code 2.1.113?

Starting in 2.1.113, the claude CLI spawns a native Claude Code binary instead of running a bundled JavaScript implementation. The binary is distributed as per-platform optional dependencies (macOS, Linux, Windows), so npm install still works unchanged. Benefits include lower startup latency, lower memory overhead, and access to platform-specific optimizations that weren't available to a JS runtime.

How do I block specific domains in Claude Code's sandbox?

Use sandbox.network.deniedDomains in your Claude Code settings. The deny list takes precedence over allowedDomains, so you can allow a wildcard like *.example.com and still block admin.example.com. The setting was added in 2.1.113 for defense-in-depth on shared infrastructure.

Does /ultrareview run faster in 2.1.113?

Yes. 2.1.113 refactored /ultrareview to parallelize its checks at launch, added a diffstat to the launch dialog (so you see review scope before it runs), and added an animated launching state so the terminal doesn't freeze while agents spin up. Behavior is otherwise identical to the 2.1.111 release.

What's the sandbox rm protection in 2.1.116?

Sandbox auto-allow no longer bypasses the dangerous-path safety check for rm or rmdir targeting /, $HOME, or other critical system directories. Previously, a permissive Bash(rm:*) allowlist could let Claude execute rm -rf / without a permission prompt. 2.1.116 closes that gap – the dangerous-path check always runs, regardless of allowlist rules.

Can I use /doctor while Claude is responding now?

Yes, as of 2.1.116. Previously /doctor waited for the current turn to finish before opening. Now you can open it immediately to diagnose a stuck tool call or check environment state while Claude is still processing.

Should I update to Claude Code 2.1.116 right now?

Yes, for most users. The performance wins (/resume and MCP startup) and the security hardening (sandbox rm /, wrapped-command deny rules) apply universally. Check three things first: any scripts that assume session size limits, any custom bundling that assumed pure-JS distribution, and any permissive Bash(rm:*) or Bash(find:*) allowlists that now trigger stricter checks.

Where can I see the full Claude Code changelog?

Anthropic publishes the official changelog at code.claude.com/docs/en/changelog. For a weekly-paced recap with production context, we cover each release as it lands.

#claude-code#anthropic#Release Notes#AI Development#Native Binary
Live Workshop

Production-Grade Claude Code in 5 Days

Set up Claude Code the right way – from someone who ships with it daily.

$297$497Early BirdNext cohort: June 2026 Cohort

100% satisfaction guarantee. Full refund if you're not happy after the first session.