Shell Commands Blocked by Safety Layer in Cursor Chat

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor is unable to execute shell commands from the chat because the commands are being blocked by the safety layer.

Steps to Reproduce

Steps to Reproduce:

Open a project in Cursor IDE.
Start a chat/agent conversation.
Ask the agent to execute a simple shell command, such as echo hello.
The command is blocked by the safety layer instead of being executed.
Repeat with other basic terminal commands and observe the same behavior.

Expected Behavior

Cursor should execute permitted, non-destructive shell commands through the integrated terminal when the user has granted the necessary terminal permissions. A harmless command such as echo hello should not be blocked by the safety layer.

Operating System

MacOS

Version Information

Version: 3.17.8
VS Code Extension API: 1.128.0
Commit: 2fdd31c9f33f7fbe501f2d57772dc5bf64b63620
Date: 2026-08-20T02:18:12.724Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 22.1.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

The issue persists even when Cursor is configured with the most permissive execution settings.

Under Settings → Execution and Approvals, the Run Mode is set to “Run Everything”, which according to the UI should allow commands to run without approval, classification, or sandboxing.

Despite this configuration, the safety layer still blocks basic non-destructive shell commands (e.g. echo hello) from being executed through Cursor Chat/Agent. This behavior appears inconsistent with the selected execution mode and may indicate that the safety layer is overriding or ignoring the configured permissions.

Additionally, switching to the Legacy Terminal Tool does not resolve the issue. Commands remain blocked and are not executed, suggesting that the problem is not specific to the new terminal tool implementation.

I was unable to reproduce this issue; I’m also on MacOS, I was using Cursor Grok 4.6 Medium fwiw.

Here is what i have in Cursor IDE (

Hey @Serhii_B, thanks for the report! Could you share a request ID from one of the blocked runs?

Could you also check whether you have any hooks configured (a hooks.json under .cursor/ in the project or in your home directory)? Also check under Cursor Settings → Customize → Hooks.

If a command is held for review, you should normally get an approval card in chat that lets you run it, so it’s very surprising to see the command skipped altogether!

Thanks! Hooks was a problem here!