Skip to content

Installation

Filip Penezic edited this page Oct 28, 2026 · 1 revision

Installation

Generated from the README's Install section; it tracks the latest release.

Every release ships a single binary per platform. Grab it from Releases or sshtool.app.

Linux

The app draws its window with GTK 4 and WebKitGTK 6.0, which are not bundled - bundling a browser engine would mean shipping (and patching) several hundred MB of GTK, mesa and WebKit, and you would stop getting security updates through your package manager. Install them first:

sudo pacman -S webkitgtk-6.0 gtk4                 # Arch / CachyOS
sudo apt install libwebkitgtk-6.0-4 libgtk-4-1    # Debian / Ubuntu
sudo dnf install webkitgtk6.0 gtk4                # Fedora / RHEL

Without them the binary fails in the dynamic loader with libwebkitgtk-6.0.so.4: cannot open shared object file, before any of our code runs.

Then make it executable and run it:

chmod +x ssh-tool-linux-amd64
./ssh-tool-linux-amd64

It will offer to add itself to your applications menu - that copies the binary to ~/.local/bin and registers the launcher entry and icon, with no root. You can do the same later from Settings > Desktop integration, and undo it there too. build/linux/install-user.sh does the same from a shell if you prefer.

Or install a package, which pulls in GTK and WebKitGTK by itself and updates with the system. Every release attaches a .deb (Debian / Ubuntu) and an .rpm (Fedora), and repo.sshtool.app serves them as a signed apt and dnf repository, so apt upgrade / dnf upgrade bring new versions:

# Debian / Ubuntu
curl -fsSL https://repo.sshtool.app/ssh-tool.asc | sudo gpg --dearmor -o /usr/share/keyrings/ssh-tool.gpg
echo 'deb [signed-by=/usr/share/keyrings/ssh-tool.gpg] https://repo.sshtool.app/deb stable main' | sudo tee /etc/apt/sources.list.d/ssh-tool.list
sudo apt update && sudo apt install ssh-tool

# Fedora (RHEL 10 and its rebuilds have no webkitgtk6.0 package)
sudo tee /etc/yum.repos.d/ssh-tool.repo <<'EOF'
[ssh-tool]
name=ssh-tool
baseurl=https://repo.sshtool.app/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://repo.sshtool.app/ssh-tool.asc
EOF
sudo dnf install ssh-tool

Windows

One .exe, no runtime and no installer. WebView2 ships with Windows 10 and 11. It offers the same thing on first run: a copy into %LOCALAPPDATA%\Programs\ssh-tool and a Start Menu shortcut, no administrator rights.

Android

Every release attaches ssh-tool-android-arm64.apk (arm64 phones and tablets, DeX-ready). Download it on the phone, allow your browser or file manager to install unknown apps when Android asks, and open it. A newer APK installs over the old one and keeps your data; the in-app updater does not cover Android yet. What differs from desktop: Android / mobile in the guide.

macOS

No release build yet: a distributed macOS app needs an Apple Developer ID and notarisation, which the project does not have. It builds and runs from source. The quickest way is the build script, which asks a few questions, then clones, builds and installs the app and the VPN plugins you pick:

curl -fsSLO https://raw.githubusercontent.com/fpenezic/ssh-tool/main/scripts/macos-build.sh
bash macos-build.sh

By hand: install the build requirements plus the Xcode command line tools (xcode-select --install), then:

task darwin:build      # bin/ssh-tool.app
task darwin:package    # bin/ssh-tool.dmg

The in-app updater and the VPN plugin downloads do not cover macOS; a plugin built from ssh-tool-plugins and placed in the app's plugins folder is picked up. Step by step, plugins and where they go included: docs/macos.md.

Updates

ssh-tool updates itself: Help > Check for updates downloads the new build and swaps it in place, on Windows and Linux alike. It works from anywhere your user owns - ~/.local/bin, %LOCALAPPDATA%, the desktop, anywhere in $HOME.

It will not overwrite a binary owned by a package manager (/usr/bin and friends), and says so rather than failing: that install updates through the package manager instead.

Clone this wiki locally