← ClaudeAtlas

build-stealth-rustdesklisted

Build a patched, fully-stealth RustDesk.app from source on Apple Silicon, from a maintained private fork — no menu-bar icon, no Dock icon, no on-screen CM panel compiled in, remote keyboard still works, codesigned and ready to deploy. Use when building or version-bumping the stealth RustDesk binary; deploy the result with the deploy-stealth-rustdesk skill.
soulmachine/skills · ★ 3 · Web & Frontend · score 77
Install: claude install-skill soulmachine/skills
# Build stealth RustDesk from source (macOS, Apple Silicon) Produce a signed `RustDesk.app` with **three stealth surfaces** suppressed in the binary — the **menu-bar (tray) icon**, the **Dock icon**, and the **CM panel** (the connection-management window that floats top-right during a session) — while remote **keyboard** still works. The built app is the artifact; **deploy it as an unattended service with the `deploy-stealth-rustdesk` skill**. Why build from source: the obvious shortcut — the `hide-tray=Y` custom-client flag — springs the **daemon trap**. It makes RustDesk install as a *LaunchDaemon*, which runs outside the user's GUI session and silently kills remote keyboard input ([rustdesk#10709](https://github.com/rustdesk/rustdesk/issues/10709)); on macOS 26 such clients may not even launch. The only path that is both invisible and controllable keeps RustDesk a **LaunchAgent** (user session) and just skips *drawing* the tray icon — a one-line patch. Installing as a LaunchAgent is `deploy-stealth-rustdesk`'s job; this skill compiles the patch in. Each surface needs a different mechanism — there is no single toggle: | Surface | Suppressed by | |---|---| | Tray / menu-bar icon | `assets/stealth.patch` → `src/tray.rs` (compiled in here) | | Dock icon | `LSUIElement=1` (stock) **plus** a `window_manager` patch (Step 4) — the CM/GUI window flips the app to a `.regular` activation policy on connect, which defeats `LSUIElement` and shows a Dock icon unless patched | | CM co