Client Setup
openme client, openme knock, SPA client setup, openme iOS, openme Android, openme Windows, openme macOS, knock command
openme is available on every major platform. Choose your client below.
| Platform | Client | Type |
|---|---|---|
| Linux / macOS / Windows | CLI | Command-line binary |
| iOS 16+ | openme for iOS | Native SwiftUI app |
| macOS 13+ | openme for macOS | Menu-bar app |
| watchOS 9+ | openme for watchOS | Complication + glance |
| Android 10+ | openme for Android | Jetpack Compose app |
| Windows 10+ | openme for Windows | WPF system-tray app |
Profile Config File
All clients share the same YAML profile format, generated on the server with openme add. The CLI reads ~/.openme/config.yaml; mobile and desktop apps import the same YAML via paste or QR scan.
profiles:
default: # used by `openme knock`
server_host: "myserver.example.com"
server_udp_port: 54154
server_pubkey: "base64..." # server's Curve25519 public key
private_key: "base64..." # your Ed25519 private key
public_key: "base64..." # your Ed25519 public key
post_knock: "ssh user@myserver.example.com" # optional (CLI only)
home: # used by `openme knock home`
server_host: "home.example.com"
server_udp_port: 54154
server_pubkey: "base64..."
private_key: "base64..."
public_key: "base64..."The profile named default is used when no profile name is given.
See Client Configuration reference for all fields.
CLI — Linux, macOS, Windows
Install
From a pre-built binary (Linux and macOS):
# Latest release — replace VERSION and ARCH as needed
curl -L https://github.com/merlos/openme/releases/latest/download/openme-linux-amd64 \
-o /usr/local/bin/openme
chmod +x /usr/local/bin/openmeWindows: download openme-windows-amd64.exe from GitHub Releases and add it to your PATH.
From source:
go install github.com/merlos/openme/cli/cmd/openme@latestKnock
# Health check — confirm server is reachable
openme status
# Knock using the default profile
openme knock
# Knock using a named profile
openme knock home
# Open the firewall to a specific IP instead of your source IP
openme knock --ip 10.0.0.5
openme knock --ip 2001:db8::42If post_knock is set in the profile it runs automatically after a successful knock — making openme knock a transparent wrapper around ssh:
post_knock: "ssh -p 2222 user@myserver.example.com"Status Check
openme status # check current rule (requires prior knock)
openme status home # named profile
openme status --knock # knock then check — full end-to-end testScripting
# Inline without post_knock
openme knock home && ssh user@home.example.com
# Custom config file
openme --client-config /etc/myapp/openme.yaml knockiOS App
openme for iOS is a native SwiftUI app for iPhone. Profiles are imported via YAML paste or QR scan from the server.
Install
Download from the App Store or build from source via Xcode:
open apple/openme.xcworkspace
# Select the openme-ios scheme and run on your deviceGetting started
- Tap + to add a new profile
- Choose Paste YAML and paste the block from
openme add, or tap Scan QR to scan the QR code shown byopenme add --qr - Tap the profile row to send a knock
Screenshot: iOS profile list — swipe left to knock, swipe right to delete
Screenshot: iOS QR scanner import screen
macOS Menu-Bar App
openme for macOS lives in the menu bar. One click sends the knock without leaving your current app.
Install
Download from GitHub Releases or build from source:
open apple/openme.xcworkspace
# Select the openme-macos scheme and archiveGetting started
- Launch the app — an openme icon appears in the menu bar
- Click the icon → Add Profile → paste YAML or scan QR
- Click a profile name to knock instantly
Screenshot: macOS menu-bar dropdown showing profile list and knock button
Screenshot: macOS profile import sheet (YAML paste tab)
watchOS App
openme for watchOS lets you knock directly from your wrist via a complication or the app glance.
Install
The watchOS app is distributed alongside the iOS app. Once the iOS app is installed, open the Watch app on iPhone and install openme on your watch from My Watch → General → Available Apps.
Profiles sync automatically from the paired iPhone.
Screenshot: watchOS app showing profile list on Apple Watch
Screenshot: watchOS complication on watch face
Android App
openme for Android is a Jetpack Compose app for Android 10+. It uses the openmekit library internally.
Install
Download the APK from GitHub Releases or build from source:
cd android
./gradlew :app:assembleDebug
adb install app/build/outputs/apk/debug/openme-debug.apkGetting started
- Tap + to add a profile
- Choose Paste YAML or Scan QR to import from
openme addoutput - Tap a profile → Knock to send the SPA packet
Screenshot: Android profile list screen (Material 3, Jetpack Compose)
Screenshot: Android import screen — YAML paste and QR scan tabs
Screenshot: Android knock confirmation — “Knocked successfully” toast
Windows System-Tray App
openme for Windows is a WPF application that runs as a system-tray icon on Windows 10 and 11.
Install
Download openme-windows-x64.zip from GitHub Releases, extract, and run openme-windows.exe. No installer is required.
Getting started
- The app starts minimised to the system tray — look for the openme icon
- Right-click the tray icon → Add Profile → paste the YAML block
- Right-click the tray icon → select a profile → Knock
Screenshot: Windows system-tray context menu with profile list and knock options
Screenshot: Windows profile import dialog (YAML paste)
Next Steps
- Adding more clients —
openme addon the server - Client Configuration reference — all YAML fields
- Protocol Specification — what’s inside the knock packet
```