Client Setup

Keywords

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/openme

Windows: 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@latest

Knock

# 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::42

If 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 test

Scripting

# Inline without post_knock
openme knock home && ssh user@home.example.com

# Custom config file
openme --client-config /etc/myapp/openme.yaml knock

iOS 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 device

Getting started

  1. Tap to add a new profile
  2. Choose Paste YAML and paste the block from openme add, or tap Scan QR to scan the QR code shown by openme add --qr
  3. 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 archive

Getting started

  1. Launch the app — an openme icon appears in the menu bar
  2. Click the icon → Add Profile → paste YAML or scan QR
  3. 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.apk

Getting started

  1. Tap to add a profile
  2. Choose Paste YAML or Scan QR to import from openme add output
  3. 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

  1. The app starts minimised to the system tray — look for the openme icon
  2. Right-click the tray icon → Add Profile → paste the YAML block
  3. 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

```