Use the same ssh command pattern!
Suppose we want to use the CLI for the following SSH URL:
Just replace ssh with the CLI binary:
Robust, auto-reconnecting tunnels for HTTP(S), TCP, UDP and TLS. Start them on boot, and open a remote terminal on the machine from your browser.

Installs the latest Pinggy CLI, or updates an older one, and puts pinggy on your PATH.
No sudo or administrator rights needed. After installing, it signs this machine in as a Pinggy Device, so you can open a terminal on it from the dashboard. Press Ctrl+C at the email prompt to skip that step.
Installs the CLI as a global npm package and needs Node.js 22 or newer. Use it for a package-managed setup, or on Alpine and other musl-based systems, where the Linux binaries don't run.
Download the latest stable CLI or browse older versions below.
After downloading the binary, rename it to pinggy.exe and run it from the command line:
ren pinggy-win-x64.exe pinggy.exe pinggy.exe -h
Replace pinggy-win-x64.exe with pinggy-win-arm64.exe if you downloaded the ARM64 build.
After downloading the binary, rename it to pinggy, make it executable, and run it:
mv pinggy-macos-arm64 pinggy chmod +x pinggy ./pinggy -h
Replace pinggy-macos-arm64 with pinggy-macos-x64 if you downloaded the Intel build.
After downloading the binary, rename it to pinggy, make it executable, and run it:
mv pinggy-linux-x64 pinggy chmod +x pinggy ./pinggy -h
Replace pinggy-linux-x64 with pinggy-linux-arm64 if you downloaded the ARM64 build.
Suppose we want to use the CLI for the following SSH URL:
Just replace ssh with the CLI binary:
Every tunnel runs in a background daemon, so you can detach and manage it later:
# start a tunnel detached, then close the terminal
pinggy -l https://localhost:8000 --b
pinggy ps
pinggy stop my-tunnel
pinggy attach my-tunnelKeep tunnels running across reboots with a system service: