Installation - dathere/qsv GitHub Wiki

Installation

Tier: Beginner

This page covers the five ways to install qsv. For the absolute fastest path, download a prebuilt binary (Option 1). For a graphical alternative, see qsv pro.

Note

Looking for the MCP server or Claude Cowork plugin? Those are separate installations described in the qsv MCP Server Getting Started guide. See also MCP Server and Claude Cowork Plugin.

Option 0 โ€” qsv pro (GUI)

Prefer a graphical interface? qsv pro is the GUI companion to qsv: drop a spreadsheet and explore it interactively. Available for Windows, macOS, and Linux. See qsv pro Spotlight for what it adds over the CLI.

Option 1 โ€” Prebuilt binaries (fastest)

Full-featured prebuilt binaries for Linux, macOS, and Windows ship with every release. They include all features except Python (use qsvpy* variants for Python).

As of 21.1.0, prebuilt binaries on native targets are Profile-Guided-Optimization (PGO) tuned for extra performance out of the box โ€” no action required. (The 24.0.0 Apple Silicon build was the exception, shipped without PGO; it is restored in Unreleased (after 24.0.0).) See Performance Tuning โ†’ PGO-optimized prebuilt binaries.

As of 22.0.1, the prebuilt binaries also include the new viz command (with static PNG/SVG/PDF export), across the little-endian targets โ€” including the portable and qsvpy* builds, which previously shipped a narrower feature set than their release notes implied. See Binary Variants.

Download from the latest release, or browse by platform at qsv.dathere.com/download.

Platform-specific notes

macOS โ€” binaries are signed with an ad-hoc signature. The first time you run qsv, macOS may quarantine it. Remove the quarantine attribute:

# Replace qsv with qsvmcp, qsvlite, or qsvdp if installing those variants
xattr -d com.apple.quarantine qsv

Alternatively, use Gatekeeper settings to allow the binary.

Windows โ€” A one-click MSI Easy Installer is available. Download the qsv-easy-installer_*.msi and run it, then click Install qsv inside the installer. It downloads the latest qsv and adds it to your PATH.

Important

Upgrade the Easy Installer to v1.1.2 or later before updating qsv to 23.0.1 or later โ€” then confirm with qsv --version.

Installer versions at or below v1.1.1 extract a hardcoded qsvp.exe, the portable binary that is no longer published. Because the installer's update path returns no error, it shows you a "Successfully installed qsv" message regardless.

The symptom is not a crash but an absence: qsv goes missing from your PATH, or silently stays at its old version. If that already happened, install v1.1.2+ and re-run it, or download the x86_64-pc-windows-msvc archive and extract qsv.exe yourself.

Windows on ARM โ€” besides aarch64-pc-windows-msvc, 24.0.0 adds aarch64-pc-windows-gnullvm, which links libunwind/libc++ statically and needs only Windows system DLLs.

Linux โ€” pick the variant matching your libc:

  • linux-x86_64-gnu โ€” most distros (Ubuntu, Debian, Fedora, Arch)
  • linux-x86_64-musl โ€” Alpine, Void Linux, statically-linked deployments. Note that the luau feature is not available in musl builds (see Troubleshooting)
  • linux-aarch64-gnu โ€” ARM64 Linux (Raspberry Pi 4/5, AWS Graviton, Apple Silicon under Linux)
  • linux-aarch64-musl โ€” ARM64 Alpine / static deployments (new in 24.0.0; reduced feature set like x86_64 musl, and no qsvdp/qsvmcp)
  • linux-powerpc64le-gnu โ€” IBM Power servers (CPU optimizations enabled)

SIGILL ("Illegal instruction") on x86_64?

Warning

Breaking in 24.0.0: x86_64 prebuilts require a CPU with AVX2, FMA and BMI1/BMI2 (x86-64-v3, #4649). This covers qsv, qsvlite, qsvmcp and qsvpy* on Linux (gnu and musl) and Windows (msvc and gnu), plus the Debian package and the MCPB bundle. qsvdp is exempt and stays on the portable baseline, because DataPusher+ servers often run on VMs without AVX2. aarch64, ppc64le and s390x prebuilts are unchanged.

Intel Haswell (2013) / AMD Excavator (2015) and newer qualify, but not every newer machine does: Intel Pentium/Celeron/Atom parts up to ~2020, and VMs with a conservative CPU model (QEMU/Proxmox kvm64/qemu64), lack AVX2. Check with grep -o avx2 /proc/cpuinfo | head -1; no output means no AVX2. On such a CPU those prebuilts die with Illegal instruction โ€” that is expected, not a bug.

Do not run qsv --update on a non-AVX2 CPU. It installs a binary that cannot run, and so cannot update itself back. If that already happened, re-download a 23.0.x release from the releases page, or build from source (below), which still defaults to the portable baseline:

cargo install qsv --locked --features all_features

Apple Silicon, Windows-on-ARM, IBM Power, and IBM Z mainframe builds always have CPU optimizations enabled (no SIGILL risk).

Note

The p-suffixed "portable" binaries (qsvp, qsvplite, qsvpdp, qsvpmcp) were retired in 22.0.1 and are no longer in any release archive. Through 23.0.x the regular x86_64 prebuilts targeted the baseline instruction set, so they were equally portable; from 24.0.0 the AVX2 requirement above applies instead. See Binary Variants.

Verifying the integrity of prebuilt binaries

All prebuilt zip archives are signed with zipsign:

# Install zipsign (once)
cargo install zipsign

# Download the qsv-zipsign-public.key from
#   https://github.com/dathere/qsv/raw/master/src/qsv-zipsign-public.key
# Then verify
zipsign verify zip qsv-<version>-<target>.zip qsv-zipsign-public.key

Self-update

Prebuilt binaries include the self_update feature, so you can update in place:

qsv --update

self_update fetches only from the official releases page and verifies the zipsign signature automatically.

Warning

From 24.0.0, x86_64 prebuilts require AVX2 (details). On an x86_64 CPU without AVX2, don't qsv --update to 24.0.0 or later โ€” it installs a binary that can't run, and so can't update itself back. Check first with grep -o avx2 /proc/cpuinfo | head -1.

Running bare qsv with no command also does a background check for a newer release. That check is throttled to twice a month โ€” a timestamp in the qsv cache directory (QSV_CACHE_DIR, else ~/.qsv-cache) records the last check, so day-to-day use doesn't hit the network. Set QSV_NO_UPDATE=1 to opt out entirely; the opt-out is honored before the cache directory is even touched.

Option 2 โ€” Package managers

Packaging status

# Arch Linux (Extra)
pacman -S qsv

# Homebrew (macOS / Linux)
brew install qsv

# MacPorts (macOS)
sudo port install qsv

# Mise (Linux / macOS / Windows)
mise use -g qsv@latest

# Nixpkgs (Linux / macOS)
nix-shell -p qsv

# Scoop (Windows)
scoop install qsv

# Void Linux
sudo xbps-install qsv

# Conda-forge
conda install conda-forge::qsv

Heads up: these distributions are maintained by volunteers and enable different feature sets. For example, Homebrew enables apply, fetch, foreach, geocode, lens, luau, and to but not all of them. Run qsv --version to see which features are enabled in your install.

Debian / Ubuntu via datHere APT repo

datHere maintains a Debian package for the latest Ubuntu LTS (x86_64):

wget -O - https://dathere.github.io/qsv-deb-releases/qsv-deb.gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/qsv-deb.gpg
echo "deb [signed-by=/usr/share/keyrings/qsv-deb.gpg] https://dathere.github.io/qsv-deb-releases ./" \
  | sudo tee /etc/apt/sources.list.d/qsv.list
sudo apt update
sudo apt install qsv

Note

Since 24.0.0, the qsv Debian package is built for x86-64-v3 and requires AVX2 (see above). The qsvdp package stays on the portable baseline.

Option 3 โ€” Cargo install (cargo install qsv)

If you have Rust installed:

cargo install qsv --locked --features all_features

This builds from crates.io. It's slower than downloading the prebuilt binary and lacks self_update, but it produces a binary matching your exact CPU.

Option 4 โ€” Compile from source

git clone https://github.com/dathere/qsv.git
cd qsv

# Full-featured
cargo build --release --locked --bin qsv -F all_features

# All CPU optimizations for your CPU (non-portable binary)
CARGO_BUILD_RUSTFLAGS='-C target-cpu=native' \
  cargo build --release --locked --bin qsv -F all_features

# Only the features you need (smaller binary)
cargo build --release --locked --bin qsv -F feature_capable,fetch,foreach

Other variants:

cargo build --release --locked --bin qsvmcp -F qsvmcp        # MCP server
cargo build --release --locked --bin qsvlite -F lite         # ~16% size, xsv-compatible
cargo build --release --locked --bin qsvdp   -F datapusher_plus

The compiled binary lands in ./target/release/. See Binary Variants for when to pick each variant, and Performance Tuning for nightly builds.

You'll need a C linker:

  • Ubuntu/Debian: sudo apt install build-essential
  • macOS: xcode-select --install
  • Windows: Visual Studio 2022 with the "Desktop Development with C++" workload, the Windows SDK, and the English language pack

The feature_capable, qsvmcp, lite, and datapusher_plus features are mutually exclusive โ€” see docs/FEATURES.md for the full feature flag matrix.

Shell completion

qsv supports completion in bash, zsh, powershell, fish, nushell, fig, and elvish. Download the script for your shell from qsv.dathere.com/download or follow the step-by-step tutorial at 100.dathere.com.

To customize completions, see contrib/completions/README.md.

Verify the install

qsv --version
qsv --list      # shows all available commands

You're ready! Next:

See also

โš ๏ธ **GitHub.com Fallback** โš ๏ธ