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
vpncli shell host once or install
the service while logged in so shell hosting starts automatically.
Connect and Control
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 dedicatedvpncli-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.