It is a desktop client for VLESS servers, and it is honest about what it does. In demo mode it is an interface preview. In live mode it starts a real Xray core and exposes a local SOCKS5/HTTP proxy on loopback. A system-wide TUN tunnel is the top item on the roadmap.
Correct — unless an application is pointed at 127.0.0.1:10808 (SOCKS5) or
127.0.0.1:10809 (HTTP), it bypasses the core entirely. This is stated in the
README, the Settings page and the About page on purpose.
Yes. Demo mode is the default, needs no core and no credentials, and lets you explore every screen. The Servers page, configuration editing, validation, theme switching, activity log and CLI diagnostics all work without a core.
Everything is local:
config/servers.json your servers and credentials
config/app.json appearance and connection mode
config/xray.generated.json generated core configuration
logs/, data/ runtime output and caches
Nothing is written to the registry or outside that folder. No file is uploaded.
No. There is no telemetry, analytics, crash reporting, auto-update service or remote configuration. The only network connections are the ones the VPN core makes to the server you configured.
From the official Xray-core releases. Download the Windows x64 zip, verify its
checksum, and place xray.exe in the cores/ folder. Then add the SHA-256 to
cores/SHA256SUMS.json so the build can verify it. See
BUILDING.md.
sing-box is also discovered, but generated configurations target Xray's schema.
The selected server entry has no uuid. Servers can be listed and displayed
without credentials (metadata only in validate), but a real connection needs
them. Import a vless:// link or add the UUID manually.
Typical causes: wrong UUID, wrong public key/short id for Reality, an expired
server, a blocked port, or a server that expects a different transport. Run
exploitfa-cli generate-config and inspect config/xray.generated.json, then run
the core manually to see its log output (the GUI discards it so the core can
never block on a full pipe).
Imported links have no country information, so the country is -- and no flag is
drawn. Edit config/servers.json and set "country": "DE" (or another ISO code).
Yes. config/servers.json is watched and reloaded automatically. Preferences
(app.json) are applied when changed from the Settings page.
The code is platform-neutral and CI runs the test suite on Ubuntu, but the packaging and window chrome target Windows. Running from source on Linux is possible; it is not a supported release target yet.
It is an English-first, left-to-right design decision to keep copy and layout consistent. Localisation and RTL support are roadmap items.
Not yet. Credentials sit in plain JSON on your disk, protected only by filesystem
permissions. Encryption through the Windows Credential Manager is on the roadmap;
until then, treat config/servers.json like a password file and keep it out of
cloud-synced folders.
One-file PyInstaller executables are a common false-positive pattern. The project
is MIT-licensed and the full source is here. You can always run from source, and
you can build the executable yourself with python build.py.
Only if you comply with that core's licence. The official releases intentionally contain no VPN binary — the build is UI-only, and you add the core yourself.
Read CONTRIBUTING.md. Start with a
good first issue,
keep pull requests small and focused, and make sure lint and tests pass.
No. It is an independent MIT project. If it is useful to you, a star helps other people find it.