Skip to content

Tawreos228/KitsuneVPN

Repository files navigation

Kitsune

Kitsune

A Windows VPN client that doesn't get in your way.

sing-box Qt Languages License


Kitsune main view

Built on top of sing-box — the same battle-tested core used by major VPN clients. The kernel does the heavy lifting; we make it pleasant to use.


What's inside

🌐  Protocols

  • VLESS · Reality, Vision flow, PQC encryption (mlkem768)
  • VMess · classic + AEAD
  • Trojan · TLS / Reality
  • Shadowsocks · AEAD + 2022 ciphers
  • WireGuard · 1.13 endpoint schema
  • Transports · tcp / ws / grpc / httpupgrade / xhttp

🧭  Routing

  • TUN mode · system-wide capture with auto_route
  • Proxy mode · SOCKS + HTTP on one mixed inbound
  • Per-app rules · 3-state toggle (Auto / VPN / Direct) for any installed exe
  • Profiles · named snapshots, switch in one click
  • Rules import · paste sing-box JSON or Clash YAML
  • Bundled rule-sets · offline-ready (geosite-ru, geoip-ru, ads block)

🛡️  Safety

  • Kill-switch · Windows Firewall blocks all outbound on drop
  • Auto-reconnect · 5-attempt watchdog with intent detection
  • Health-check · every server validated by sing-box check
  • Leak-aware DNS · hijack-dns + remote DoH via tunnel
  • No leftovers · targeted cleanup on start (only our own settings)

✨  Quality of life

  • Seamless server switch · selector outbound + Clash API, no reconnect
  • Subscriptions · base64 / plain, background validation, favorites preserved
  • Auto-update · sing-box core checked silently, manual button in Settings
  • Logs panel · live core stdout, hidden by default
  • System tray · animated icon, quick connect, server switcher
  • Global hotkey · toggle VPN even when minimized
  • Bilingual · full RU / EN, switch on the fly

Install

Easy way

Download KitsuneSetup.exe from Releases, run, follow the wizard. Installs per-user into %LocalAppData%\Programs\Kitsuneno admin rights required. The installer detects your Windows language and offers RU/EN mode.

Portable way

Download Kitsune-portable.zip, unpack anywhere, run Kitsune.exe. That's it. No registry writes outside of the Windows Run key (only if you enable autostart yourself).

TUN mode requires admin — the app requests UAC elevation when you first connect in TUN mode. Proxy mode works fine without admin.


Quick start

  1. Open the app, switch to Servers.
  2. Paste a vless:// / vmess:// / trojan:// / ss:// link with Paste from clipboard, or open + Subscription and add your subscription URL.
  3. Pick a server, hit the big connect ring on the Dashboard. Done.

Why another VPN client?

Most Windows VPN clients are either ugly (v2rayN), heavy (Electron-based ~150 MB+), or locked to a single configuration that's hard to bend. Kitsune trades nothing:

  • Native PySide6 + QML — instant startup, real OS integration, no Chromium overhead.
  • Same routing engine as the big players — full protocol coverage of sing-box.
  • No telemetry. No accounts. No ads. Bring your own server, keep your traffic.

Architecture

qml/App/    — UI (PySide6 + QtQuick.Controls.Basic)
app.py      — Backend (state machine, slots, signals, system glue)
engine.py   — sing-box wrapper (config-gen, Core lifecycle, Clash API)
core/       — sing-box binaries + bundled rule-sets
assets/     — icon and tray frames

The Backend is a single QObject with ~50 slots exposed to QML and full thread-safe signal plumbing. HTTP calls, app scanning, server validation — all run in background threads; results delivered via queued signals.


Build from source

Requires Python 3.11+ and PySide6.

git clone https://github.com/Tawreos228/KitsuneVPN
cd KitsuneVPN
python -m pip install PySide6 segno Pillow pyinstaller
python core/fetch_core.py        # downloads official sing-box.exe
python app.py                    # run in dev mode

Build distributable:

python -m PyInstaller kitsune.spec --noconfirm   # → dist/Kitsune/
iscc.exe installer.iss                            # → dist_installer/KitsuneSetup.exe

The .spec aggressively excludes unused Qt modules (drops ~260 MB from the bundle, notably Qt6WebEngineCore.dll).


What's not here

Being honest about scope:

  • Windows only. No macOS/Linux/mobile builds. The engine is cross-platform but the UAC, system proxy, and firewall integration is Windows-specific.
  • No built-in server store. Bring your own VLESS/VMess/etc. servers.
  • Some exotic protocols (mieru, juicity, AmneziaWG with custom obfuscation) need more work on the UI side and aren't exposed yet.
  • The exe is not code-signed. Windows SmartScreen will warn on first run — click "More info → Run anyway". A signed release is on the roadmap.

Feedback & contributing

This is an actively developing project — expect rough edges. All feedback is welcome:

  • 🐞   Something broken?open a bug report. Include your Windows version, what you did, what happened, and what you expected.
  • 🤔   Something behaves weirdly? — tell us. Even if it's "this dialog felt awkward", that's useful. UX papercuts are real bugs.
  • 💡   Want a feature?request it. Protocol you'd like supported, workflow that's missing, integration ideas — all on the table.
  • 🌍   Translation help — the i18n dictionary lives in qml/App/T.qml. Adding a new language is straightforward (one new entry in the dict object).
  • 🔧   Pull requests are welcome. For non-trivial changes, please open an issue first so we can agree on the direction before you spend time.

If your VPN setup is unusual (atypical subscription format, custom protocol, exotic routing scenario), we'd especially love to hear about it — that's how the exotic-protocols list shortens.


License

MIT. Use it, fork it, ship it. The sing-box engine carries its own license — see its repo.



One more thing…

There's a hidden theme. Try tapping the fox in the sidebar five times. 🦊