Changelog
What's new
All notable updates to CursorHop.
v0.8.0-beta April 2026
Initial Public Release
Share one keyboard and mouse across Windows and Mac over LAN.Encrypted by default (Noise Protocol).Clipboard sync + file drag-and-drop between machines.Game Mode, display dimming, and Win↔Mac shortcut translation.
CursorHop 0.8.0-beta — Initial Public Release
First public beta of CursorHop, a from-scratch keyboard and mouse sharing app (software KVM, no video) for Windows and macOS on your local network.
Core
- Input sharing — Low-latency mouse and keyboard forwarding across machines over LAN, with binary wire encoding (MouseMove 13 B, MouseScroll 9 B) and 1 ms flush on the hot path.
- Edge-based switching — Move your cursor off the edge of one screen onto another. Three-gate return protection (250 ms cooldown, 20 px inward travel, 10 minimum events) prevents accidental return flickers.
- Multi-monitor aware — Screens from the same device move as a locked group in the layout editor. Sub-pixel accumulators preserve precision across mixed resolutions and DPIs.
- Bidirectional control — Both machines can be Primary at once. Injected events
carry an
INJECTED_TAGso they are never re-captured into a loop.
Security
- Noise Protocol encryption —
Noise_XX_25519_ChaChaPoly_SHA256with mutual authentication, enabled by default. Toggle available per connection. - Ed25519 device identity — Per-device UUID v4 with a 32-byte keypair. 8-byte fingerprint shown during pairing.
- Trust-on-first-use pairing — Manual approval on first connection; subsequent connections are automatic for known peers.
- Offline JWT licensing — Fetch license once online; app works fully offline afterwards. RS256-signed, locally verified.
Discovery & Networking
- mDNS auto-discovery —
_cursorhop._tcp.local.service advertisement, IPv4 preferred. - Room codes — 5-letter deterministic codes derived from device ID for joining across subnets via UDP beacons on port 24801.
- Direct IP connect — Manual connection by IP address for networks where mDNS is blocked.
- Auto-reconnect — mDNS-driven, periodic (30 s), and full subnet scan (45 s) fallbacks. 200 ms heartbeats with 15-miss timeout.
Clipboard
- Text, images, HTML, files — Per-format enable toggles. Up to 50 MB clipboard, 16 MB drag-drop.
- Loop prevention — Event IDs and skip-next flags prevent clipboard ping-pong between peers.
- Chunked file pull-transfer — Copy on source, paste on target streams zstd-compressed chunks on demand.
- Fallback chain — Paste directory → Desktop copy (OneDrive-aware) → clipboard paste.
File Transfer
- Chunked transfers — 3 MB chunks, zstd level 3 compression, SHA-256 verification per file.
- Pause, resume, cancel — Up to 2 parallel transfers by default. 100 MB default max file size (configurable).
- Edge drag-and-drop — OLE
IDropTarget-driven: drag files off the edge of one screen, drop onto the other machine's desktop.
Keyboard
- Shortcut translation — Built-in Win↔Mac profile with 30+ mappings. Stateful modifier tracking ensures correct KeyUp behavior.
- Per-device modifier remap — Remap Shift, Ctrl, Alt, Super independently per peer.
- Meta key filter — Optionally strip bare Super/Win presses from forwarded input.
Display & Focus
- Display dimming — Per-monitor overlay on Windows, gamma ramp on macOS. Brightness slider 0.0–1.0 (default 0.3). Restores automatically when no peers remain.
- Cursor Lock — Scroll Lock toggles a local-only cursor pin with an on-screen overlay.
- Game Mode —
Ctrl+Genables relative-delta forwarding with 1x1ClipCursorpin for FPS and other games that capture the cursor.
Power & Session
- Power sync (Max tier) — Forward Lock, Unlock, Suspend, Shutdown, Restart, and Screensaver events from Primary to Remote with 2 s dedup.
- Sleep prevention — Optional flag prevents forwarding input while a peer is sleeping.
Licensing & Tiers
- Four tiers — Free Trial, Pro, Pro+, Max — with device limits of 5, 2, 5, and 10 respectively.
- Feature gating in both UI (
LockedFeatureBadge→ pricing page) and core (GAME_MODE_FEATUREatomic is UI-bypass proof). - Stripe-powered billing, Supabase-backed license issuance, JWT delivered to desktop app and cached locally.
Auto-Update
- Windows — Silent
electron-updaterflow viadl.cursorhop.com/releases. Scheduled task withRL HIGHESTelevates without a UAC prompt on launch, modeled after Synergy and Razer Synapse. - macOS — Custom unsigned updater: fetch
latest-mac.yml, verify SHA-512,ditto-extract, strip quarantine, ad-hoc codesign (required on Sequoia 15.1+), detached swap script with rollback, relaunch. - Single installer — One Inno Setup
.exeserves both the website download wizard and silent auto-update (/VERYSILENT /SUPPRESSMSGBOXES /NORESTART).
UI
- 10 pages — Dashboard, Devices, Layout editor, Transfers, Diagnostics, Settings, Mappings, Misc, Account, About.
- Flat, containerless design — Tailwind 3.4 with five surface levels and three border levels driven by CSS RGB variables. Dark mode only in this release.
- Real-time streaming — Status, logs, transfers, and pair requests stream over gRPC; devices poll every 5 s.
- Layout editor — Drag-snap canvas at 60 fps via
requestAnimationFrame. Multi-monitor device groups move as one. - First-run onboarding — Sign-in, accessibility permissions (macOS), and a five-slide feature tour.
Platform Support
- Windows 10/11 (x64) — Primary platform. Full feature set. Single installer with
requireAdministratormanifest. - macOS 12+ (x64 and arm64) — Secondary platform. Unsigned build with ad-hoc
codesign. Input capture via real
CGEventTap. Clipboard currently limited to stubs. - Linux — Not supported in this release.