Table of Contents
ToggleEvery time you type `claude`, the system repeats the same thing: start Node.js, read in all JavaScript code, complete the JIT warm-up, and then enter the CLI main loop.
This delay is negligible for long-running web servers, but for CLI tools, it means rerunning the process every time it's called. Over dozens of calls a day, this wait time becomes a major performance bottleneck. Anthropic solved this problem with a single default update .
What's changed in this version?
Starting with v2.1.113, the contents of npm install -g @anthropic-ai/claude-code have changed.
On the surface, the instructions remain unchanged; internally, the npm package no longer distributes JavaScript code, but instead pulls the corresponding pre-compiled native binary executable file based on the user's operating system (macOS / Linux / Windows, ARM / x86), and then links it to the correct location through the postinstall command.
Installation process for users: One command, everything as usual.
Technical aspects: What are the differences between the two approaches?
Launch path for the JS version (before v2.1.113)
Each time a user executes claude, the system goes through four steps:
- Launching a Node.js program: The operating system starts the Node.js execution environment.
- Reading Instructions: Node.js reads all .js files from Claude Code.
- JIT warm-up: The Just-In-Time compiler compiles JavaScript into machine code.
- Entering the CLI main loop: This is when you truly begin working.
Native binary startup path (starting from v2.1.113)
Anthropic packaged its JavaScript engine and all code into a single executable file upon release, compiling it separately for each platform. The operating system receives the native format it recognizes: it loads and executes directly, skipping all the overhead of Node.js startup and JIT warm-up.
What specific changes will it bring?
| project | Previous (JS version) | Now (native binary system) |
|---|---|---|
| Startup method | Node.js program → Reading JS → JIT compilation | The operating system loads directly. |
| Startup delay | My thoughts (on every cold start) | Significantly shortened |
| Native Node.js | Must be installed | No longer needed |
| Node.js version conflict | Occurring from time to time | Does not exist |
| Installation failure risk | High (complex environmental dependence) | reduce |
For heavy users who type "claude" dozens of times a day, the elimination of startup delay is a noticeable improvement.
What do users need to do?
You don't need to do anything. Continue using the existing instructions:
npm install -g @anthropic-ai/claude-code
npm automatically selects the native binary format for the corresponding platform behind the scenes, so users don't need to notice any changes.
If you want to continue using the JS version
For special requirements (such as needing to execute on platforms without pre-compiled binary), you can PIN the version number:
npm install -g @anthropic-ai/claude-code@2.1.112
A larger trend: CLI tools are becoming more native.
This is not an innovation of Anthropic, but a common direction in toolchain evolution. Rust's CLI tools (ripgrep, fd) and Go tools (gh, terraform) have long distributed native binary directly to avoid dependencies on external execution.
The JavaScript ecosystem has traditionally relied on Node.js runtime execution, but as tool complexity and usage frequency have increased, the startup cost of Node.js has gradually shifted from "acceptable" to "significant obstacle." Anthropic's approach is to directly package the JS engine into the runtime environment, making it imperceptible to users.
For developers who rely on Claude Code every day, this minor version number represents a real improvement in the user experience.




