Skip to content

Installation

Note

On Linux, suve requires GTK3 and WebKit2GTK for GUI support. Use the CLI/TUI-only version if you don't need the desktop GUI. The keyboard-driven TUI (--tui) is pure Go and ships in every build, including the CLI/TUI-only one — only the desktop GUI (--gui) needs the GTK3/WebKit2GTK dependencies.

Using mise (macOS/Linux/Windows)

suve is installable directly from GitHub Releases via mise's github backend — no extra registry required:

# Full version (CLI/TUI + GUI)
mise use -g "github:mpyw/suve"

# CLI/TUI-only version (no GUI dependencies, recommended for Linux. Not available on macOS/Windows)
mise use -g "github:mpyw/suve[matching=cli]"

Tip

Committing to a shared mise.toml used across OSes? Use a single cross-platform rule instead:

[tools]
"github:mpyw/suve" = { version = "latest", matching_regex = "(darwin|windows|cli_[0-9.]+_linux)" }

Using aqua (macOS/Linux/Windows)

suve is available in the standard aqua registry:

aqua g -i mpyw/suve

The registry picks the right asset per platform automatically: the self-contained GUI build on macOS/Windows, and the dependency-free CLI/TUI-only static build on Linux (so --gui is not available via aqua on Linux).

Using Homebrew (macOS/Linux)

# Full version (CLI/TUI + GUI)
brew install mpyw/tap/suve

# CLI/TUI-only version (no GUI dependencies, recommended for Linux)
brew install mpyw/tap/suve-cli

Using Scoop (Windows)

scoop bucket add mpyw https://github.com/mpyw/scoop-bucket.git
scoop install suve

Using npm (macOS/Linux/Windows)

# Global install
npm install -g @mpyw/suve

# Or run without installing
npx @mpyw/suve --version

The right prebuilt binary is pulled in automatically per platform: the self-contained GUI build on macOS/Windows, and the dependency-free CLI/TUI-only static build on Linux (so --gui is not available via npm on Linux).

Tip

Ideal for cloud shells. AWS CloudShell, Google Cloud Shell, and Azure Cloud Shell all ship Node.js, so npx @mpyw/suve … runs suve with nothing to download or install — and the dependency-free CLI/TUI-only build is exactly what you want there (no GUI). Each shell's ambient credentials are auto-detected too; see Cloud Shell support.

Using curl or wget (macOS/Linux)

No package manager? Install the latest release straight from GitHub Releases with whichever downloader your host already has:

# curl
curl -fsSL https://raw.githubusercontent.com/mpyw/suve/main/scripts/install.sh | sh

# wget
wget -qO- https://raw.githubusercontent.com/mpyw/suve/main/scripts/install.sh | sh

The script detects your OS and CPU architecture, downloads the matching release asset over HTTPS, verifies its SHA-256 against the release's checksums.txt, and installs the suve binary to /usr/local/bin (using sudo if that directory needs elevation, or falling back to ~/.local/bin when no sudo is available). On Linux it auto-selects the build: the GUI build when a system WebKit2GTK (4.1 or 4.0) is detected, otherwise the dependency-free CLI/TUI-only static build.

Everything below is optional — pick the line you want (swap curl -fsSL for wget -qO- if that's what you have):

BASE=https://raw.githubusercontent.com/mpyw/suve/main/scripts/install.sh

curl -fsSL "$BASE" | VERSION=0.0.0 sh                        # pin a specific version
curl -fsSL "$BASE" | sh -s -- --cli                          # force CLI/TUI-only
curl -fsSL "$BASE" | sh -s -- --gui                          # force the GUI build
curl -fsSL "$BASE" | SUVE_INSTALL_DIR="$HOME/.local/bin" sh  # install to a custom dir
curl -fsSL "$BASE" | sh -s -- --deb                          # native .deb via apt (Debian/Ubuntu)
curl -fsSL "$BASE" | sh -s -- --rpm                          # native .rpm via dnf (Fedora/RHEL)

--deb / --rpm install a native package instead of a bare binary — tracked by apt/dnf for clean upgrade/removal, with GUI dependencies resolved for you. They also default to auto (GUI when WebKit2GTK is already present, else CLI-only); add --gui/--cli to force a build.

Tip

Prefer to read before you run? Download, inspect, then execute:

curl -fsSLO https://raw.githubusercontent.com/mpyw/suve/main/scripts/install.sh
less install.sh && sh install.sh

Manual .deb / .rpm install (without the script)

Prefer to do it by hand? The --deb / --rpm flags above are just a wrapper around downloading the package from GitHub Releases and handing it to your package manager:

Debian/Ubuntu (.deb):

export VERSION=0.0.0
export ARCH=amd64  # or arm64
export WEBKIT_SUFFIX=""  # use "_webkit2_41" for Ubuntu 24.04+

# CLI/TUI-only (recommended, no GUI dependencies)
curl -LO "https://github.com/mpyw/suve/releases/download/v${VERSION}/suve-cli_${VERSION}-1_${ARCH}.deb"
sudo apt install "./suve-cli_${VERSION}-1_${ARCH}.deb"

# Full version (CLI/TUI + GUI; apt resolves GTK3 and WebKit2GTK)
curl -LO "https://github.com/mpyw/suve/releases/download/v${VERSION}/suve${WEBKIT_SUFFIX}_${VERSION}-1_${ARCH}.deb"
sudo apt install "./suve${WEBKIT_SUFFIX}_${VERSION}-1_${ARCH}.deb"

Note: Ubuntu 22.04/Debian uses webkit2gtk-4.0 (default). Ubuntu 24.04+ uses webkit2gtk-4.1 (set WEBKIT_SUFFIX="_webkit2_41").

Red Hat/Fedora (.rpm):

export VERSION=0.0.0
export ARCH=x86_64  # or aarch64
export WEBKIT_SUFFIX=""  # use "_webkit2_41" for Fedora 40+

# CLI/TUI-only (recommended, no GUI dependencies)
curl -LO "https://github.com/mpyw/suve/releases/download/v${VERSION}/suve-cli-${VERSION}-1.${ARCH}.rpm"
sudo dnf install "./suve-cli-${VERSION}-1.${ARCH}.rpm"

# Full version (CLI/TUI + GUI; dnf resolves GTK3 and WebKit2GTK)
curl -LO "https://github.com/mpyw/suve/releases/download/v${VERSION}/suve${WEBKIT_SUFFIX}-${VERSION}-1.${ARCH}.rpm"
sudo dnf install "./suve${WEBKIT_SUFFIX}-${VERSION}-1.${ARCH}.rpm"

Note: Fedora 39 and earlier uses webkit2gtk-4.0 (default). Fedora 40+ uses webkit2gtk-4.1 (set WEBKIT_SUFFIX="_webkit2_41").

Using go install (CLI/TUI only)
go install github.com/mpyw/suve/cmd/suve@latest

Note: go install builds the CLI/TUI only. The desktop GUI requires pre-built assets that are not included in the Go module. For GUI support, use a package manager or build from source.

Using go tool (CLI/TUI only, Go 1.27+)
# Add to go.mod as a tool dependency
go get -tool github.com/mpyw/suve/cmd/suve@latest

# Run via go tool
go tool suve param show /my/param
Building from Source

For platforms without pre-built packages (e.g., Arch Linux) or if you need the latest development version with GUI:

Requires Go 1.27+.

git clone https://github.com/mpyw/suve.git
cd suve

CLI/TUI only:

mise build-cli
# Binary: bin/suve

CLI/TUI + GUI (requires Node.js for the frontend build):

mise build-gui
# Binary: bin/suve  (run `suve --gui`)

Build dependencies for GUI:

Platform Dependencies
All Node.js (for frontend build)
macOS Xcode Command Line Tools
Windows WebView2 Runtime (usually pre-installed)
Linux build dependencies and webkit2gtk-4.1 support

Linux requires GTK3 and WebKit2GTK:

Platform Dependencies
Ubuntu 22.04/Debian sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev
Ubuntu 24.04+ sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev
Fedora 39 sudo dnf install gtk3-devel webkit2gtk4.0-devel
Fedora 40+ sudo dnf install gtk3-devel webkit2gtk4.1-devel
Arch Linux sudo pacman -S gtk3 webkit2gtk-4.1

For webkit2gtk-4.1 (Ubuntu 24.04+, Fedora 40+, Arch Linux), add the webkit2_41 build tag via SUVE_GUI_TAGS:

SUVE_GUI_TAGS=production,webkit2_41 mise build-gui