Beacon is a native macOS VPN client for the Xray-core and sing-box proxy engines. It is a fork of faustyu1/veil and brings a modern SwiftUI interface to V2Box and V2rayN-style clients.
Beacon works on macOS Sonoma 14 or higher.
- Support for Xray-core (VLESS, VMess, Trojan, Shadowsocks) and sing-box (Hysteria2, TUIC, WireGuard, AnyTLS)
- Reality & TLS, XTLS Vision flow, VLESS encryption
- System Proxy and TUN (all traffic) modes
- Subscription and QR code import/export
- Menu-bar window
- Latency testing
- Download
Beacon.app.zipfrom the Releases page. - Unzip and move Beacon.app to
/Applications. - Important: the app is not notarized. If MacOS gives a warning about not being able to open the app, navigate to Settings > Privacy & Security and press "Open Anyways." If Gatekeeper still blocks it, run
xattr -cr /Applications/Beacon.appto clear the quarantine flag.
git clone <your-repo-url> beacon
cd beacon
# Fetch the bundled cores (architecture detected automatically)
Scripts/fetch-xray.sh
Scripts/fetch-singbox.sh
Scripts/fetch-tun2socks.sh
# Optional: regenerate the app icon
Scripts/make-icon.sh
# Build, package into Beacon.app, and launch
Scripts/run-app.sh releaseNote that a plain swift run will not show a window. MacOS needs the .app bundle that run-app.sh assembles.
swift test- Add servers with a subscription URL or by pasting share links. You can also import from a QR code.
- Pick between proxy and TUN mode, which routes your traffic through only the browser or through all apps respectively.
- Click a server to select it or switch. The connect button and menu bar item act on the currently selected server.
- Set routing under Settings > Routing > Configure. Choose a preset or build your own rules.
- faustyu1/veil for the SwiftUI xray-core and singbox implementation
- XTLS/Xray-core and SagerNet/sing-box for the proxy engines
- xjasonlyu/tun2socks for TUN to SOCKS
- Rule databases: Loyalsoldier/v2ray-rules-dat, runetfreedom/russia-v2ray-rules-dat, v2fly