cline v3.x crashes with SIGILL on pre-Haswell CPUs (no AVX2) due to Bun-embedded binary
Bug Description
cline v3.0.0+ immediately crashes with SIGILL (Illegal Instruction) on CPUs that support AVX but not AVX2.
$ cline
fish: Job 1, 'cline' terminated by signal SIGILL (Illegal instruction)
Root Cause
Starting in v3.0.0, the cline package switched from a pure Node.js distribution to a Bun-embedded compiled binary (@cline/cli-linux-x64). Bun requires AVX2 instructions, which were introduced with Intel Haswell (4th gen, 2013). CPUs from before that generation (e.g., Ivy Bridge, Sandy Bridge) support AVX but not AVX2.
The binary contains AVX2 opcodes such as vpermq that are illegal on pre-Haswell hardware:
objdump -d ~/.nvm/.../node_modules/@cline/cli-linux-x64/bin/cline | grep vpermq
2b226d3: c4 e3 fd 00 e4 d8 vpermq $0xd8,%ymm4,%ymm4
Environment
- CPU: Intel Core i7-3770K (Ivy Bridge, 3rd gen) — has AVX, no AVX2
- OS: Linux Mint (x86_64, kernel 6.17.0)
- Node.js: v24.15.0
- cline version: v3.0.24 (latest)
- CPU flags present:
sse sse2 ssse3 sse4_1 sse4_2 avx(noavx2)
Impact
Any x86-64 CPU without AVX2 is affected. This includes:
- Intel 3rd gen (Ivy Bridge) and older
- Some low-power/embedded Intel CPUs
- Older AMD CPUs pre-Ryzen
These are not rare — Ivy Bridge CPUs are still widely used workhorses.
Workaround
Downgrade to the last Node.js-based release:
npm install -g [email protected]
Suggested Fix
Options for the maintainers to consider:
- Document the AVX2 requirement prominently in the README and npm package description so users get a clear error instead of a mysterious
SIGILL. - Add a preflight check in the Node.js launcher script (
bin/cline) that detects missing AVX2 support and prints a human-readable error before trying toexecthe Bun binary. - Provide a fallback Node.js build path for CPUs without AVX2 (if feasible given Bun's constraints).
Option 2 is low-cost and would greatly improve the UX — the current experience gives no hint that the issue is a CPU capability mismatch.
Source: cline/cline