Auth and identity
vex loginvex logoutvex whoami
CLI reference
Task-oriented command shapes for the shipped CLI. Use --help on any command for the full flag list accepted by your installed version.
vex loginvex logoutvex whoamivex import git https://git.example.com/team/repo.git --org <org> --path <root-path> --virtual-repo <slug> --yesvex import git https://git.example.com/team/repo.git --org <org> --path <root-path> --virtual-repo <slug> --sync --sync-branch main --sync-mode bidirectional --yesvex import git ../existing-repo/.git --org <org> --path <root-path> --virtual-repo <slug> --yesvex import github <owner>/<repo> --org <org> --path <root-path> --virtual-repo <slug> --github-app-installation-id <id> --sync-branch main --sync-mode bidirectional --yesvex import github <owner>/<repo> --org <org> --path <root-path> --virtual-repo <slug> --skip-sync --yesvex clone <org>/<repo>vex clone <org>/<repo> --fs virtualvex initvex repovex git pushvex submit --target mainvex submit -r 'main..@' --reviewer <email> --draftvex submit --dry-run --format jsonvex syncvex sync --dry-run --format jsonvex sync --no-restackvex stack log --format jsonvex stack merge --count 2vex queue status --target mainvex queue pause --target mainvex queue retry <entry-id> --target mainvex daemon status --format jsonvex daemon capabilities --format jsonvex daemon start --format jsonvex mount <mount-path> --repo <repo-path> --rev @ --read-write --prefetch-path src --format jsonvex changed-files --mount-path <mount-path> --format jsonvex hash <workspace-path> --mount-path <mount-path> --format jsonvex prefetch <workspace-path> --mount-path <mount-path> --format jsonvex watch --mount-path <mount-path> --follow --jsonvex snapshot --repo <repo-path> --overlay-root <overlay-root> --format jsonvex goto <rev> --mount-path <mount-path> --format jsonvex checkout <rev> --mount-path <mount-path> --format jsonvex fsck --overlay-root <overlay-root> --format jsonvex conflicts --overlay-root <overlay-root> --format jsonvex unmount <mount-path> --format jsonvex cloud-workspace export --mount-path <mount-path> --export-root <dir> --key-id <id> --key-file <file> --format jsonvex cloud-workspace inspect --manifest-uri <manifest> --key-id <id> --key-file <file> --format jsonvex cloud-workspace restore --manifest-uri <manifest> --target-overlay-root <overlay-root> --key-id <id> --key-file <file> --format jsonvex hostingvex deploy create --app <app> --service web --env production --watchvex deploy dashboard --app <app>vex deploy logs --app <app> <allocation-id> --task webvex sitesvex docker setupvex hub login --registry registry.vex.scvex hub push <image> --org <org> --repo <item> --tag <tag>vex submit and vex sync are the canonical whole-stack commands. vex stack submit and vex stack sync remain supported compatibility spellings and use the same idempotent server operations.
Sync fetches the exact target, drops a contiguous landed or abandoned prefix, and rebases the remaining selected JJ changes when it is safe. After submit or sync, status and supported JJ mutations print an offline hint from .jj/vex-stack-state.json only when local evidence identifies an active cached-stack change. Use vex stack log for one batched server annotation of the local stack.
Submit and sync dry runs use a live read-only preflight and the same native move planner as execution, but never mutate the working copy, object store, cache, or server. Their JSON distinguishes the request before restack from an exact, no_post_all_completed, or write-safe unknown_until_apply projected server request. vex stack log --dry-run is the offline cache-only inspection mode.
Live daemon state is local to the machine running vexd. The CLI and desktop app can query the Unix socket, but browser docs only show the server-safe capability model.
Cloud workspace commands currently use a local encrypted handoff backend. Export, inspect, and restore validate manifests and encrypted objects, but live server-side recovery still needs object storage, auth/KMS, restore routing, and cross-machine handoff UX.
Public services managed by Vex do not need a --deployed-url when you create a deployment from the CLI. Vex creates the app domain from the app, environment, service, and target datacenter.
<app>-<environment>-<service>.app.vex.so<app>-<environment>-<service>.<dc>.app.vex.soThe platform owns the wildcard DNS records and serves these hostnames over public TLS through the edge proxy after the API confirms the domain belongs to a Vex app service.