Skip to content

Protocol guides ​

One page per protocol: how to create it from the menu and the command line, its options, and how to export it for clients. Not sure which one to use? Start with Choosing a protocol.

ProtocolTransportDomain and certificateXraysing-boxmihomo
VLESS REALITYTCPnot needed✓✓✓
VLESS VisionTCP + TLSneeded✓
VLESS XHTTPHTTP / UDPdepends on the mode✓
VLESS + TLSTCP / WS / gRPC …needed (self-signed works)✓✓
Hysteria2UDP (QUIC)needed (self-signed works)✓✓✓
TUIC v5UDP (QUIC)needed (self-signed works)✓✓
AnyTLSTCP + TLSneeded (self-signed works)✓✓
Shadowsocks 2022TCP / UDPnot needed✓✓✓
Trojan, VMessTCP + TLSneeded✓✓✓
SnellTCPnot needed✓✓
SOCKS5TCPnot needed✓✓✓
WireGuardUDPnot needed✓

There are also three standalone programs that do not depend on a core: main menu 5 (Snell) for the official snell-server, 6 (ss-rust) for Shadowsocks 2022, and 7 (Hysteria2) for the official Hysteria2 server.

Each core's node menu ​

Choose 4 (Nodes) in a core's menu to see every protocol it supports; pick one to create, view or delete nodes.

Xray (main menu 4 → 4):

Xray protocol list

sing-box (main menu 2 → 4):

sing-box protocol list

mihomo (main menu 3 → 4):

mihomo protocol list

The command line, for every protocol ​

Every protocol uses the same commands; all options are in the CLI reference:

bash
psm node add    CORE PROTO --tag NAME --port PORT [protocol options]
psm node show   CORE PROTO NAME
psm node export CORE PROTO NAME [--server HOST] [--format uri|json|surge]
psm node delete CORE PROTO NAME --yes
psm node list

Switches that work across protocols:

  • --mount-443: put the node on shared port 443 next to other nodes. Available for Xray REALITY, Vision, XHTTP, Trojan and VMess, and for sing-box / mihomo REALITY, AnyTLS, Trojan, VMess and VLESS.
  • --ech true: add ECH (Encrypted Client Hello) to sing-box / mihomo VLESS, Trojan, AnyTLS, Hysteria2 and TUIC; older clients without ECH still connect.
  • --json: machine-readable output for scripts.

UUIDs, passwords and keys are generated when you leave them out. Queries hide credentials by default; export prints everything a client needs.

Released under the AGPL-3.0 license · For lawful use only; follow the laws where you live