A modern VPN/proxy client that lives in your terminal
- Modern protocols: VMess, VLESS, Trojan, Shadowsocks, Hysteria 1/2, TUIC, AnyTLS, SOCKS5, and more
- Flexible: import subscriptions from raw links or Clash/Mihomo YAML, with automatic refresh and a wide range of settings
- Headless: the daemon and embedded sing-box core run independently from the TUI, keeping connections alive after you detach
- Lightweight: ~50 MB RAM on Linux/macOS and ~100 MB on Windows
- Cross-platform: runs in modern terminals on Linux, macOS, and Windows, including native PowerShell and WSL
Using package manager:
# macOS or Linux
brew install luynrs/tap/justray
# Arch Linux (AUR)
yay -S justray-bin
# Windows
winget install luynrs.justrayAlternatively, with x-cmd:
x eget use luynrs/justrayOr via script:
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/luynrs/justray/main/install.sh | sh# Windows
irm https://raw.githubusercontent.com/luynrs/justray/main/install.ps1 | iexNix:
# Run directly
nix run github:luynrs/justray# Home Manager module (justrayd systemd user service)
{
imports = [ justray.homeManagerModules.default ];
services.justray.enable = true;
}Package manager and script installations also provide jray as a short alias for justray
Note
WinGet provides only justray and justrayd; the jray alias must be added manually
jray: open the TUI
jray up <node> [--tun | --proxy]: start the daemon and connectjray down: disconnectjray stop: shut down the daemonjray status: show connection status
jray subscription or jray sub
add: add a subscription or raw protocol linkremove: remove a subscription by ID or namelist: list subscriptions and nodes
-h,--help: show help-v,--version: show the current version
| Key | Action | Key | Action |
|---|---|---|---|
↑/↓, k/j |
Navigate list | shift+↑/↓ |
Reorder subscriptions |
←/→, h/l |
Fold / expand group | Enter |
Toggle group / connect |
t / T |
Ping selected / Ping all | r / R |
Refresh selected / all |
m |
Switch mode (PROXY / TUN) | / |
Filter nodes |
a |
Add subscription / node | d |
Delete subscription |
o |
Settings menu | Esc |
Back / cancel input |
Tab |
Switch active panel | q, Ctrl+C |
Detach / exit TUI |

