Summary
vtx login [--api URL] [--auth URL] sign in through the browser
vtx link [--name NAME] create or reuse a project for this directory
vtx deploy [--prod] [DIR] upload the source in DIR (default .), build it remotely, print the URL
vtx deploy --prebuilt [--prod] DIR upload DIR as-is (already-built static output)
vtx logs [--runtime] ID stream the build log (or what the app prints)
vtx promote ID point production at a ready deployment
vtx ls recent deployments of the linked project
vtx version print the version of this CLIWherever a command takes a deployment ID, you can use the short ID shown by vtx ls and in the dashboard.
vtx login
Signs in through your browser using a device code, then stores an access token on this computer.
| Flag | Default | Meaning |
|---|---|---|
--api URL | https://api.vantrex.cloud | The API to talk to. Also read from VTX_API_URL. |
--auth URL | https://app.vantrex.cloud | The dashboard that approves the sign-in. Also read from VTX_AUTH_URL. |
$ vtx login
Open https://app.vantrex.cloud/device
and confirm the code: ABCD-EFGH
Waiting for approval...
Logged in.vtx link
Connects the current directory to a project, creating one if needed, and writes .vantrex/project.json. If the directory is already linked it says so and changes nothing.
| Flag | Default | Meaning |
|---|---|---|
--name NAME | The directory name | Name for the new project. |
$ vtx link --name "Acme Landing"
Linked to new project acme-landing.vtx deploy
Uploads your source, builds it on Vantrex, streams the build log and prints the address when it is ready. The directory must be linked first.
| Flag | Default | Meaning |
|---|---|---|
--prod | off | Deploy to production instead of making a preview. |
--prebuilt | off | Upload DIR exactly as it is, without building. For output you already built. |
DIR | . | The directory to upload. |
# preview of the current folder
$ vtx deploy
# production
$ vtx deploy --prod
# a folder of already-built files
$ vtx deploy --prebuilt --prod ./distWhat is uploaded is described in Configuration. The command exits with a non-zero code if the deployment ends in anything but ready, so it is safe to use in scripts.
vtx ls
Lists the recent deployments of the linked project.
$ vtx ls
ID TARGET STATUS URL
a1b2c3 production ready https://acme-landing.vtrex.app
d4e5f6 preview ready https://acme-landing-d4e5f6.vtrex.app
9a8b7c preview error https://acme-landing-9a8b7c.vtrex.appvtx logs
Streams a deployment's build log, and returns when the build ends. With --runtime it shows what the running application prints instead.
| Flag | Default | Meaning |
|---|---|---|
--runtime | off | Show runtime output (server apps) instead of the build log. |
--tail N | 100 | With --runtime: how many recent lines to start with. |
$ vtx logs a1b2c3
$ vtx logs --runtime --tail 300 a1b2c3vtx promote
Points production at a ready deployment. No rebuild happens, so it takes effect at once and doubles as a rollback.
$ vtx promote a1b2c3
Production now points at a1b2c3vtx version
Prints the CLI version. vtx -v and vtx --version do the same.
$ vtx version
vtx 1.2.0 (cdd68861, built 2026-11-09T10:00:00Z)Exit codes
| Code | Meaning |
|---|---|
| 0 | Success. |
| 1 | The command failed. The reason is printed after error:, for example a failed build or not being signed in. |
| 2 | Wrong usage: no command, or an unknown one. The usage text is printed. |
Recipes
Preview, then promote exactly what you tested
$ vtx deploy
...
preview deployment ready: https://acme-landing-d4e5f6.vtrex.app
$ vtx promote d4e5f6Roll back
$ vtx ls
$ vtx promote a1b2c3Deploy from CI
Link the project once on your computer and commit .vantrex/project.json, so the job knows which project to use. Create an access token in the dashboard and store it as a secret in your CI system. vtx login needs a browser, so the job writes the token file itself before deploying:
mkdir -p ~/.config/vantrex
cat > ~/.config/vantrex/auth.json <<EOF
{ "api_url": "https://api.vantrex.cloud",
"auth_url": "https://app.vantrex.cloud",
"key": "$VTX_TOKEN" }
EOF
vtx deploy --prod