VX6VX6

How to Use VX6

1. Use the right IPv6 endpoint format

VX6 expects IPv6 endpoints in bracket form:

'[ipv6]:port'
'[2401:db8::10]:4242'
Rule: always include square brackets around IPv6 addresses when a port is present.

2. Initialize and start a node

  1. Initialize identity and network settings

    ./vx6 init \
      --name alice \
      --listen '[::]:4242' \
      --advertise '[2001:db8::10]:4242' \
      --peer '[2001:db8::1]:4242'

    The first peer can be any known live VX6 node. It is only an entry contact, not a permanent central controller.

  2. Start the runtime

    ./vx6 node

3. Publish and connect services

Core idea: host keeps the real app local, client gets a local port too. Example: host runs service on 127.0.0.1:2000, client uses127.0.0.1:1000 after connect.

Share SSH

./vx6 service add --name ssh --target 127.0.0.1:22
./vx6 reload

Connect from another node

./vx6 connect --service alice.ssh --listen 127.0.0.1:2222
ssh -p 2222 user@127.0.0.1

Share a web app

./vx6 service add --name web --target 127.0.0.1:8080
./vx6 reload

./vx6 connect --service alice.web --listen 127.0.0.1:9000
curl http://127.0.0.1:9000

4. Use direct IPv6, file transfer, and hidden aliases

Direct IPv6 when you already know the peer

./vx6 connect --service ssh --addr '[2001:db8::10]:4242' --listen 127.0.0.1:2222

Send a file

./vx6 send --file ./backup.tar --to alice

Received files are stored in ~/Downloads.

Publish a hidden alias

./vx6 service add \
  --name admin \
  --target 127.0.0.1:22 \
  --hidden \
  --alias hs-admin \
  --profile fast
./vx6 reload

./vx6 connect --service hs-admin --listen 127.0.0.1:2222

In the background, VX6 resolves the alias, selects intro and relay paths, and joins the route through a rendezvous point before it exposes a normal local port to the client.

5. Build apps with VX6 backend

UI teams should use the shared local backend API (`vx6d`) instead of hardcoding CLI flags in every frontend.

# start shared backend
go build -o vx6d ./apps/vx6backend/cmd/vx6d
./vx6d --listen 127.0.0.1:4866

# health check
curl -fsS http://127.0.0.1:4866/health

Platform folders for contributors are under apps/vx6backend/clients: Tauri, Android, iOS, and Web.

6. Run it in the background

systemctl --user enable --now vx6
systemctl --user status vx6
systemctl --user reload vx6

Useful commands

./vx6 help
./vx6 status
./vx6 list
./vx6 identity
./vx6 debug registry
./vx6 debug dht-get --service alice.ssh
Tip: if proxy or hidden mode says the relay path cannot be built, keep the node running longer so it can learn more peers from the network.