--share-desktop registers as enabled on macOS but no Computer Use helper ships in 2026.08.25

Where does the bug appear (feature/product)?

Cursor CLI

Describe the Bug

agent worker start --share-desktop is accepted on macOS and reports itself to the server as enabled, but “Show desktop” never renders anything. As far as I can tell the macOS Computer Use helper the docs describe is not present in the shipped package, so the flag succeeds with nothing behind it.

Reproduced on two separate Macs, both clean installs of the current build.

The core problem is that it fails silently. Worker registration sends:

x-desktop-share-enabled: true
x-desktop-control-enabled: false

and startup logs an affirmative message:

Desktop sharing enabled (--share-desktop view): authorized viewers can watch this machine's real desktop (the operator's login session) through Cursor (view-only).

Meanwhile agent worker debug in the same process reports:

Desktop share (macOS session)
  Supported         no
  Mode              view
  Ready             no
  Helper            unknown  unknown
  Helper path       unknown
  Helper pid        none
  Screen recording  unknown
  Accessibility     unknown
  GUI session       unknown
  Frame source      sck
  Socket            ~/.local/share/cursor-agent/desktop/rfb.sock

So the CLI, the registration headers, and the server all agree the feature is on, while the preflight in the same binary says it is not supported. That mismatch is what cost the time — there is no signal pointing at “this platform cannot do it.”

The docs state it should work here:

Requires Linux with tigervnc-standalone-server installed, or macOS where Cursor installs its signed Computer Use helper.

Steps to Reproduce

  1. Install the CLI on macOS (Apple Silicon): curl Cursor CLI — Run Agents in Terminal, GitHub Actions and Automations & Scripts -fsS | bash

  2. agent login

  3. Start a personal My Machines worker with desktop share enabled:

    agent worker start --name “AP Studio” --share-desktop view --worker-dir ~/some/repo

  4. Worker registers and runs normally; startup logs “Desktop sharing enabled”.

  5. Open the worker at cursor.com/agents#workerId=… and choose “Show desktop”.

  6. Nothing renders.

  7. Run agent worker debug — the macOS desktop share section reports Supported: no, Ready: no, Helper: unknown.

No permission prompt ever appears at any point.

Expected Behavior

Expected: with --share-desktop view, an authorized viewer can watch the machine’s desktop through Cursor, and macOS prompts for Screen Recording (and Accessibility for view_and_control) the first time it is needed.

Actual: the viewer shows nothing, macOS is never prompted, and no capture is ever attempted.

Secondary expectation: if macOS desktop share is not shipping yet, --share-desktop should fail loudly on macOS — or at minimum not register with the server as x-desktop-share-enabled: true — rather than succeeding into a black screen while the binary’s own preflight says Supported: no.

Operating System

MacOS

Version Information

CLI:
CLI Version 2026.08.25-3e8eec8
Latest 2026.08.25-3e8eec8 (up to date)
OS darwin (arm64)
Terminal ghostty
Shell zsh

macOS 26.6.1, Apple Silicon (Mac Studio). Also reproduced on a second Mac.
Worker mode: personal “My Machines” (no --pool).

Additional Information

Evidence that this is a missing binary rather than a permissions problem:

  1. No capture-capable binary in the package. The shipped executables are cursor-agent and cursor-askpass (shell wrappers), plus Mach-O binaries node, spawn-helper, cursorsandbox, crepectl and rg. Running otool -L against all five Mach-O binaries returns zero references to ScreenCaptureKit, CoreGraphics, CoreMedia or AVFoundation — nothing in the package appears able to capture a screen, even though preflight reports Frame source: sck.

  2. macOS is never asked for permission. No kTCCServiceScreenCapture entry is created and no prompt appears, which is consistent with nothing attempting a capture.

  3. The socket is never created. ~/.local/share/cursor-agent/desktop/ does not exist after the worker starts, despite preflight naming rfb.sock inside it.

  4. The string “Computer Use helper” occurs once in the bundle, on what appears to be an error path.

Questions:

  • Is macOS desktop share actually shipping, or is the documentation ahead of the build?
  • If it is not supported yet, could the flag fail loudly on macOS instead of registering as enabled?

Happy to provide full verbose worker logs on request.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @chrisvb!

Thanks for the report. Can you run agent update and see if it works now? It should be working as of 2026.08.31.

@Colin updated to 2026.08.31-4057e58 as you asked. The helper does exist in that build — but setup is still broken, and Show Desktop still fails silently unless you work around the installer by hand.

What 2026.08.31 actually shipped

The CLI package still does not contain a capture binary. The helper is a separate notarized app that is supposed to be downloaded on demand:

  • bundle: Cursor Agent Helper.app
  • id: co.anysphere.cursor.agent-helper
  • team: DCNK4UB866
  • channel: https://downloads.cursor.com/agent-helper/channels/stable/latest.json
  • current artifact: 0.1.0-f2c603d (Cursor-Agent-Helper-0.1.0-f2c603d-universal.zip)
  • install dest: ~/.cursor/agent-helper/

agent worker debug after a normal --share-desktop start still says:

Helper            unknown
Helper pid        none
Supported         no
Cursor Agent Helper is not installed. Start the worker with --share-desktop to install it.

…even though the worker was started with --share-desktop. Registration still sends x-desktop-share-enabled: true. Same silent mismatch as before.

Why auto-install never happens

The installer reads helper-manifest.json via a baked-in Buildkite import.meta.url:

/opt/homebrew/var/buildkite-agent/builds/ip-10-205-31-212-ec2-internal-1/cursor/agent-cli-release/packages/computer-use-mac/helper-manifest.json

That path does not exist on a user machine. readFileSync throws before CURSOR_AGENT_HELPER_DOWNLOAD_BASE_URL is even applied, so the download never starts. No Screen Recording prompt appears, because nothing is launched.

rfb.sock still never created after a successful “Show desktop”

Even after I installed the helper by hand (checksum + Gatekeeper + codesign) and granted Screen Recording + Accessibility:

  • worker logs Accepted desktop session (controlEnabled: false, requestedControl: false)
  • it never logs Starting worker desktop helper
  • it never logs Desktop session ended with error
  • ~/.local/share/cursor-agent/desktop/rfb.sock is never created
  • helper pid stays none

startHelper() calls the same broken installer first. That throw happens before spawn. The session handler still returns accepted: true immediately and runs the session in the background, so the viewer gets a black screen with no error.

Direct helper test on this machine works:

cursor-agent-helper spawn-disclaimed -- rfb --socket … --frame-source sck --input session
→ {"event":"ready","width":2560,"height":1440,"permissions":{"accessibility":true,"screenRecording":true}}

So this is not TCC and not “macOS cannot capture.” The worker just never starts the process that creates rfb.sock.

Workaround that finally produced a socket

export CURSOR_AGENT_HELPER_BIN="$HOME/.cursor/agent-helper/Cursor Agent Helper.app/Contents/MacOS/cursor-agent-helper"
agent worker start --share-desktop view_and_control …

Then the worker logs Starting worker desktop helper and rfb.sock appears. Helper argv:

cursor-agent-helper spawn-disclaimed -- rfb --socket ~/.local/share/cursor-agent/desktop/rfb.sock --frame-source sck --input session --allowed-peer-pid <worker>

That is not a reasonable setup path.

Setup is still too clumsy even when it works

  1. Helper is not in the CLI tarball, and the documented “Cursor installs its signed helper” path is broken by the Buildkite URL.
  2. --share-desktop still registers as enabled when the helper is missing / rfb.sock does not exist.
  3. Failed sessions return accepted: true and swallow the installer exception.
  4. agent worker debug does not inspect the running worker (mode defaults to view, helper pid shows none even while the worker owns a live socket).
  5. Screen Recording / Accessibility prompts do not appear from worker start itself. You have to invoke spawn-disclaimed -- rfb (or equivalent) to create the TCC subject.
  6. Docs still describe the Linux package list more clearly than the macOS download + TCC flow.

Happy to send verbose logs. The two product fixes that would have saved the last two days:

  1. Rewrite import.meta.url at pack time (or embed helper-manifest.json) so --share-desktop actually downloads/installs the helper.
  2. Do not set x-desktop-share-enabled: true / accept a desktop session unless rfb.sock is up. If install or spawn fails, fail the flag and the session out loud.

Hey @chrisvb, thanks for following up, and for the detailed rundown!

Unfortunately, the fix for the helper install didn’t make it into the 08.31 build. It’s queued up for an upcoming release.

Something I also missed: for now, as documented, computer use and desktop sharing require a Linux machine. macOS support is coming soon, and it should be a much smoother experience than the workarounds you’ve had to deal with.

Understood. Thank you for your support.