This project brings fully functional XRay desktop client for macOS and Linux, powered by fyne and written in Go.
Note
The program will not damage your routing rules, default route is intact and only additional rules are added for the lifetime of application's TUN device. There are also additional complementary clean up procedures in place.
For CLI version see https://github.com/goxray/tun.
macOS (15.1) Light | Linux (Ubuntu) Dark |
---|---|
![]() |
![]() |
Please visit https://xtls.github.io/en for more info.
- macOS (tested on Sequoia 15.1.1 M3)
- Linux:
- Ubuntu 24.10 ARM
- Mint 22 amd64
- Stupidly easy to use
- Adding and editing XRay URL configurations
- Supports all Xray-core protocols (vless, vmess e.t.c.) using link notation (
vless://
e.t.c.) - Real-time network statistics for each configuration
- Responsive, lightweight and dynamic UI, focusing on tray menu for quick and easy interactions
- Only soft routing rules are applied, no changes made to default routes
Tip
You can easily set the application to start at login.
Go to System Settings
> General
> Login Items & Extensions
> Open at Login
, then press +
and browse for GoXRay.app
Get the latest release app bundle from Releases and... just run it. If you get "damaged" error then run this command xattr -c "GoXRay.app"
, apple marks externaly downloaded files, this command removes this mark.
You will be prompted for admin password, and your GoXRay VPN is ready.
Don't forget to add the app to your Applications
and Open at Login
items!
Get the latest release from Releases.
After unpacking the archive - you can install the app using make user-install
or run the binary in usr/local/bin
folder.
Important
After installing the application, don't forget to set networking privileges to the installed binary (see scripts
directory for more info):
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip goxray_binary_path
๐ฆ Using twdragon debian package
The client is available from the PPA repository ppa:twdragon/xray
, maintained by twdragon. The package is in sync with this repo releases. You can check the pipeline at the dedicated repository. To install use:
sudo add-apt-repository ppa:twdragon/xray
sudo apt update
sudo apt install goxray-gui
After the installation, the package might be updated automatically as it is done in Ubuntu. Packages are signed by twdragon and published on Launchpad. Experimental builds are also available in pipeline repository.
Important
sudo
is required, the application will prompt you for privileged access when you run it.- CGO_ENABLED=1 is required.
- Visit https://docs.fyne.io/started/ to get required dependencies for your platform.
If you have all the required dependencies in place for building the project. You can simply run:
CGO_ENABLED=1 go build . -o goxray
For Linux, you should also set additional privileges to run the binary, see #Linux info above.
If you want to get the macOS application bundle (.app structured file), you can run:
# go install fyne.io/fyne/v2/cmd/fyne@latest
fyne package -os darwin # Check out the newly created GoXRay.app file
Tip
For headache-free cross-compilation please see https://github.com/fyne-io/fyne-cross.