Lock your Mac with one tap, or just walk away.
Amado (雨戸) are the sliding shutters that close a Japanese house. One tap closes your Mac the same way. Walk away with your iPhone and Amado can close it automatically.
- One tap, everywhere: Lock from the iPhone app, Apple Watch, a Home Screen widget, or Control Center.
- Automatic when you leave: Bluetooth proximity lets the Mac lock itself when you walk away with your iPhone.
- Fast on your LAN: Bonjour discovery and a direct authenticated command, with no account or hosted service.
- Remote when you choose: Bring your own HTTPS tunnel. Amado never proxies commands through a service operated by this project.
- Authenticated pairing: QR pairing provisions a 256-bit secret used for HMAC-SHA256 authentication, timestamp checks, and replay protection.
Apple Watch ── WatchConnectivity ──▶ iPhone ─┬─ Bonjour + TCP ───────▶ Mac
Widget / Control Center / iPhone app ────────┤
└─ HTTPS tunnel ───────▶ Mac
Nearby iPhone ───────── Bluetooth proximity ────────────────────────▶ Mac
The iPhone client tries the local network first and uses the paired Mac's
optional tunnel only when LAN delivery is unavailable. The tunnel forwards to a
loopback-only HTTP listener on 127.0.0.1:51521. Use a control when you want an
immediate lock. Enable proximity auto-lock when walking away should be enough.
See Security for the trust model and protocol boundaries.
Install the macOS agent with Homebrew:
brew install --cask PangMo5/tap/amadoOr download it from GitHub Releases. Sparkle checks for updates in the background, and Check for Updates… is available from the menu-bar item. The companion iPhone app, widget, and Watch app are distributed together through TestFlight.
- Launch Amado on the Mac and enable Launch at Login if wanted.
- Open Settings › Pairing › Reveal pairing code.
- In the iPhone app, scan the QR code.
- Use the app, widget, Control Center control, or Watch app to lock the Mac.
- Optionally enable Auto-lock so leaving with the iPhone locks it for you.
Most settings are available in the Mac app. Non-sensitive values also live at
~/.config/amado/config.toml (or $XDG_CONFIG_HOME/amado/config.toml) and are
reloaded when the file changes. Pairing secrets stay in Keychain.
| Setting | Default | Purpose |
|---|---|---|
remote_host |
"" |
Public hostname of your HTTPS tunnel. Empty is LAN-only. |
proximity_auto_lock |
false |
Lock when the selected iPhone leaves |
proximity_far_rssi |
-56 |
Far threshold in dBm |
proximity_grace_seconds |
2 |
Time beyond the threshold before locking |
proximity_smoothing |
3 |
Number of RSSI samples to average |
See the complete config.toml reference,
pairing guide, remote access guide,
and proximity auto-lock guide.
export TUIST_DEVELOPMENT_TEAM=YOUR_TEAM_ID
mise install
make bootstrap
open Amado.xcworkspace- Tuist-generated Xcode workspace
- The Composable Architecture and Sharing
- Hummingbird for the loopback HTTP endpoint
- Sparkle for macOS updates
- WidgetKit, App Intents, and WatchConnectivity
- Swift Testing and strict Swift 6 concurrency
Mozilla Public License 2.0. MPL-2.0 is file-level copyleft: changes to MPL-covered files remain under MPL-2.0, while new files may use another compatible license. Executable distribution is allowed as long as recipients can access the covered source.