Skip to main content
VPNCLI is Monolex’s direct machine-connectivity CLI. A small vpncli client controls the vpnclid daemon to provide interactive shell, one-shot execution, file transfer, TCP/UDP tunneling, roaming mosh sessions, and port sharing across machines without making SSH the product control plane. The 0.1.48 dispatcher contains 21 operational root commands; vpnclid is the companion daemon, not a second user command surface. Published contract: vpncli 0.1.48, OpenCLIs build 2026-07-18-235157. The executing macOS, Linux, and Windows x86-64 binaries, registry, and public CDN metadata agree on this release. The Windows payloads report Authenticode NotSigned; that is a signature diagnostic, not a publication gate.

Quick Start

On a machine that should accept shells, run vpncli shell host once or install the service while logged in so shell hosting starts automatically.

Connect and Control

Set VPNCLI_SHELL_TRANSPORT=relay only for transport diagnosis when you need to force the relay lane. It is not a performance default.

Node and Presence Management

Presence states have precise meanings: An online daemon advertises reachability, while shell and share capabilities come from daemon workers. If ping fails, inspect service status and daemon logs on the target before changing client-side aliases.

Port Sharing

Authentication, Daemon, and Service

login, API-key login, and Monolex import accept --force when existing local auth should be replaced. OTP shapes also support explicit email/device identity options. logout stops the local daemon before clearing device, pending-login, node, and inventory state. Service installation follows the current-user supervisor: the macOS service backend, a systemd user service on Linux, or a Scheduled Task on Windows. It points at the stable .openclis/bin/vpnclid path and enables shell-host autostart only when login state already exists.

Identity and Parser Behavior

The dispatcher scans later argv for --help/-h before any operational handler, so vpncli share --help does not publish a share. Other flags are parsed manually by each handler. A malformed TCP --listen can fall back to stdio mode; use a validated numeric value in automation.

Security and Transport Boundary

Data-plane commands use DTLS peer-to-peer protection when their WebRTC lane is active. Interactive shell adds P-256 ECDH plus AES-GCM application encryption, so shell bytes remain end-to-end protected on direct-TCP and relay-data fallbacks as well. Registry, presence, share, and auth commands use the HTTPS control plane rather than a WebRTC data channel. The control plane can cache recently validated JWTs; installed clients prefer the dedicated vpncli-api-key vault entry for node operations when available. WebRTC success, daemon heartbeat, hosted capability, and command success are separate proofs. For a deployment smoke, verify service status, status, resolve, ping, and one real exec or cp operation.

Published Payload Matrix

The archive-extracted payload hashes are independently pinned below. There is no macOS Intel or Windows ARM64 artifact in this build. Windows 11 Smart App Control or WDAC can reject an unsigned new hash on a particular host even when its SHA-256 and runtime smokes pass. The 0.1.48 Windows executables report Authenticode NotSigned, but this does not make the artifact unavailable and no longer blocks publication. Keep host execution policy, CDN availability, installation success, and runtime identity as separate proof layers. Source tag v0.1.48 points to commit 016ef3c648036757324909dcd02ef20c779eac38. This release predates the source_commit fields now used by newer OpenCLIs metadata, so tag ancestry, archive hashes, runtime versions, code signatures, and real transport smokes remain separate proof layers.

Relationships