A cross-platform sing-box GUI client for Windows, Linux, and macOS built with Tauri 2 + Vue 3
✨ Features • 🏗️ Architecture • 🚀 Quick Start • 🛠️ Development • 📚 Documentation
Sing-Box Windows is a modern desktop client built around the sing-box core. It provides a cleaner workflow for importing subscriptions, switching proxy modes, inspecting runtime state, and managing desktop integration across Windows, Linux, and macOS.
Android users can also check sing-box-windows-android.
- Subscription import: Supports sing-box JSON, Clash/Mihomo YAML, and URI list input (including
tuic://andanytls://). - Proxy modes: Switch between system proxy, TUN mode, and manual mode.
- Runtime visibility: Monitor traffic, active connections, rules, and logs in real time.
- Kernel management: Built-in kernel resource pipeline, version download, and manual kernel import.
- Desktop integration: Tray mode, auto-start, hide-to-tray on autostart, lightweight mode (destroy the main window on close), update checks, and window state persistence.
- Reliability tools: Backup/restore, subscription rollback, update channels, self-heal restart logic, and structured startup diagnostics with actionable failure hints.
- Settings navigation: Tabbed settings grouped by use case (basic preferences, kernel, network/advanced, maintenance, about).
- Localization: Built-in
zh-CN,en-US,ja-JP, andru-RU.
- Frontend: Vue 3 + TypeScript + Pinia + Vue Router + Vue I18n + Naive UI.
- Bridge layer: Tauri
invokecommands for request/response, Tauri events for runtime updates. - Backend: Rust + Tauri 2, with modules split into
core,network,storage,system, andtray. - Storage: SQLite-backed local persistence for app settings, subscriptions, locale, theme, and update preferences.
- Build pipeline:
scripts/tauri-wrapper.mjsinjects target-specific kernel resources beforetauri dev/build.
| Format | Input | Notes |
|---|---|---|
| sing-box JSON | Raw JSON config | Parses top-level outbounds |
| Clash / Mihomo YAML | YAML subscription | Parses proxies and converts supported nodes |
| URI list | vmess://, vless://, trojan://, ss://, hysteria2://, tuic://, anytls:// |
Supports one or multiple nodes |
Supported node types currently include vless, vmess, trojan, shadowsocks, shadowsocksr, socks, http, hysteria2, tuic, and anytls.
- Download the latest package from GitHub Releases.
- Import a subscription on the Subscription page.
- Pick a node on the Proxy page and choose a proxy mode.
- Start the kernel from Home and verify traffic or connections in the related pages.
# Install dependencies
pnpm install
# Recommended on first setup; dev/build also auto-fetches when missing
pnpm kernel:fetch
# Start desktop development
pnpm tauri dev
# Frontend checks
pnpm type-check
pnpm lint
# Backend checks
cd src-tauri && cargo clippy && cargo test
# Build release bundles
pnpm tauri buildAll data stays on the local machine.
- Windows:
%LOCALAPPDATA%\sing-box-windows\ - Linux:
~/.local/share/sing-box-windows/ - macOS:
~/Library/Application Support/sing-box-windows/
The directory typically contains the SQLite database, generated configs, logs, backups, and downloaded kernel metadata.
Issues and pull requests are welcome.
- Report bugs in Issues
- Propose ideas in Discussions
- Keep changes aligned with existing architecture and quality gates
Built with ❤️ by XingGao
Disclaimer: This project is for learning and communication purposes only. Please comply with local laws and regulations.
