Skip to main content
This page describes vio 1.0.6. Check yours with vio --version, and run vio update if you are behind.

Commands

Running vio with no arguments opens the interactive shell. A dash in the shell column means the command is subcommand-only: vio run, vio run-key and vio update. The shell also has a few commands with no subcommand: /clear, /exit, /quit, /session, /tier and /create. vio <command> --help shows every option.

Options

--json is also accepted by vio whoami, vio status, vio show, vio upgrade, vio providers and vio help.

Exit codes

Error codes

With --json, every failure is reported the same way:
  • stdout is empty, and the last line on stderr is one JSON object:
    code is one of the codes below. Some commands add fields inside error — a failed vio deploy or vio connect adds the stage it stopped at, and vio connect adds what happened to the running agent — but code and message are always there.
  • vio validate and vio digest are the exceptions: they print the error object on stdout, because a validation result is their output.
  • The exit code always matches: a sign-in failure exits 3 from every command, including vio deploy and vio connect; an invalid argument exits 2; out of credits exits 4.
A command line vio cannot parse at all — a missing required argument, an unknown option — is rejected before any command runs, as one plain-text line (error: …) with exit 2.

Machine-readable manifest

Prints every command with its arguments and options, whether it has a shell form, whether it needs sign-in or network, whether it creates cloud resources, moves credentials or spends credits, and the exit and error code tables above. Each command also carries a humanStep: null when it never stops on you, or the step only you can take, either browser_consent or tty_prompt, with a when that says in which case. Scripts and AI agents should read this instead of parsing --help.