Skip to content

Getting started

xPort comes in two flavors, and the CLI is the same binary for both:

Hosted (xPort Cloud) Self-hosted
Relay & edge Operated by xPort (*.xport.sh paid, *.xport.free anonymous/free) Your server: relay + optional gateway
Accounts & dashboard app.xport.dev — xport login Optional — your own account server via OAuth introspection
Names Random (anonymous) or short custom names (logged-in) Any valid name, no limits
Custom domains (BYOD) Pro/Team, verified in the dashboard Supported if you run the account server + cert manager
Branding Account-driven (Pro/Team) Local via share.branding.* in config.yaml
Terminal window
curl -fsSL https://releases.xport.dev/install.sh | sh

The installer verifies the download against the signed release checksums and also installs xport-mcp. If Claude Code, Kimi Code or Codex is present, it offers to install the agent skill into the matching skill directory.

Requirements: Go 1.27 or later

Terminal window
git clone https://github.com/xport-dev/xport-cli.git
cd xport-cli
go build -o xport ./cmd/xport
Terminal window
./xport --help
./xport info
Terminal window
xport login # browser OAuth, once per machine
xport 3000 # https://<name>.xport.sh → localhost:3000

No account? Anonymous shares work too — you get a random name on the free domain:

Terminal window
xport ./file.zip
echo "$TOKEN" | xport --secret --once
# → https://<20-char-random>.xport.free

Paid plans serve from *.xport.sh instead — short names, fixed subdomains, and custom domains (BYOD).

  1. Build and run the relay:

    Terminal window
    git clone https://github.com/xport-dev/xport-relay.git
    cd xport-relay
    go build -o relay ./cmd/relay
    ./relay
  2. Point the CLI at it (relay.url in config.yaml or XPORT_RELAY_URL):

    relay:
    url: "http://localhost:8080"
  3. Optionally put the gateway in front for wildcard TLS termination, and enable auth.mode: oauth with your own introspection endpoint for per-user names and accounts — see xport login — Self-hosting.

Copy the example configuration and adjust it to your needs:

Terminal window
mkdir -p ~/.config/xport
cp config.example.yaml ~/.config/xport/config.yaml

See Configuration file for all options.

Every option can also be set via an environment variable, e.g. XPORT_RELAY_URL or XPORT_UPDATE_FEED_URL.