Releases: vakharwalad23/slate
Release list
slate 1.1.0
slate 1.1.0 makes the phone-to-Mac link end-to-end encrypted and adds QR pairing plus faster discovery.
Encryption is now mandatory
The phone and Mac now run a code-authenticated X25519 + HKDF-SHA256 + ChaCha20-Poly1305 handshake over the same local network link. Every message - auth, commands, app icons, live state, heartbeat - is encrypted. A same-LAN attacker can no longer sniff the token or MITM the connection.
Pairing by QR
The Mac shows a pairing QR; scan it in the app to locate and pair with your Mac in one step. Typing the code by hand still works as a fallback.
Faster, more reliable discovery
A tuned subnet sweep plus an Android UDP broadcast fast path find the Mac quickly and stop leaking sockets on repeated scans.
Update both, together
The app and the helper must match - install BOTH this app (Android APK) and this helper (macOS DMG). An old app against the new helper (or vice versa) will prompt you to update.
Existing pairings keep working: your saved token is preserved, and the first reconnect just runs the new handshake automatically. If you are ever prompted, re-pair by scanning the QR shown on the Mac.
Install
- Android: install
slate-1.1.0.apk. - macOS (Homebrew, recommended):
brew tap vakharwalad23/tap && brew trust vakharwalad23/tap && brew install --cask slate-helper. Quarantine is cleared for you, andbrew upgradekeeps it current. - macOS (DMG): open
slate-helper-1.1.0.dmg, drag SlateHelper to Applications. The build is self-signed (not notarized), so after copying, clear quarantine once:
xattr -dr com.apple.quarantine /Applications/SlateHelper.app - iOS: no prebuilt build - there is no paid Apple Developer account behind slate, so no App Store or TestFlight. You can still install it on your own iPhone with a free Apple ID and Xcode: set a unique
ios.bundleIdentifierinapps/mobile/app.json, runpnpm -F @slate/mobile prebuild, openapps/mobile/ios/slate.xcworkspace, sign with your Personal Team, and Run to your device. Free-provisioned apps stop launching after ~7 days - re-run from Xcode to renew. Full steps: README - iOS on a physical iPhone.
slate v0.1.1
slate v0.1.1
A small update to the phone app. The macOS helper is unchanged from v0.1.0.
What's new
- App picker in macro steps. When you build a macro, the Launch / Activate / Quit app steps now
use the same app picker as the main action editor - pick from your Mac's apps (with their real
icons) instead of typing a bundle id by hand. Manual entry stays as a fallback.
Downloads
- Android:
slate-0.1.1.apk- open it on your phone and allow installing from your browser or
files app when prompted. - macOS helper:
slate-helper-0.1.0.dmg(unchanged since v0.1.0). Drag SlateHelper onto
Applications, then clear quarantine once:xattr -dr com.apple.quarantine /Applications/SlateHelper.app
New to slate? See the user guide.
Heads-up: traffic is not yet end-to-end encrypted (keep the helper on a trusted LAN) - see
Security. App-layer E2E encryption is the next
priority.
slate v0.1.0
slate turns your phone into a programmable Stream Deck for your Mac, over your local network. The
phone shows a grid of buttons; a small macOS menu-bar helper runs each command. Local-network only -
no account, no cloud, nothing leaves your Wi-Fi.
Downloads
- macOS helper:
slate-helper-0.1.0.dmg - Android app:
slate-1.0.0.apk - iOS: build from source (no public build yet).
Install
macOS helper
-
Open the DMG and drag SlateHelper onto Applications.
-
The helper is self-signed (not notarized), so macOS quarantines it on first launch. Clear the flag
once:xattr -dr com.apple.quarantine /Applications/SlateHelper.app
-
Launch it (menu-bar icon, no Dock). To send keystrokes, switch Spaces, cycle apps, or use media
keys, enable it under System Settings -> Privacy and Security -> Accessibility. Launching apps and
changing volume do not need it.
Android
Download the APK, open it on your phone, and allow installing from your browser or files app when
prompted.
Pair and use
Open the app, let it discover the Mac (or enter host:port), tap Pair, and type the 6-digit code
shown in the Mac menu. Add buttons, pick an action and icon, and tap to run them.
Security
Local-network only. Today the link is ws:// plus a per-device token on a trusted LAN, so it is not
encrypted in transit. Application-layer end-to-end encryption (code-authenticated X25519 +
ChaCha20-Poly1305) is the next roadmap item. Do not expose the helper's port to untrusted networks.