Install From PyPI
Furious is published on PyPI as Furious-GUI. A normal installation also
installs PySide6 and the supported native core bindings automatically; the GUI and cores do not need to be installed
separately.
Note
Supported binary wheels already contain the compiled native components. Most users do not need Go, CMake, GCC, Clang, MinGW, or another compiler toolchain.
Install
A virtual environment is recommended so Furious and its dependencies remain isolated, but it is not required.
Create a virtual environment:
python -m venv .venv
Activate it on Windows PowerShell:
.\.venv\Scripts\Activate.ps1
Or on Linux and macOS:
source .venv/bin/activate
Upgrade pip and install Furious:
python -m pip install --upgrade pip
python -m pip install Furious-GUI
Launch the application:
Furious
You can also launch the installed package directly:
python -m Furious
What pip Installs
Furious-GUI declares its runtime dependencies directly. The installation includes:
PySide6-EssentialsandPySide6-Addonsfor the GUI;Xray-corefor the Xray backend;hysteriafor Hysteria 1;hysteria2for Hysteria 2;tun2socksfor application-managed TUN mode;- the remaining cross-platform and platform-specific Python dependencies.
There are no core-related optional extras and no separate core-installation step. The native binding wheels contain the corresponding Go core and C++ Python extension.
Furious does not pin a specific PySide6 release. pip selects a PySide6 version compatible with the chosen Python and platform. This replaces the historical fixed “PySide6 6.1.0 minimum” guidance.
Compatibility
Furious declares Python 3.8 or newer in its package metadata. That lower bound is not a claim that every Python, Qt, operating-system, and architecture combination is tested. The current source-test workflow uses ordinary CPython 3.13 with PySide6 6.8.3 on Windows, Linux, and macOS. An unpinned PyPI installation may resolve a different Qt release.
Binary availability depends on every dependency. As checked on 2026-09-19, PySide6 6.11.2 requires Python 3.10–3.14 and publishes wheels with these platform tags:
| Platform | Architectures | Qt wheel requirement |
|---|---|---|
| Windows | x86-64, ARM64 | Matching 64-bit Windows wheel |
| Linux | x86-64 | glibc 2.34 or newer |
| Linux | ARM64 | glibc 2.39 or newer |
| macOS | Intel, Apple Silicon | macOS 13 or newer |
These describe that Qt release, not the minimum OS for every Furious package. Older Python or operating-system versions may resolve older dependencies; wheel availability alone does not prove runtime compatibility. The packaged applications use their own selected Python/Qt builds and have different requirements.
Check resolution for your actual interpreter and platform without installing anything:
python -m pip install --dry-run --only-binary=:all: Furious-GUI
Important limits:
- PyPy and other Python implementations are not supported by the native binding/PySide6 wheel set.
- Free-threaded CPython is not a supported Furious installation even though some individual core bindings publish free-threaded wheels; PySide6 does not currently publish matching free-threaded wheels.
- The native bindings do not publish 32-bit wheels.
- Linux wheels target glibc-based manylinux systems, not musl-based distributions such as Alpine Linux.
- The special Windows 7-compatible PySide6 and Python builds used by Furious binary releases are not installed from PyPI. Use a Windows 7 artifact from GitHub Releases instead.
If No Compatible Wheel Is Available
When pip finds a matching wheel, installation is a direct download and no compiler is involved. If it prints messages
such as Building wheel for Xray-core, hysteria, hysteria2, or tun2socks, then no compatible binary wheel was
selected and pip is attempting the exceptional source-build path.
You can require wheels and fail immediately instead of compiling:
python -m pip install --only-binary=:all: Furious-GUI
First upgrade pip and confirm that the Python implementation, version, operating system, architecture, and Linux libc match the selected dependency wheels described in the compatibility section. Choosing a compatible CPython build is usually simpler than compiling the bindings.
Building Native Bindings From Source
Source builds are intended for binding development or environments without matching wheels. All four bindings use a native Go archive plus a C++/pybind11 extension. Use the build instructions and Go module requirements from the exact binding release you are compiling; toolchain requirements change independently of Furious.
For example, Xray-core-python tracks its Go requirement in
xray-go/go.mod, while hysteria2-python uses
hysteria2-go/app/go.mod. Do not assume one Go version works for every binding release.
pip's isolated build environment installs the declared Python build tools—CMake, pybind11, setuptools, and wheel—when
compatible distributions are available. Go and a native compiler must be installed separately and available in
PATH.
Use GCC or Clang on Linux and Apple Clang on macOS. The binding projects use MinGW-w64 on Windows x86-64 and LLVM-MinGW
on Windows ARM64; MSVC and Cygwin are not their supported build paths. If Go module downloads are blocked on your
network, configure GOPROXY before starting the source build.
See the binding repositories for current build details:
Troubleshooting
pip cannot find a compatible distribution
Check the interpreter and architecture:
python -c "import platform, sys; print(sys.version); print(platform.machine()); print(platform.python_implementation())"
Then upgrade pip and retry. If matching wheels are unavailable for the environment, use a compatible CPython build or a prebuilt application from GitHub Releases.
pip unexpectedly starts compiling
Cancel the installation, upgrade pip, and retry with --only-binary=:all:. A source build is not required on a
supported wheel combination.
Furious is not found
Make sure the virtual environment is active and verify the installation:
python -m pip show Furious-GUI
python -m Furious
If python -m Furious works, the environment's scripts directory is not active or is missing from PATH.