Cursor Agent Unusable for Running Commands

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When starting a Cursor agent on macOS, Cursor attempts to execute /opt/homebrew/share/zsh, which is a Homebrew-managed data directory, not an executable shell. This results in an EACCES error and prevents the agent from starting. The path cannot be overridden via any Cursor setting.

Steps to Reproduce

Open the cursor agent and view the debug logs.

Expected Behavior

The agent should use a valid zsh path or the value I set, rather than the zsh data directory. Or spawn a fish shell, as this is my preferred terminal.

Screenshots / Screen Recordings

Operating System

MacOS

Version Information

Version: 2.4.28
VSCode Version: 1.105.1
Commit: f3f5cec40024283013878b50c4f9be4002e0b580
Date: 2026-02-03T00:56:18.293Z (20 hrs ago)
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Darwin arm64 25.2.0

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report. I can see an EACCES in DevTools for /opt/homebrew/share/zsh. This is a known issue in v2.4.x when fish is set as your default shell.

Cursor detects the shell path incorrectly and tries to launch the Homebrew data directory instead of the real executable. The team is aware (bug is logged), but there’s no fix yet.

Workaround (temporary):

Settings > Cursor Settings > Agents > Legacy Terminal: turn it on and restart Cursor.

This should make the agent use the old terminal logic, which avoids the bad shell path resolution.

If Legacy Terminal doesn’t help, the only option is to roll back to v2.3.34:

One caveat: v2.3.34 may be incompatible with chats created in v2.4.x.

Let me know if Legacy Terminal helped or if you had to roll back.

@deanrie Thanks for the reply. The legacy terminal also does not work for me. When I switch to this setting, the cursor agent will run a command, and no output is returned. It won’t hang; it will just run the command, which does nothing, and move on. I can send a screenshot if you like.

Thanks for the info that Legacy Terminal doesn’t help either.

Yeah, please send a screenshot. I want to understand what “no output” looks like on your side.

Right now the only reliable workaround is rolling back to v2.3.34:

  • Download it from Download · Cursor (pick a specific version)
  • Fully close Cursor before installing
  • Note: chats created in 2.4.x might not open in 2.3.x

The team is aware of an issue with shell path detection when using fish.

@deanrie This is my output when using the legacy terminal with Cursor 2.4.31. The command does not hang like in non-legacy mode, but it fails to run and produce any output for me.

Thanks for the screenshot. Yeah, it’s the same bug with shell path detection, just in legacy mode it shows up as empty output instead of EACCES.

There’s one more workaround worth trying before rolling back. Try setting the shell path explicitly:

  1. Open Settings CMD + , and search for terminal.integrated.defaultProfile.osx
  2. Also search for terminal.integrated.profiles.osx and add a fish profile with the full path:
"terminal.integrated.profiles.osx": {
  "fish": {
    "path": "/opt/homebrew/bin/fish"
  }
},
"terminal.integrated.defaultProfile.osx": "fish"
  1. Restart Cursor

If that doesn’t help, rolling back to v2.3.34 is still the only working option. You can download it here: Download · Cursor (pick a specific version). Fully quit Cursor before installing.

The team is aware of this fish and zsh path detection bug. Your report helps us prioritize it. Let me know if the profile setting worked.

Thanks for the reply. When I run this in the legacy shell with the suggested settings, I am still seeing failed and no output. I believe the output it’s giving me is from other cursor tools that do not rely on the terminal.

Thanks for testing the latest workaround and sending the screenshot.

I can see that even with an explicit fish path in the command settings, the commands still fail. This confirms the bug is deeper than just an incorrect shell path. The issue is with how v2.4.x detects and initializes the terminal with a fish/Homebrew setup.

Right now, the only working option is to roll back to v2.3.34.

I know that’s inconvenient, but in v2.3.x the Legacy Terminal worked fine for you (based on your post in the January thread).

Let me know if everything works after the rollback, or if you run into any chat compatibility issues.

1 Like

Thank you.

I believe that have the same issue (Cursor can’t execute git command) and I am planning to rollback to older version. The caveat you mentioned what does this mean for me?

When rolling back from v2.4.x to v2.3.x, chats that were created in v2.4.x may not open or may display incorrectly in v2.3.x. The storage format changed between versions. This means you’ll lose access to those specific chats, so please export any important chats via the chat menu. Chats created before v2.4.x should work normally.

Thanks for the explanation. I think I could cope with losing the chat content.

In the current version on auto mode:

  • Are the rules bound to a project folder working, or not?
  • Can I specify rules manually?