CLI
xvii is one binary for the whole platform. Each service brings its own command group; the CLI also signs
you in, keeps several instances apart, completes names and updates itself.
curl -fsSL https://xvii.network/install.sh | sh
xvii login xvii.network
xvii help
Command groups
| Group |
Commands |
| Services |
pages, apps, env, notify, tunnel, hooks, ai, share, config |
| Workspace |
teams, projects |
| Account |
login, logout, whoami, tokens |
| Instance |
server install, server restore |
| This CLI |
context, completion, update, mcp, version, help |
Every command is listed with its flags and examples in the reference, and with
xvii help <command> in the terminal.
Contexts
A context is one instance (its domain) with the sign-in you made there. xvii login DOMAIN creates one;
contexts are kept in contexts.json (mode 600) in the user config folder: ~/Library/Application Support/xvii on macOS, ~/.config/xvii on Linux.
xvii context # list; ● marks the current one
xvii context add example.com --name work
xvii context use work
xvii --context work pages list # one command against another instance
xvii context rm work
Environment variables
| Variable |
Does |
XVII_DOMAIN, XVII_TOKEN |
an instance and an API token instead of a saved context (CI) |
XVII_CONTEXT |
which saved context to use |
XVII_PROJECT, XVII_ENV |
defaults for --project and --env in env and config commands |
XVII_<SERVICE>_URL |
another address for one service (local development) |
XVII_NO_UPDATE_CHECK=1 |
no daily update check |
NO_COLOR |
no colours |
In GitLab CI and GitHub Actions the CLI also finds the job's OIDC token and exchanges it through a trust
rule; see Deploy from CI.
Output for scripts
Commands that print data take --json:
xvii pages list --json | jq -r '.[0].url'
xvii apps ls --json
Colours appear only on a terminal. Errors go to stderr as one line with a hint, and the exit code is 1.
Secrets that are printed once (tokens create, ai keys create) go to stdout alone, so they can be
captured.
Completion
xvii completion --install # for $SHELL
xvii completion fish > ~/.config/fish/completions/xvii.fish
Completion covers commands and flags and also names from the instance: aliases, deploys, apps, projects,
teams, endpoints.
Updates
xvii update installs the version the current instance offers (checked by SHA-256); --check only says
whether there is one. Other commands mention a new version once a day.