A cross‑platform, actively‑maintained graphical client for the Shadowsocks proxy.
Originally forked from shadowsocks-qt5, this project now targets Qt 6, C++17 (soon C++20), and brings numerous UX, security and build‑system improvements. A Qt 5 toolchain can still be used if Qt 6 is unavailable, but Qt 6 remains the preferred and better‑tested option.
- Native Qt 6 UI (Wayland & X11, Windows, macOS tested)
- Multiple server profiles with tags & search | QtShadowsocks | ≥ 2.0.0 | Provides core controller library (build against Qt 6; see note below) |
QtShadowsocks note: the GUI prefers a Qt 6 build of
libQtShadowsocks(v2.0.0+). If you only have Qt 5 installed, the CMake configuration will fall back to a Qt 5 build of the library. To avoid errors such asQt5::Core not found, make sure the Qt version of your installedlibQtShadowsocksmatches the Qt toolchain discovered by CMake (for example, use theqt6branch inshadowsocks/libQtShadowsockswhen building with Qt 6).
-
Built‑in QR scanner / screenshot recogniser
-
Latency tester, traffic stats & data‑cap reset reminders
-
SOCKS5 and HTTP proxy modes
-
System‑tray indicator with dark‑/light‑theme icons
-
Import / export:
ss://&ssd://URIs- Clash‑/Surge‑style
gui-config.json
-
Auto‑start on login (optional)
-
i18n with gettext / Qt Linguist – contributions welcome!
На чистой Debian-машине эти шаги можно автоматизировать с помощью scripts/bootstrap-debian.sh,
который подтянет системные зависимости (включая qmake/Qt 5 для сборки QtShadowsocks и выставит Qt5_DIR),
соберёт QtShadowsocks и выполнит сборку проекта:
$ ./scripts/bootstrap-debian.sh### Prerequisites
| Dependency | Minimum version | Notes |
|---|---|---|
| CMake | 3.16 | Use ‑‑preset or classic workflow |
| Qt | 6.5 | 6.6 recommended (Widgets, Network, DBus) |
| QtShadowsocks | ≥ 2.0.0 | Provides core controller library |
| libqrencode | any | QR code generation |
| zbar | any | QR code scanning |
On Debian/Ubuntu, the Qt 6 development files live in qt6-base-dev and the
pkg-config helpers ship with qt6-base-dev-tools. If CMake cannot locate Qt 6
(e.g. Qt6Config.cmake not found), install these packages and, if necessary,
export CMAKE_PREFIX_PATH=/usr/lib/qt6/cmake or point Qt6_DIR at the Qt 6
lib/cmake/Qt6 directory. When falling back to Qt 5, install qtbase5-dev
and set Qt5_DIR or CMAKE_PREFIX_PATH accordingly so that CMake can find the
Qt 5 configuration files.
# Clone
$ git clone https://github.com/juriyivanov/shadowsocks-gui.git
$ cd shadowsocks-gui
# Configure + build + install (Release)
$ cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j$(nproc)
$ sudo cmake --install buildTip: on Windows, use MSVC 2022 with the Qt online installer; on macOS, run
brew install qt6 zbar qrencodefirst.
| Platform | Status | Notes |
|---|---|---|
| Linux | AppImage & Flatpak (work‑in‑progress) | Built via GH Actions CI |
| Windows | Portable ZIP & Installer (EXE) | Signed with GitHub CI secrets |
| macOS | dmg bundle |
Notarised build planned |
- Default cipher:
aes-256-gcm(changeable per profile). Legacy algorithms such as RC4‑MD5 are still loadable for compatibility but strongly discouraged. - Config files are stored in plain text; consider full‑disk encryption if this is a concern.
- Move to C++20 modules &
cmake_presets.json - Publish Flatpak & Homebrew recipes
- Integrate automatic update checker
- Finish dark‑theme polish and selectable icon packs
- Fork & create feature branch (
git checkout -b feat/my‑feature). - Run
clang-formaton changed files (.clang-formatprovided). - Ensure all CI jobs pass (Ubuntu 22.04, Windows, macOS workflows).
- Open a pull request – one of the maintainers will review ASAP.
Translations live in translations/.
Add or update <lang>.ts, then run lupdate / lrelease.
This project is distributed under the LGPL v3.0. See the LICENSE file for full text.