Free · Open Source · LAN Only

Control your Mac
from any device

A native Swift menu bar app that turns any browser into a full-featured remote. No account. No subscription. No internet.

Download for macOS View Source

macOS 13+ · Zero dependencies · MIT License · <1 MB download

9:41 Sun, Mar 29
Try the interactive demo ↗
Zero Install Client Native Swift Backend LAN Only · No Cloud No Account Required PWA Ready iOS · Android · Any Browser Full Keyboard Replica MIT License Open Source Zero Install Client Native Swift Backend LAN Only · No Cloud No Account Required PWA Ready iOS · Android · Any Browser Full Keyboard Replica MIT License Open Source

Everything you need.
Nothing you don't.

🌐

Zero-install client

Open a URL on your phone — that's it. Works on any OS, any browser. Android, iOS, Windows, Linux. No app store, no Bluetooth pairing, no nonsense.

🔒

LAN only

Your keystrokes never leave your network. No relay servers, no cloud, no telemetry. iControl works entirely between your devices on the same Wi-Fi.

Native Swift backend

Pure Swift with zero external dependencies. Direct access to macOS APIs means native cursor acceleration through the HID pipeline — not simulated. Feels like real hardware.

🪶

<1 MB total

The entire app — Swift binary, web server, full UI, and all icons in every size — weighs under a megabyte. Flat icon design, zero runtime frameworks.

⌨️

Full keyboard replica

A complete Magic Keyboard layout with sticky modifiers, Caps Lock, Fn layer, and F1–F12 system shortcuts. Type, compose, or trigger any shortcut your Mac understands.

🎛️

Opinionated controls

Five tabs purpose-built for different contexts: General, Type, Media, Apps, System. Modifier keys, clipboard bridge, cursor pad, app launcher — it's all there.

Every control you'd
reach for.

Five tabs, zero compromises. From media playback to full system shortcuts — it covers the controls that actually matter when your laptop is across the room.

Touchpad

  • 1-finger move + acceleration
  • 2-finger scroll
  • Tap, double, triple-tap
  • Drag to select
  • Left, middle, right click

Media

  • Play / Pause
  • Next / Previous track
  • Volume up / down / mute
  • Volume slider
  • iPod wheel interface

Type

  • Full Magic Keyboard layout
  • Sticky modifier keys
  • Compose + Send mode
  • Cursor pad for text navigation
  • Fn layer (F1–F12)

System

  • Mission Control, Launchpad
  • App Switcher, Spotlight
  • Siri, Screenshot toolbar
  • Brightness, Minimize, Fullscreen
  • Undo / Redo, Copy / Paste

Simple architecture.
On purpose.

Phone browser
WebSocket
Swift server
macOS APIs
System input
01 — INSTALL

Download & run

Open the .dmg, drag iControl to your Applications folder, and launch it. It lives in the menu bar — no Dock icon, no splash screen. Grant Accessibility permission when prompted.

02 — CONNECT

Scan & open

Tap the menu bar icon to see your QR code. Scan it — your token is already embedded, no typing required. Or open your-mac.local:4040 in any browser.

03 — CONTROL

You're in

The web UI loads instantly. Add it to your home screen as a PWA for one-tap access. Your token is saved — future sessions reconnect silently.

iControl does one thing: send input from your phone to your Mac.

Built out of frustration with subscription-gated, ad-riddled remote control apps that charge recurring fees for something that doesn't continuously cost them anything. No frameworks, no package managers, no build steps on either side. The entire project is readable in an afternoon. Fork it, skin it, make it yours.

You decide who
gets in.

Default

Token — your devices

The QR code already contains your personal token. Scan it once and your device is authenticated permanently. Future reconnects are silent — no prompts, no friction.

Stored in localStorage · Survives app restarts · Invalidated on Regenerate
Guest

Request Access — guests

No token? Tap Request Access. A dialog appears on your Mac — click Allow or Deny. Approved guests get a session token that lasts until they close the browser tab.

In-memory only · Cleared on app restart · One approval per session
Open mode

Open — no auth

Disable authentication entirely for trusted environments — presentations, home setups where everyone present is welcome. Switching to Open requires Touch ID or your Mac password.

Requires biometric confirmation · Switching back auto-generates a new token
Revocation

Regenerate Token

One tap in the menu bar generates a new token and immediately invalidates all previously connected devices — your own included. Scan the new QR code to reconnect.

Clears all sessions · Only available in Secure mode
Menu bar
Connection Security Switch between Secure and Open mode
Regenerate Token Invalidate all connections instantly

Minimal attack surface.
By design.

🏠

LAN only

iControl only accepts connections from your local network. No port forwarding, no DDNS, no exposure to the internet — physically impossible to reach from outside.

📡

One-way data flow

The client sends commands. The Mac executes them. The only data returned is connection state and current volume. No screen data, no file access, ever.

🚫

No accounts, no cloud

Nothing to sign up for, nothing to leak. No analytics, no telemetry, no third-party SDKs. Once downloaded, iControl exists entirely on your machine.

🔐

Whitelisted command set

Commands are validated against a strict whitelist before execution. The server never evaluates arbitrary code or exposes the filesystem.

Open source.
No strings attached.

Download the latest release or build from source.

<1 MB download macOS 13 Ventura or later Any device with a modern browser Same Wi-Fi network MIT Licensed