Skip to main content
Running vio with no arguments opens an interactive shell:
This is the CLI’s front door. Most of what you can do as a subcommand you can also do here, as a slash command, without retyping vio each time.
The shell needs a real terminal. If vio is started with its input piped or redirected — from a script, a CI job, or another program — it exits with vio needs an interactive terminal. Use the subcommands there instead; that is what they are for.

What you can type

Type / and the start of a name to pick from the matching commands. /help lists every command in the build you are running, with its arguments. In vio 1.0.0 that is: A slash command takes the arguments and the options that make sense at a prompt — for example /deploy takes --target and --env-file, /logs takes --since, --limit and --include-platform. --json output, and a few flags such as vio deploy --name, belong to the subcommands. These are subcommand-only — there is no slash form: vio update, vio connect, vio docs, vio providers and vio connectors.

Typed prompts are not available in 1.0.0

The shell in vio 1.0.0 runs slash commands and nothing else. Anything you type that does not start with / is not sent anywhere — the shell answers:
If you want an AI agent to drive vio, that works, and it works through the subcommands rather than through this shell: see Use vio with AI coding agents.

Sessions

Each shell run gets a session, written to ~/.viorant/sessions/. /session prints its id, working directory and start time, and vio --resume <session-id> reopens it.

Scripts and CI

The shell is for people. In a script, a CI job, or anything without a terminal, call the subcommands directly:
They are the automation surface, they are not going away, and they exit with stable codes you can branch on.