Run terminal command hangs —interactive terminal works fine

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Environment

  • OS: Windows Server 2019, build 10.0.17763 (non-admin user)
  • Cursor version: 3.3.30 (user setup, stable)
  • Commit: 80b138a7a0a948e1a798e9ed7867d76a1ba9a310
  • Electron: 39.8.1 / Node.js 22.22.1

Problem
When the agent runs a terminal command (Shell tool / ShellExec), the shell
process starts (cmd.exe banner + prompt appear), but the command itself
never executes and no output is ever returned. The shell just sits idle
until the tool times out. The same machine works fine for the integrated
terminal (Terminal → New Terminal) — I can run commands there with no issues.
Also no issue when running VSCode using GHCP agent on same machine.

What I’ve tried

  • terminal.integrated.automationProfile.windows → cmd.exe, then PowerShell
  • terminal.integrated.windowsEnableConpty: true / false
  • terminal.integrated.shellIntegration.enabled: true / false
  • switch to Legacy Terminal Tool
  • Full kill + restart of Cursor (updated from 3.2.21 → 3.3.30 in process)
  • None of these changed the agent shell behaviour.

VS Code / GitHub Copilot comparison
Running VS Code with GitHub Copilot Chat on the exact same machine works
fine — agent terminal commands complete and return output normally.

Workaround
None found. Running commands manually in the integrated terminal and pasting
output to the agent is the current workaround.

Steps to Reproduce

ask in chat: get current time using terminal

Expected Behavior

Agent runs terminal commands - they execute and Cursorcan read output

Operating System

Windows 10/11

Version Information

Version: 3.3.30 (user setup)
VSCode Version: 1.105.1
Commit: 3dc559280adc5f931ade8e25c7b85393842acf30
Date: 2026-05-09T18:28:42.332Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.17763

Additional Information

I can work with Cursor as long as it does not need terminal, but this is VERY limited, so just switch back to VSCode with GHCP

Does this stop you from using Cursor

Yes - Cursor is unusable

Thanks for the thorough report and all the troubleshooting you’ve already done.

Windows Server 2019 (build 17763) has an older ConPTY implementation that can behave differently from Windows 10/11, and we’re seeing similar reports from other Windows users. To help our team narrow down the root cause, could you provide a few pieces of diagnostic info?

  1. Developer Console output when a command hangs: press Ctrl+Shift+I (or Help > Toggle Developer Tools), click the Console tab, then trigger a shell command from the agent. Copy any red error messages that appear.

  2. Code page: in the interactive terminal (which works fine), run chcp and share the output. Some non-UTF-8 codepages can interfere with the agent’s shell output parsing.

  3. Security software: is there any endpoint protection or application control software on this machine (e.g., McAfee, CrowdStrike, AppLocker, Windows Defender Application Control)? These can silently interfere with process spawning or PTY I/O.

  4. Other team members: do other colleagues on the same Windows Server 2019 setup see the same behavior? That would help us determine if it’s machine-specific or systematic.

In the meantime, you might also find this related thread useful, where another Windows user is reporting the same symptom.

i am having the exact same issue. this is really frustrating.

  1. here is the output: ERR [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:49959
    oCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:45246 [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    rCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:64 ERR [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:49959
    oCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:45246 [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    rCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:64 ERR [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:49959
    oCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:45246 [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    rCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:64 ERR [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:49959
    oCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:45246 [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    rCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:64 ERR [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:64
    error @ workbench.desktop.main.js:49959
    oCC @ workbench.desktop.main.js:45246
    $logExtensionHostMessage @ workbench.desktop.main.js:45246
    _doInvokeHandler @ workbench.desktop.main.js:48087
    _invokeHandler @ workbench.desktop.main.js:48087
    _receiveRequest @ workbench.desktop.main.js:48087
    _receiveOneMessage @ workbench.desktop.main.js:48087
    (anonymous) @ workbench.desktop.main.js:48087
    _deliver @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:55
    fire @ workbench.desktop.main.js:45265
    (anonymous) @ workbench.desktop.main.js:59070
    workbench.desktop.main.js:45246 [Extension Host:agent-exec] [otel.error] {“stack”:“Error: Timeout\n\tat Timeout._onTimeout (c:\Users\gbenshim\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetry\sdk-trace-base\build\src\export\BatchSpanProcessorBase.js:138:24)\n\tat listOnTimeout (node:internal/timers:585:17)\n\tat process.processTimers (node:internal/timers:521:7)”,“message”:“Timeout”,“name”:“Error”}
  2. chcp: Active code page: 437
  3. well, this is an enterprise machine, for sure there are many security tools installed, but we have some machine on which it works and some machines on which it doesn’t , we can’t tell what makes it work on some and doesn’t on others

Thanks for providing this. Here’s what the diagnostics tell us:

  • The console errors are OpenTelemetry timeout messages, which are a side effect of the shell hang rather than its root cause. The telemetry layer times out because the underlying shell operation never completes.

  • Code page 437 is standard US English — that rules out codepage-related issues.

  • The most useful piece: it works on some machines but not others. That strongly points to a machine-level difference, most likely an endpoint protection or application control tool that’s interfering with Cursor’s agent terminal process.

To narrow this down, could you (or your IT team) compare a working machine against a non-working one? Specifically:

  1. Endpoint protection software versions - McAfee/Trellix, CrowdStrike, Carbon Black, Symantec, or whatever Intel uses. Check if the versions or policy profiles differ between working and non-working machines.

  2. Application control / allowlisting policies - some enterprise tools block unsigned or unrecognized processes from spawning child processes. Cursor’s agent shell runs in a separate agent-exec extension host process, which may not be in your IT’s allowlist.

  3. Quick test (if IT allows it): temporarily disable endpoint protection on one non-working machine and see if the agent terminal starts working. That would confirm the security tool as the blocker.

If your IT team can identify the tool, we can work on specific guidance for whitelisting Cursor’s processes. If you’d prefer not to share security tool details publicly on the forum, feel free to email us at [email protected] and we can continue the conversation there.

Describe the Bug

Where does the bug appear?

Cursor IDE — Agent / Composer shell tool (background terminal).
Integrated terminal works fine.

Environment

  • OS: Windows 10/11, build [e.g. 10.0.29595]
  • Cursor: [Help → About → version, e.g. 3.6.33]
  • Shell (integrated): PowerShell 7.6.2 (C:\Program Files\PowerShell\7\pwsh.exe)
  • Workspace: W:\WINX (also tested from C:\Users\charl)
  • Release track: was dev, now default
  • Legacy Terminal Tool: tried ON and OFF (both failed)

Describe the bug

When the agent runs any shell command (even echo cursor-terminal-test), the command does not return stdout/stderr to the agent. The background terminal log shows only metadata (pid, cwd, command, running_for_ms) — no output and often no exit_code. Commands time out (~15–25s) and get backgrounded.

The same command in Terminal → New Terminal returns instantly.

Actual behavior

  • Agent: hang or background after timeout; empty output

  • Agent terminal log example:

    ---
    pid: 27092
    cwd: "W:\\WINX"
    command: "echo cursor-terminal-test"
    running_for_ms: 25107
    ---
    
    

Steps to Reproduce

  1. Open Cursor on Windows with any workspace (e.g. W:\WINX).
  2. In Agent / Chat, ask: Run echo cursor-terminal-test
  3. Observe the agent’s background terminal: hollow/running indicator, no output.
  4. Open integrated terminal (pwsh), run: echo cursor-terminal-test
  5. Compare: integrated prints cursor-terminal-test immediately; agent never captures output.

Expected Behavior

Agent shell tool runs the command, returns stdout (cursor-terminal-test) and exit code 0 within ~1 second.

Operating System

Windows 10/11

Version Information

Version: 3.6.33 (system setup)
VS Code Extension API: 1.105.1
Commit: 453f0b5a181a2308f4194369774059e533143520
Date: 2026-06-01T01:43:45.348Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
xterm.js: 6.1.0-beta.220
OS: Windows_NT x64 10.0.29595

For AI issues: which model did you use?

Auto…

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

image

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor AI Agent Shell Tool Hangs on All Commands

Steps to Reproduce

Make a change, try to stage / commit. The command completes, but the agent hangs for ever

Expected Behavior

It should continue once the command is completed

Operating System

Windows 10/11

Version Information

Version: 3.6.31 (system setup)
VS Code Extension API: 1.105.1
Commit: 81fcf2931d7687b4ff3f3017858d0c6dee7e2a60
Date: 2026-05-31T17:46:29.630Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
xterm.js: 6.1.0-beta.220
OS: Windows_NT x64 10.0.26200

Additional Information

UI is getting to the stage where simple fixes (see my previous reports) are never getting done, and are increasing product frustration - this is silly given these should be quick fixes, easy to implement with CursorAI.

Fixed by downgrading to (and turning off all upgrades):
Version: 3.5.38 (system setup)
VSCode Version: 1.105.1
Commit: 009bb5a3600dd98fe1c1f25798f767f686e14750
Date: 2026-05-26T21:32:06.537Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

Yes - Cursor is unusable