Antigravity CLI Fix Fatal Error on Non-AES CPUs

How to resolve the "FATAL ERROR: This binary was compiled with aes enabled..." crash when running Antigravity CLI on older CPUs (like J1900) lacking the AES-NI instruction set.

Background

When attempting to use Google’s new antigravity-cli (command agy), users with older server CPUs (like the J1900) that do not support the AES-NI hardware instruction set will encounter an immediate crash:

1
2
FATAL ERROR: This binary was compiled with aes enabled, but this feature is not available on this processor (go/sigill-fail-fast).
Illegal instruction

Based on online research, this occurs because the Antigravity CLI is written in Go and compiled with a high microarchitecture level requirement (such as GOAMD64=v3), which strictly requires physical AES support. The application fails fast before any configurations can be loaded.

Drawing from previous experience fixing a similar crash with the Antigravity IDE, we can utilize the Intel® Software Development Emulator (SDE) to intercept and simulate the AES instruction set, allowing the CLI to run normally.

Solution

The following steps outline the workaround. Please note that because the instructions are being simulated via software, the execution and response times of the agy command will be slower than usual.

1. Prepare Intel SDE

If you have already installed SDE to fix the IDE issue, you can skip this step.

Download the latest Linux archive from the Intel® Software Development Emulator page.

1
2
3
4
5
# Create directory and extract files
mkdir -p ~/intel-sde
tar -xf sde-external-10.7.0-2026-02-18-lin.tar.xz -C ~/intel-sde --strip-components=1
# Ensure execution permissions
chmod +x ~/intel-sde/sde64

2. Allow Process Injection

Intel SDE relies on ptrace to hijack the binary. Ensure your Debian system allows this:

1
2
echo 'kernel.yama.ptrace_scope = 0' | sudo tee /etc/sysctl.d/99-ptrace.conf
sudo sysctl -p /etc/sysctl.d/99-ptrace.conf

3. Hijack and Replace the agy Binary

First, locate where agy is installed:

1
2
3
4
which agy
# Assume the output is /usr/local/bin/agy or /usr/bin/agy
# We will use a variable to store it
AGY_PATH=$(which agy)

Rename the original executable to hide it and serve as a backup:

1
sudo mv $AGY_PATH ${AGY_PATH}.real

Create a new interception wrapper script in its place:

1
sudo vim $AGY_PATH

Paste the following script (ensure the SDE_BIN path matches your actual path):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash
# Path to your Intel SDE
SDE_BIN="$HOME/intel-sde/sde64"
# Path to the real, backed-up agy binary
AGY_REAL="${BASH_SOURCE[0]}.real"

# Limit to single-core execution to prevent SDE from exhausting all CPU power
export GOMAXPROCS=1
export GODEBUG=http2client=0,tls13=0

# Use -skx to simulate a full Skylake-X architecture (includes AES support)
exec "$SDE_BIN" -skx -- "$AGY_REAL" "$@"

Grant execute permissions to the wrapper script:

1
sudo chmod +x $AGY_PATH

Testing and Rollback Strategy

Test the CLI

Run the following command in your terminal:

1
agy --version

If it successfully outputs the version number without throwing an Illegal instruction error, the workaround was successful.

🚨 Quick Rollback

If this solution causes system instability or you wish to revert to the original state, run the following commands to restore the backed-up file:

1
2
AGY_PATH=$(which agy)
sudo mv ${AGY_PATH}.real $AGY_PATH
转载请保留本文转载地址,著作权归作者所有