A modern VPN client that lives in your terminal
Features
- Modern protocols: VMess, VLESS, Trojan, Shadowsocks, Hysteria1/2, TUIC, AnyTLS, SOCKS5 and more
- Flexible: subscriptions from raw links or Clash/Mihomo YAML, auto-refreshing and a wide list of settings
- Headless: daemon and embedded sing-box core run independently from the TUI
- Lightweight: up to ~50 MB of RAM on unix-based systems, ~100 MB on Windows
- Crossplatform: runs in every terminal on macOS, Linux and Windows (PowerShell and WSL)
Installation
Using package manager:
# macOS or Linux
brew install luynrs/tap/justray
# Windows
winget install luynrs.justray
# Arch Linux (btw)
yay -S justray-bin
Or via script:
# Windows:
irm https://raw.githubusercontent.com/luynrs/justray/main/install.ps1 | iex
# macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/luynrs/justray/main/install.sh | sh
Nix flake:
nix run github:luynrs/justray
# Home Manager: justrayd as a systemd --user service
{
imports = [ justray.homeManagerModules.default ];
services.justray.enable = true;
}
Usage
If justray is installed via a script or packet manager the jray alias is available. But! Winget provides justray and justrayd.
Connection
jray up <node> [--tun | --proxy]: start the daemon and connect
jray down: disconnect
jray stop: shut down the daemon
jray status: show connection status
Subscriptions
jray subscription or jray sub
add: add a subscription or raw protocol link
remove: remove a subscription or node by ID
list: list subscriptions and nodes
Options
-h, --help: show help
-v, --version: show the current version
Keybinds
| Key |
Action |
Key |
Action |
↑/↓, k/j |
Move |
shift+↑/↓ |
Reorder subscription |
←/→, h/l |
Fold or cycle |
enter |
Connect, edit or choose |
t / T |
Ping / Ping all |
r / R |
Refresh / Refresh all |
m |
Toggle PROXY / TUN |
/ |
Filter |
a |
Add subscription |
d |
Delete subscription / rule |
o |
Open settings |
esc |
Back, cancel or clear |
tab |
Switch tab |
q / ctrl+c |
Quit |
License
GPL-3.0