Cursor terminal breaks on multicall binaries

Hello! In Linux (I tried a fresh install of Arch, Ubuntu and Mint, so it doesn’t seem distro-related), while using zsh as the shell. The terminal within cursor is unable to run multicall binaries (those that depend on execve’s argv[0]).

This issue doesn’t seem to affect vscode’s terminal and only happen when using zsh as the shell. bash and fish work normally as far as I tested.

steps to reproduce (in cursor’s terminal running zsh)

# (optional) go to a temporary dir
cd $(mktemp -d)

# create a simple program
cat <<EOF > main.c
#include <stdio.h>

int main(int argc, char *argv[]) {
  for (int i = 0; i < argc; i++) {
    printf("%s\n", argv[i]);
  }
  return 0;
}
EOF

gcc -o main main.c

# run it
./main with args

The output of this command is
image

$ ./main with args
cursor
with
args

Running the same command outside of cursor’s terminal works as expected:

$ ./main with args
./main
with
args

this unexpected behavior breaks many multicall binaries that may be suggested from the agent, which in turn breaks the whole agent workflow as the llm gets confused and keeps trying to solve an issue that it cannot.

extra info (from cursor > help > about)

Version: 0.48.9
VSCode Version: 1.96.2
Commit: 61e99179e4080fecf9d8b92c6e2e3e00fbfb53f0
Date: 2025-04-12T19:09:41.045Z
Electron: 34.3.4
Chromium: 132.0.6834.210
Node.js: 20.18.3
V8: 13.2.152.41-electron.0
OS: Linux x64 6.13.8-arch1-1