# Remote SSH (Mac → Mac): Agent tools hang indefinitely (often on git); integrated terminal git is fine

**URL:** <https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295>\
**Category:** Bug Reports\
**Tags:** terminal, macos, ssh\
**Created:** [August 24, 2026, 10:24am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295 "2026-08-24T10:24:06Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 24, 2026, 10:24am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/1 "2026-08-24T10:24:06Z")

</div>

### Where does the bug appear (feature/product)?

Cursor IDE

### Describe the Bug

### Environment

- **Client:** Cursor on a Mac (local window)
- **Remote:** Cursor Remote SSH to another Mac (`kMini`), workspace is a git repo
- **Remote git credential helper:** Git Credential Manager  
`/usr/local/share/gcm-core/git-credential-manager`  
(also `osxkeychain`-style GUI/Keychain prompts on a machine with no usable GUI for the agent)
- Agent chats (Composer / Cloud / local) all appear stuck the same way

### What happens

In a Remote SSH window, **every agent** eventually sits on “running” / git-related work and never returns.

The same `git` commands in the **normal integrated terminal on that remote** return in well under a second. There is no `.git/index.lock`.

Agent **tool calls themselves hang** — not only `git`. In one session:

| Tool | Wait until cancelled |
| --- | --- |
| `Shell` (`git status --short` with `GIT_TERMINAL_PROMPT=0` / `GIT_ASKPASS=echo`) | ~6 min, then ~14 min |
| `Read` / `Glob` in the same turn | ~6 min (cancelled together) |

So once the agent side is wedged, **non-git tools also never complete**. It looks like a blocked subprocess or askpass, not a slow repo.

### Control experiment (remote terminal, not agent)

This returned immediately:

```bash
GIT_TERMINAL_PROMPT=0 GIT_ASKPASS=echo SSH_ASKPASS=echo git -c core.pager=cat status --short

```

```auto
 M knowledge/log.md
 M knowledge/research/index.md
?? knowledge/research/method-role-handlers-datastar-ecosystem.md

```

`ls .git/index.lock` → no such file.

Clearing `credential.helper` and unlocking the login keychain in **my** shell did **not** unstick later **agent** Shell calls. Agent execution is a different environment (likely Cursor `GIT_ASKPASS` / integrated askpass / a harness `git status` at turn start).

### Why this feels like a product limitation

On Remote SSH:

1. There is **no local GUI** on the SSH host for GCM / Keychain / pinentry.
2. Cursor’s **integrated Git askpass** expects a UI on the **client** , which often never completes for agent-spawned processes.
3. Agents (and repo rules) routinely run **`git status`**. If that call has no timeout and no `GIT_TERMINAL_PROMPT=0`, the **entire agent turn is dead**.
4. Users cannot recover except by cancelling the tool after several minutes and starting a new chat.

Expected: agent git/status either inherits a non-interactive git env (`GIT_TERMINAL_PROMPT=0`, no blocking askpass) or **fails fast** with a clear error. Other tools should not sit behind a hung git.

### Request

- Time out / fail agent git when askpass cannot prompt over SSH.
- For agent shells over Remote SSH, default `GIT_TERMINAL_PROMPT=0` and do not use integrated askpass unless a prompt can actually be shown.
- Document this for Remote SSH + macOS hosts (GCM/Keychain).

### Steps to Reproduce

1. Open Cursor **Remote SSH** to a Mac that has Git Credential Manager (or any helper that can wait on Keychain/GUI).
2. Open a git workspace.
3. Ask any Agent to inspect the repo or run `git status`.
4. Observe the agent tool spinner until you cancel (minutes).
5. In the same window, run `git status` in the integrated terminal — it returns immediately.

### 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 24.6.0

### Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [August 24, 2026, 10:43am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/9 "2026-08-24T10:43:55Z")

</div>

Hey @koliyo, thanks for the detailed report!

Could you try setting `"git.useIntegratedAskPass": false` for the remote, then reloading the window?

That prevents background git operations from routing through the in-app credential prompt, which is the most likely cause of agent sessions getting wedged in a Remote SSH window like yours.

Let us know the result! Might still have an underlying issue to fix whether it works or not.

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 24, 2026, 11:20am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/10 "2026-08-24T11:20:18Z")

</div>

Thanks for reply, I added the setting to both machines, reloaded IDE. And ran simple “check git status” prompt in new chat. Still getting stuck I’m afraid.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [August 24, 2026, 5:54pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/14 "2026-08-24T17:54:45Z")

</div>

Thanks for testing that @koliyo!

It turns out the setting wasn’t the story here: we traced your stuck chats from our side, and your requests are actually reaching our servers but failing because the conversation’s saved data isn’t making it into storage from that window, and over Remote SSH that failure currently shows up as an endless “running” spinner instead of an error message.

Both parts are known issues we’re actively working on.

In the meantime, could you fully quit Cursor on your Mac, kill the Cursor server on kMini (from a terminal there: `pkill -f cursor-server`), then reconnect and try a brand-new chat? If it still gets stuck after that, just note the rough time you tried and reply here, we can look it up on our side from there.

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 25, 2026, 2:47pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/15 "2026-08-25T14:47:53Z")

</div>

I restarted Cursor on both machines, and even fully restarted the kMini remote host. Tried “check git status” prompt, but still getting stuck.

Request ID: 7145adc7-063a-4d72-a7a2-0e4b41210fef

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [August 25, 2026, 4:22pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/19 "2026-08-25T16:22:12Z")

</div>

Hm… your request reaches our servers fine, the model responds within a couple of seconds, and the agent then hands the shell command back to Cursor on kMini to execute. That execution never starts. Our side just keeps waiting, which is the endless spinner you see.

Two things would really help us pin down what’s stuck on the remote side:

1. Right after a hang, in the Remote SSH window, open View \> Output and pick “Cursor Agent Host” from the channel dropdown (also worth checking “Remote - SSH”). Paste anything that appears there, or tell us if that channel isn’t listed at all.

2. Let us know whether the agent works normally in a plain local window on your Mac, with no Remote SSH.

That will isolate this to the component that runs agent commands on the remote machine!

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 27, 2026, 7:39pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/20 "2026-08-27T19:39:09Z")

</div>

I do not find “Cursor Agent Host”, see screenshot. Appending output from Remote - SSH. And yes, agents work locally on both machines.

 ![Screenshot 2026-08-27 at 21.34.29](https://us1.discourse-cdn.com/cursor1/original/3X/4/0/408fbbef6fe306b4ed22f467f0b30231d881fdee.jpeg)

```auto
2026-08-27 21:27:02.344 [info] Resolving ssh remote authority 'kMini' (Unparsed 'ssh-remote+7b22686f73744e616d65223a226b4d696e69227d') (attempt #1)
2026-08-27 21:27:02.355 [info] SSH askpass server listening on /var/folders/7w/r3zd6mzj6jngg60zxf7q383h0000gn/T/cursor-ssh-gx5V71/socket.sock
2026-08-27 21:27:02.356 [info] Using configured platform macOS for remote host kMini
2026-08-27 21:27:02.357 [info] Using askpass script: /Users/nils/.cursor/extensions/anysphere.remote-ssh-1.1.14/dist/scripts/launchSSHAskpass.sh with javascript file /Users/nils/.cursor/extensions/anysphere.remote-ssh-1.1.14/dist/scripts/sshAskClient.js. Askpass address: /var/folders/7w/r3zd6mzj6jngg60zxf7q383h0000gn/T/cursor-ssh-gx5V71/socket.sock
2026-08-27 21:27:02.361 [info] Launching SSH server via shell with command: cat "/var/folders/7w/r3zd6mzj6jngg60zxf7q383h0000gn/T/cursor_remote_install_9770acd6-6f51-459c-87b2-8f0602ad25f4.sh" | ssh -T -D 61577 kMini bash --login -c bash
2026-08-27 21:27:02.361 [info] Establishing SSH connection: cat "/var/folders/7w/r3zd6mzj6jngg60zxf7q383h0000gn/T/cursor_remote_install_9770acd6-6f51-459c-87b2-8f0602ad25f4.sh" | ssh -T -D 61577 kMini bash --login -c bash
2026-08-27 21:27:02.362 [info] Started installation script. Waiting for it to finish...
2026-08-27 21:27:02.362 [info] Waiting for SSH handshake (timeout: 120s). Install timeout: 30s.
2026-08-27 21:27:03.350 [info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote

2026-08-27 21:27:03.351 [info] SSH connection established after 988ms (first stdout received)
2026-08-27 21:27:03.466 [info] (ssh_tunnel) stdout: Using TMP_DIR: /tmp

2026-08-27 21:27:04.331 [info] (ssh_tunnel) stdout: Locking /tmp/cursor-remote-lock.fca684bc38e9a0058d7381c5087ec5a1

2026-08-27 21:27:04.458 [info] (ssh_tunnel) stdout: Downloading server via wget from https://downloads.cursor.com/production/8f2a112cb2845a97b75fd932ea5c470579ca4063/darwin/arm64/cursor-reh-darwin-arm64.tar.gz to cursor-server-0707d8eb-96e3-444f-977f-9b88bca19e4a.tar.gz

2026-08-27 21:27:04.750 [info] (ssh_tunnel) stderr: --2026-08-27 21:27:04-- https://downloads.cursor.com/production/8f2a112cb2845a97b75fd932ea5c470579ca4063/darwin/arm64/cursor-reh-darwin-arm64.tar.gz
Resolving downloads.cursor.com (downloads.cursor.com)... 
2026-08-27 21:27:04.787 [info] (ssh_tunnel) stderr: 104.18.17.128, 104.18.16.128, 2606:4700::6812:1180, ...
Connecting to downloads.cursor.com (downloads.cursor.com)|104.18.17.128|:443... 
2026-08-27 21:27:04.913 [info] (ssh_tunnel) stderr: connected.

2026-08-27 21:27:04.967 [info] (ssh_tunnel) stderr: HTTP request sent, awaiting response... 
2026-08-27 21:27:05.182 [info] (ssh_tunnel) stderr: 200 OK
Length: 102991277 (98M) [application/gzip]
Saving to: ‘cursor-server-0707d8eb-96e3-444f-977f-9b88bca19e4a.tar.gz’

cursor-server-0707d 0%[] 0 --.-KB/s               
2026-08-27 21:27:05.555 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 0%[] 324,13K 878KB/s               
2026-08-27 21:27:05.754 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 1%[] 1,72M 3,00MB/s               
2026-08-27 21:27:06.170 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 3%[] 2,97M 3,78MB/s               
2026-08-27 21:27:06.190 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 4%[] 4,41M 4,39MB/s               
2026-08-27 21:27:06.386 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 5%[>] 5,44M 4,52MB/s               
2026-08-27 21:27:06.619 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 7%[>] 7,17M 4,99MB/s               
2026-08-27 21:27:06.819 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 10%[=>] 10,08M 6,15MB/s               
2026-08-27 21:27:07.028 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 11%[=>] 11,58M 6,28MB/s               
2026-08-27 21:27:07.264 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 13%[=>] 13,56M 6,51MB/s               
2026-08-27 21:27:07.480 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 14%[=>] 14,56M 6,34MB/s               
2026-08-27 21:27:07.757 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 18%[==>] 18,07M 7,22MB/s               
2026-08-27 21:27:07.930 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 20%[===>] 20,23M 7,39MB/s               
2026-08-27 21:27:08.127 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 22%[===>] 22,16M 7,52MB/s               
2026-08-27 21:27:08.333 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 24%[===>] 24,38M 7,75MB/s eta 10s    
2026-08-27 21:27:08.534 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 27%[====>] 27,02M 8,07MB/s eta 10s    
2026-08-27 21:27:08.770 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 28%[====>] 27,66M 7,71MB/s eta 10s    
2026-08-27 21:27:08.974 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 31%[=====>] 31,35M 8,56MB/s eta 10s    
2026-08-27 21:27:09.196 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 34%[=====>] 33,94M 9,46MB/s eta 10s    
2026-08-27 21:27:09.370 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 37%[======>] 36,56M 9,71MB/s eta 7s     
2026-08-27 21:27:09.572 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 39%[======>] 39,23M 10,3MB/s eta 7s     
2026-08-27 21:27:09.772 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 40%[=======>] 39,98M 10,2MB/s eta 7s     
2026-08-27 21:27:10.224 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 41%[=======>] 40,45M 8,99MB/s eta 7s     
2026-08-27 21:27:10.432 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 44%[=======>] 44,11M 9,41MB/s eta 6s     
2026-08-27 21:27:10.652 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 45%[========>] 45,03M 9,21MB/s eta 6s     
2026-08-27 21:27:10.900 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 50%[=========>] 49,71M 10,1MB/s eta 6s     
2026-08-27 21:27:11.145 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 51%[=========>] 50,44M 9,42MB/s eta 6s     
2026-08-27 21:27:11.347 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 55%[==========>] 54,81M 10,0MB/s eta 6s     
2026-08-27 21:27:11.615 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 58%[==========>] 57,75M 10,4MB/s eta 4s     
2026-08-27 21:27:11.816 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 59%[==========>] 58,20M 9,63MB/s eta 4s     
2026-08-27 21:27:12.017 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 61%[===========>] 60,37M 9,80MB/s eta 4s     
2026-08-27 21:27:12.381 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 62%[===========>] 61,19M 8,98MB/s eta 4s     
2026-08-27 21:27:12.743 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 67%[============>] 66,36M 9,24MB/s eta 4s     
2026-08-27 21:27:12.950 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 70%[=============>] 68,76M 9,23MB/s eta 4s     
2026-08-27 21:27:13.177 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 70%[=============>] 69,05M 8,61MB/s eta 4s     
2026-08-27 21:27:13.366 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 70%[=============>] 69,47M 8,01MB/s eta 4s     
2026-08-27 21:27:13.623 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 72%[=============>] 70,78M 8,00MB/s eta 4s     
2026-08-27 21:27:13.822 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 74%[=============>] 73,16M 9,09MB/s eta 3s     
2026-08-27 21:27:14.024 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 76%[==============>] 75,01M 8,53MB/s eta 3s     
2026-08-27 21:27:14.223 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 78%[==============>] 77,45M 8,39MB/s eta 3s     
2026-08-27 21:27:14.424 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 81%[===============>] 79,94M 8,58MB/s eta 3s     
2026-08-27 21:27:14.627 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 84%[===============>] 82,84M 9,18MB/s eta 3s     
2026-08-27 21:27:14.831 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 87%[================>] 85,55M 8,88MB/s eta 1s     
2026-08-27 21:27:15.181 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 90%[=================>] 88,63M 9,30MB/s eta 1s     
2026-08-27 21:27:15.237 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 93%[=================>] 91,94M 9,87MB/s eta 1s     
2026-08-27 21:27:15.435 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 97%[==================>] 95,91M 10,4MB/s eta 1s     
2026-08-27 21:27:15.550 [info] (ssh_tunnel) stderr: 
cursor-server-0707d 100%[===================>] 98,22M 11,0MB/s in 10s     

2026-08-27 21:27:15.551 [info] (ssh_tunnel) stderr: 2026-08-27 21:27:15 (9,47 MB/s) - ‘cursor-server-0707d8eb-96e3-444f-977f-9b88bca19e4a.tar.gz’ saved [102991277/102991277]

2026-08-27 21:27:15.559 [info] (ssh_tunnel) stdout: Extracting server contents from cursor-server-0707d8eb-96e3-444f-977f-9b88bca19e4a.tar.gz

2026-08-27 21:27:15.561 [info] (ssh_tunnel) stdout: Extracting...

2026-08-27 21:27:20.203 [info] (ssh_tunnel) stdout: Checking node executable

2026-08-27 21:27:21.833 [info] (ssh_tunnel) stdout: v22.22.1

2026-08-27 21:27:22.009 [info] (ssh_tunnel) stdout: Cleaning up old-style stale build multiplex-server

2026-08-27 21:27:22.044 [info] (ssh_tunnel) stdout: Deleting trashed stale builds in /Users/nils/.cursor-server/.stale-builds-trash in the background

2026-08-27 21:27:22.053 [info] (ssh_tunnel) stdout: Checking for running multiplex server: /Users/nils/.cursor-server/bin/multiplex-server/e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74.js

2026-08-27 21:27:22.141 [info] (ssh_tunnel) stdout: Running multiplex server: 

2026-08-27 21:27:22.152 [info] (ssh_tunnel) stdout: Creating multiplex server token file /tmp/cursor-remote-multiplex.token.fca684bc38e9a0058d7381c5087ec5a1.e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74

2026-08-27 21:27:22.172 [info] (ssh_tunnel) stdout: Creating directory for multiplex server: /Users/nils/.cursor-server/bin/multiplex-server

2026-08-27 21:27:22.184 [info] (ssh_tunnel) stdout: Writing multiplex server script to /Users/nils/.cursor-server/bin/multiplex-server/e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74.js

2026-08-27 21:27:22.192 [info] (ssh_tunnel) stdout: Starting multiplex server: /Users/nils/.cursor-server/bin/darwin-arm64/8f2a112cb2845a97b75fd932ea5c470579ca4060/node /Users/nils/.cursor-server/bin/multiplex-server/e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74.js 34f6cacc-2336-4cb1-ba80-28de1921c4a0 0

2026-08-27 21:27:22.199 [info] (ssh_tunnel) stdout: Multiplex server started with PID 345 and wrote pid to file /tmp/cursor-remote-multiplex.pid.fca684bc38e9a0058d7381c5087ec5a1.e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74
Reading multiplex server token file /tmp/cursor-remote-multiplex.token.fca684bc38e9a0058d7381c5087ec5a1.e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74

2026-08-27 21:27:22.199 [info] (ssh_tunnel) stdout: Multiplex server token file found

2026-08-27 21:27:22.204 [info] (ssh_tunnel) stdout: Reading multiplex server log file /tmp/cursor-remote-multiplex.log.fca684bc38e9a0058d7381c5087ec5a1.e0e6952a313d583840d50b387ab40c7bba7e66b79d95be1f22b3e7fc0706ae74

2026-08-27 21:27:22.758 [info] (ssh_tunnel) stdout: Checking for code servers

2026-08-27 21:27:22.852 [info] (ssh_tunnel) stdout: Code server script is not running

2026-08-27 21:27:22.859 [info] (ssh_tunnel) stdout: Creating code server token file /tmp/cursor-remote-code.token.fca684bc38e9a0058d7381c5087ec5a1

2026-08-27 21:27:22.867 [info] (ssh_tunnel) stdout: Starting code server script /Users/nils/.cursor-server/bin/darwin-arm64/8f2a112cb2845a97b75fd932ea5c470579ca4060/bin/cursor-server --start-server --host 127.0.0.1 --port 0 --install-extension ms-dotnettools.csharp --install-extension dkundel.vscode-new-file --install-extension sleistner.vscode-fileutils --install-extension editorconfig.editorconfig --connection-token-file /tmp/cursor-remote-code.token.fca684bc38e9a0058d7381c5087ec5a1 --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms &> /tmp/cursor-remote-code.log.fca684bc38e9a0058d7381c5087ec5a1 &

2026-08-27 21:27:22.874 [info] (ssh_tunnel) stdout: Code server started with PID 416 and wrote pid to file /tmp/cursor-remote-code.pid.fca684bc38e9a0058d7381c5087ec5a1

2026-08-27 21:27:22.879 [info] (ssh_tunnel) stdout: Code server log file is /tmp/cursor-remote-code.log.fca684bc38e9a0058d7381c5087ec5a1

2026-08-27 21:27:23.432 [info] (ssh_tunnel) stdout: 72669923e4fe5094fd488288: start
exitCode==0==
nodeExecutable==/Users/nils/.cursor-server/bin/darwin-arm64/8f2a112cb2845a97b75fd932ea5c470579ca4060/node==
errorMessage====
isFatalError==false==
multiplexListeningOn==52226==
multiplexConnectionToken==34f6cacc-2336-4cb1-ba80-28de1921c4a0==
codeListeningOn==52246==
codeConnectionToken==6d869acd-61ce-4ee1-9abd-0a4c71c757ab==
detectedPlatform==darwin==
arch==arm64==
osVersion==macOS 26.6.2==
osVersionFormat====
osName====
osVersionId====
osId====
kernelVersion==25.6.0==
SSH_AUTH_SOCK==/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock==
DISPLAY====

2026-08-27 21:27:23.455 [info] (ssh_tunnel) stdout: Unlocking /tmp/cursor-remote-lock.fca684bc38e9a0058d7381c5087ec5a1

2026-08-27 21:27:23.469 [info] (ssh_tunnel) stdout: 72669923e4fe5094fd488288: end
 
***********************************************************************
* This terminal is used to establish and maintain the SSH connection. *
* Closing this terminal will terminate the connection and disconnect *
* Cursor from the remote server. *
***********************************************************************

2026-08-27 21:27:23.470 [info] Server install command exit code: 0
2026-08-27 21:27:23.471 [info] Deleting local script /var/folders/7w/r3zd6mzj6jngg60zxf7q383h0000gn/T/cursor_remote_install_9770acd6-6f51-459c-87b2-8f0602ad25f4.sh
2026-08-27 21:27:23.471 [info] [forwarding][code] creating new forwarding server
2026-08-27 21:27:23.471 [info] [forwarding][code] server listening on 127.0.0.1:61754
2026-08-27 21:27:23.471 [info] [forwarding][code] Prepared server
2026-08-27 21:27:23.472 [info] [remote-ssh] codeListeningOn (transport=socks; local=127.0.0.1:61754) codeConnectionToken: 6d869acd-61ce-4ee1-9abd-0a4c71c757ab
2026-08-27 21:27:23.472 [info] [forwarding][multiplex] creating new forwarding server
2026-08-27 21:27:23.472 [info] [forwarding][multiplex] server listening on 127.0.0.1:61755
2026-08-27 21:27:23.472 [info] [forwarding][multiplex] Prepared server
2026-08-27 21:27:23.472 [info] [remote-ssh] multiplexListeningOn (transport=socks; local=127.0.0.1:61755) multiplexConnectionToken: 34f6cacc-2336-4cb1-ba80-28de1921c4a0
2026-08-27 21:27:23.472 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:27:23.472 [info] [gpg-forwarding] GPG agent forwarding is disabled in settings
2026-08-27 21:27:23.472 [info] [remote-ssh] Resolved exec server. Transport: socks
2026-08-27 21:27:23.472 [info] [remote-ssh] Resolved authority: {"host":"127.0.0.1","port":61754,"connectionToken":"6d869acd-61ce-4ee1-9abd-0a4c71c757ab","extensionHostEnv":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"}}. Transport: socks
2026-08-27 21:27:23.474 [info] [remote-ssh] Setting environment variable SSH_AUTH_SOCK=/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock
2026-08-27 21:27:23.474 [info] Setting up 0 default forwarded ports
2026-08-27 21:27:23.475 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][39abfcec-324b-47ee-9d7d-fad52bb53f63] received connection request
2026-08-27 21:27:23.475 [info] [command][2615ae92-f841-4726-936b-a103713ae128] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"2615ae92-f841-4726-936b-a103713ae128"}
2026-08-27 21:27:23.486 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][39abfcec-324b-47ee-9d7d-fad52bb53f63] forwarding established
2026-08-27 21:27:23.492 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][7491e30d-6f31-4acf-87a6-d9bb2769b6e5] received connection request
2026-08-27 21:27:23.498 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][7491e30d-6f31-4acf-87a6-d9bb2769b6e5] forwarding established
2026-08-27 21:27:23.520 [info] [command][2615ae92-f841-4726-936b-a103713ae128] Process exited with code 0
2026-08-27 21:27:23.521 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][39abfcec-324b-47ee-9d7d-fad52bb53f63] remote connection closed
2026-08-27 21:27:23.521 [info] [command][2615ae92-f841-4726-936b-a103713ae128] Socket close event received
2026-08-27 21:27:24.414 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][dd189096-92e3-4a29-bc0e-6e0a75607f3f] received connection request
2026-08-27 21:27:24.419 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][dd189096-92e3-4a29-bc0e-6e0a75607f3f] forwarding established
2026-08-27 21:27:24.576 [info] Saved platform macOS for remote host kMini
2026-08-27 21:27:27.298 [info] [tunnel-forwarding][localhost:62863 -> 127.0.0.1:62863] server listening
2026-08-27 21:27:27.298 [info] Cross binding to [::1]:62863. Originally bound to 127.0.0.1:62863
2026-08-27 21:27:27.299 [info] [tunnel-forwarding][::1:62863 -> 127.0.0.1:62863] server listening
2026-08-27 21:27:27.306 [info] [tunnel-forwarding][localhost:7422 -> 127.0.0.1:7422] server listening
2026-08-27 21:27:27.306 [info] Cross binding to [::1]:7422. Originally bound to 127.0.0.1:7422
2026-08-27 21:27:27.306 [info] [tunnel-forwarding][::1:7422 -> 127.0.0.1:7422] server listening
2026-08-27 21:27:31.915 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][63214cb7-a1a0-420c-861d-317791744ae2] received connection request
2026-08-27 21:27:31.924 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][63214cb7-a1a0-420c-861d-317791744ae2] forwarding established
2026-08-27 21:27:36.791 [info] [forwarding][code][127.0.0.1:61754 -> socks 127.0.0.1:61577 -> 127.0.0.1:52246][63214cb7-a1a0-420c-861d-317791744ae2] remote connection closed
2026-08-27 21:28:23.522 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:28:23.523 [info] [command][c18ae07a-a2fe-49bb-9c88-a06a55c04e16] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"c18ae07a-a2fe-49bb-9c88-a06a55c04e16"}
2026-08-27 21:28:23.523 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][da0f9578-1b81-4f22-ba35-b4dad919f665] received connection request
2026-08-27 21:28:23.528 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][da0f9578-1b81-4f22-ba35-b4dad919f665] forwarding established
2026-08-27 21:28:23.543 [info] [command][c18ae07a-a2fe-49bb-9c88-a06a55c04e16] Process exited with code 0
2026-08-27 21:28:23.543 [info] [command][c18ae07a-a2fe-49bb-9c88-a06a55c04e16] Socket close event received
2026-08-27 21:28:23.543 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][da0f9578-1b81-4f22-ba35-b4dad919f665] remote connection closed
2026-08-27 21:29:23.544 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:29:23.546 [info] [command][f6eca8fc-a4c5-4e38-91a9-50b5a091c3a7] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"f6eca8fc-a4c5-4e38-91a9-50b5a091c3a7"}
2026-08-27 21:29:23.546 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6868e7e3-e545-47d8-b6c8-2ec74a323980] received connection request
2026-08-27 21:29:23.551 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6868e7e3-e545-47d8-b6c8-2ec74a323980] forwarding established
2026-08-27 21:29:23.570 [info] [command][f6eca8fc-a4c5-4e38-91a9-50b5a091c3a7] Process exited with code 0
2026-08-27 21:29:23.570 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6868e7e3-e545-47d8-b6c8-2ec74a323980] remote connection closed
2026-08-27 21:29:23.570 [info] [command][f6eca8fc-a4c5-4e38-91a9-50b5a091c3a7] Socket close event received
2026-08-27 21:30:23.586 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:30:23.587 [info] [command][f9dd43fe-78d0-429d-b755-acf9dbe5d781] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"f9dd43fe-78d0-429d-b755-acf9dbe5d781"}
2026-08-27 21:30:23.587 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][5797fa77-4334-43ab-92c2-3099e6a8356c] received connection request
2026-08-27 21:30:23.593 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][5797fa77-4334-43ab-92c2-3099e6a8356c] forwarding established
2026-08-27 21:30:23.609 [info] [command][f9dd43fe-78d0-429d-b755-acf9dbe5d781] Process exited with code 0
2026-08-27 21:30:23.609 [info] [command][f9dd43fe-78d0-429d-b755-acf9dbe5d781] Socket close event received
2026-08-27 21:30:23.609 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][5797fa77-4334-43ab-92c2-3099e6a8356c] remote connection closed
2026-08-27 21:31:23.625 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:31:23.626 [info] [command][b05c5230-1318-4574-94ae-2dbb3aa6548f] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"b05c5230-1318-4574-94ae-2dbb3aa6548f"}
2026-08-27 21:31:23.626 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][437dd68d-ab7e-4bb8-bb3e-ceed35ec0acc] received connection request
2026-08-27 21:31:23.630 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][437dd68d-ab7e-4bb8-bb3e-ceed35ec0acc] forwarding established
2026-08-27 21:31:23.645 [info] [command][b05c5230-1318-4574-94ae-2dbb3aa6548f] Process exited with code 0
2026-08-27 21:31:23.645 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][437dd68d-ab7e-4bb8-bb3e-ceed35ec0acc] remote connection closed
2026-08-27 21:31:23.646 [info] [command][b05c5230-1318-4574-94ae-2dbb3aa6548f] Socket close event received
2026-08-27 21:32:23.646 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:32:23.647 [info] [command][f7e9abab-161a-4083-9aff-0060f21bc3e5] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"f7e9abab-161a-4083-9aff-0060f21bc3e5"}
2026-08-27 21:32:23.647 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2747588e-775f-4a16-b82f-edec623c9ad6] received connection request
2026-08-27 21:32:23.657 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2747588e-775f-4a16-b82f-edec623c9ad6] forwarding established
2026-08-27 21:32:23.670 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2747588e-775f-4a16-b82f-edec623c9ad6] remote connection closed
2026-08-27 21:32:23.671 [info] [command][f7e9abab-161a-4083-9aff-0060f21bc3e5] Process exited with code 0
2026-08-27 21:32:23.671 [info] [command][f7e9abab-161a-4083-9aff-0060f21bc3e5] Socket close event received
2026-08-27 21:33:23.675 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:33:23.676 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2daf9199-083c-448a-a5bf-4dd3ba815984] received connection request
2026-08-27 21:33:23.677 [info] [command][51894831-8861-4693-a33b-f47a8598a888] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"51894831-8861-4693-a33b-f47a8598a888"}
2026-08-27 21:33:23.682 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2daf9199-083c-448a-a5bf-4dd3ba815984] forwarding established
2026-08-27 21:33:23.696 [info] [command][51894831-8861-4693-a33b-f47a8598a888] Process exited with code 0
2026-08-27 21:33:23.696 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][2daf9199-083c-448a-a5bf-4dd3ba815984] remote connection closed
2026-08-27 21:33:23.696 [info] [command][51894831-8861-4693-a33b-f47a8598a888] Socket close event received
2026-08-27 21:34:23.696 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:34:23.697 [info] [command][2a60f7d8-2ebc-4b58-920b-771dfc19e1a3] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"2a60f7d8-2ebc-4b58-920b-771dfc19e1a3"}
2026-08-27 21:34:23.697 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6ecc06e4-1fe3-42d1-86a4-ca23993b04f3] received connection request
2026-08-27 21:34:23.702 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6ecc06e4-1fe3-42d1-86a4-ca23993b04f3] forwarding established
2026-08-27 21:34:23.717 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][6ecc06e4-1fe3-42d1-86a4-ca23993b04f3] remote connection closed
2026-08-27 21:34:23.717 [info] [command][2a60f7d8-2ebc-4b58-920b-771dfc19e1a3] Process exited with code 0
2026-08-27 21:34:23.717 [info] [command][2a60f7d8-2ebc-4b58-920b-771dfc19e1a3] Socket close event received
2026-08-27 21:35:23.721 [info] [remote-ssh] Pinging remote server via 127.0.0.1:61755...
2026-08-27 21:35:23.722 [info] [command][64a49dc6-629f-4d78-a707-5e6bc03e3c69] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-e0a541c1-7c56-4434-af87-383f5da6e197.sock"},"token":"34f6cacc-2336-4cb1-ba80-28de1921c4a0","id":"64a49dc6-629f-4d78-a707-5e6bc03e3c69"}
2026-08-27 21:35:23.722 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][0c72c831-4d90-4325-9335-441d8cc8a8a1] received connection request
2026-08-27 21:35:23.728 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][0c72c831-4d90-4325-9335-441d8cc8a8a1] forwarding established
2026-08-27 21:35:23.745 [info] [forwarding][multiplex][127.0.0.1:61755 -> socks 127.0.0.1:61577 -> 127.0.0.1:52226][0c72c831-4d90-4325-9335-441d8cc8a8a1] remote connection closed
2026-08-27 21:35:23.745 [info] [command][64a49dc6-629f-4d78-a707-5e6bc03e3c69] Process exited with code 0
2026-08-27 21:35:23.745 [info] [command][64a49dc6-629f-4d78-a707-5e6bc03e3c69] Socket close event received

```

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 28, 2026, 8:22am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/24 "2026-08-28T08:22:40Z")

</div>

Looks like same issue with cursor-agent over SSH terminal

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 28, 2026, 10:01am UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/25 "2026-08-28T10:01:39Z")

</div>

I had agent investigate on the remote host, here is what it responded:

I inspected kMini’s `~/.cursor-server/data/logs/20260827T212723`. The Remote-SSH control transport is healthy: its periodic `echo 1`requests complete in ~15–25 ms. The remote extension host activates `anysphere.cursor-agent-exec` successfully, but `Cursor Agent Exec.log` contains only startup/rule loading and ends at `cursorRulesService.getAllCursorRules`; there is no record of a Shell/Read/Glob request being dispatched. This confirms the requested agent tool never reaches the remote executor, before Git or any child process could run. `remoteagent.log` also has repeated “No ptyHost heartbeat after 6 seconds” warnings. There is no “Cursor Agent Host” output channel in this Remote-SSH window. Agents work locally on both machines.

and

Confirmed: there is no “Cursor Agent Host” channel in the Remote SSH window. Agents work in local windows on both Macs, including this kMini GUI session.

On the host, Remote-SSH multiplex pings succeed in ~20ms. `cursor-agent-exec` activates, but `Cursor Agent Exec.log` never records a tool dispatch. `remoteagent.log` has “No ptyHost heartbeat after 6 seconds.” Same hang with `cursor-agent` in an SSH terminal (not only the IDE agent).

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [August 28, 2026, 12:38pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/29 "2026-08-28T12:38:01Z")

</div>

Hey @koliyo, thanks for adding more details! Super interesting.

Since the standalone CLI also hangs over SSH, but agents work when you are logged into kMini directly, this no longer looks specific to the Remote SSH window. It points at something on kMini that treats SSH sessions differently from a logged-in GUI session.

The prime suspect is macOS power management. A headless Mac can keep answering network traffic while idle (which is why the connection pings stay fast) yet suspend or heavily throttle background work, and the repeated “No ptyHost heartbeat” warnings in your logs are a typical sign of that.

Could you try this on kMini:

1. In a terminal on kMini, run `pmset -g` and share the output.
2. Run `caffeinate -dimsu` in a spare terminal there and leave it running, then try the agent again from the Remote SSH window and from the CLI.

If agents complete while caffeinate is running, that confirms it, and the durable fix is enabling “Prevent automatic sleeping when the display is off” in System Settings \> Energy (or `sudo pmset -a sleep 0`). If they still hang even with `caffeinate` running, tell us and we will keep digging!

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 28, 2026, 2:21pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/30 "2026-08-28T14:21:46Z")

</div>

```auto
❯ pmset -g
System-wide power settings:
Currently in use:
 standby 0
 Sleep On Power Button 1
 autorestartatconnect 0
 autorestart 1
 powernap 1
 networkoversleep 0
 disksleep 10
 sleep 1 (sleep prevented by powerd, screensharingd, Amphetamine)
 ttyskeepawake 1
 displaysleep 60 (display sleep prevented by Amphetamine)
 tcpkeepalive 1
 womp 1

```

caffinate did not help

I have done some further investigation, and it is possibly due to zsh usage by agents, I use fish but have some lingering old zsh setup that has not been maintained. Here is feedback from agent on that:

Today I ran `agent` in an SSH terminal (Ghostty → Tailscale → kMini, `ttys024`, cwd a git repo). Prompt was just “check git status”. The transcript never got a tool result.

On the host, the CLI (2026.08.25-3e8eec8) spawned:

`zsh -o extendedglob -ilc` … `dump_zsh_state`

That child sat for minutes (other leftover sessions for 6+ hours) inside `run_init_scripts` / `source ~/.zshrc`, blocked on `write()` to a unix socket back to the agent. stdin is `/dev/null`. CPU ~0. My zshrc loads antigen + oh-my-zsh. The same `zsh -ilc` with a drained stdout finishes in ~0.2s. So this looks like a pipe deadlock: snapshot stdout is not being read, zsh blocks, the first tool never runs. Git is not involved yet.

Two older `agent` processes from this morning (one still on 2026.01.28) are stuck the same way, also with `/tmp/cursor-askpass-*.sock`.

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 28, 2026, 3:04pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/31 "2026-08-28T15:04:59Z")

</div>

Yes there was something going on with my old zsh setup. As I said I run fish since a while back, and have old zsh config, and agents seem to use zsh? I told my agent to clean up my zsh config and optimize it for agent usage. I got a really scaled down zsh config, and now remote ssh agents work!

---

<div class="post-metadata">

**Author:** ![koliyo](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/koliyo/32/8940_2.png) [@koliyo](https://forum.cursor.com/u/koliyo)\
**Post date:** [August 28, 2026, 3:09pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/32 "2026-08-28T15:09:50Z")

</div>

Here is final report from my agent on the SSH remote host:

* * *

**Resolved on my side (CLI over SSH). Sharing the verified cause in case it also explains the IDE Remote-SSH hang.**

### What I thought it was

Git / GCM / Keychain / integrated askpass. That was wrong for the hang I can see on the host. `git.useIntegratedAskPass: false` did not help (as Colin said). Integrated-terminal git was always fine.

### What staff already saw (IDE Remote SSH)

Request ID `7145adc7-063a-4d72-a7a2-0e4b41210fef`: the model returns; **the tool never starts on kMini**. There is no “Cursor Agent Host” channel. Agents work in local Cursor windows. Remote-SSH multiplex pings are fast; `Cursor Agent Exec.log` never records a Shell/Read/Glob; `remoteagent.log` had `No ptyHost heartbeat after 6 seconds`.

I still treat that IDE path as a **product bug to keep on your list** (execution never dispatched / spinner instead of an error). I did not re-verify that specific window after the fix below.

### Verified culprit (CLI `agent` over SSH)

Same user-visible hang: “check git status”, spinner forever, no tool result.

On the host, `agent` (2026.08.25-3e8eec8) immediately spawned:

```plaintext
zsh -o extendedglob -ilc # dump_zsh_state

```

That child sat for minutes (other leftover sessions for 6+ hours). `sample` showed it stuck in `run_init_scripts` → `source ~/.zshrc` → **`write()` to a unix socket back to the agent**. stdin was `/dev/null`. CPU ~0.

I do **not** use zsh day to day (fish). I still had an old `.zshrc` that loaded **antigen + oh-my-zsh** (git, brew, docker, themes, completions). That init prints a lot and dumps a huge function set. The same `zsh -ilc` with a drained stdout finished in ~0.2s. Under the agent, stdout was not being read, the pipe filled, zsh blocked, and **the first tool never ran**. Git was never started.

So: **CLI hang = zsh snapshot deadlock** , not git, not GCM.

`/tmp/cursor-askpass-*.sock` was present; that was secondary.

### Resolution (verified)

Replaced `.zshrc` with a **silent, tiny** config (brew PATH + cargo, no antigen/oh-my-zsh, no prompt unless there is a real TTY). Left the old file as a backup.

`zsh -ilc` now finishes in ~60ms and dumps 0 functions (was ~105k of oh-my-zsh). After that, **CLI `agent` over SSH works** — I verified a real session.

### Takeaway for Cursor

1. CLI (and possibly IDE agent shells) should not run `zsh -ilc` against a full interactive rc, or must **drain stdout while snapshotting** and time out. A full pipe + unread socket looks exactly like “tools hang forever.”
2. Over Remote SSH, a failed/stuck executor should **error** , not spin.
3. Docs: if the user’s login shell is fish but `agent` still snapshots zsh, a leftover `.zshrc` will bite them.

Happy to grab a fresh IDE Remote-SSH request ID if you still want a trace on that path. For CLI-over-SSH, this is closed on my machine.

* * *

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [August 28, 2026, 4:42pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/37 "2026-08-28T16:42:49Z")

</div>

Hey @koliyo, thanks for following through on this and sharing the full write-up.

I verified the mechanism on our side: when a shell startup file prints a large amount of output, the snapshot the agent takes of the shell environment can stall before the first command ever runs, and right now that surfaces as an endless spinner instead of an error.

I’ve flagged this to the team so agent shells handle chatty startup files gracefully and fail fast instead of hanging. The same cause most likely explains what you saw in the Remote SSH window too, so no need for another trace unless it comes back after your cleanup.

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [August 30, 2026, 4:46pm UTC](https://forum.cursor.com/t/remote-ssh-mac-mac-agent-tools-hang-indefinitely-often-on-git-integrated-terminal-git-is-fine/169295/39 "2026-08-30T16:46:20Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
