The native jio CLI manages authentication and remote microVMs from macOS or
Linux. Run jio --help or jio <command> --help for the installed version's
authoritative command syntax.
Commands
| Command | Purpose |
|---|---|
jio login <api-key> | Verify and save an API key |
jio usage | Show account limits, reservations, and session lifetime |
jio config | Choose the default VM size |
jio create | Create a VM and optionally enter it |
jio list | List non-destroyed VMs for the account |
jio connect [session-id] | Open an interactive shell |
jio exec <session-id> '<command>' | Run one shell command |
jio stop <session-id> | Release compute while retaining files, when supported |
jio start <session-id> | Start a stopped VM with its retained files |
jio destroy [session-id] | Delete the VM and retained files |
jio login codex [session-id] | Copy the local Codex login to a VM |
jio yolo codex [session-id] | Open Codex with its approvals and sandbox disabled |
Authentication and endpoints
jio login '<your-api-key>'Saved credentials live under ~/.jio with owner-only permissions. These
environment variables override local defaults:
| Variable | Meaning |
|---|---|
JIO_API_KEY | API key; takes precedence over saved login |
JIO_ENDPOINT | Custom Jio endpoint |
JIO_HOST | Legacy endpoint alias |
JIO_CA_CERT | Custom CA certificate for a custom endpoint |
JIO_STATE_DIR | Alternative local state directory |
Pass --host <endpoint> to a connection command for a one-off override. Saved
keys are bound to the endpoint against which they were verified.
Choose a size
jio config| Size | vCPU | RAM |
|---|---|---|
| Small | 1 | 2 GiB |
| Medium (default) | 2 | 4 GiB |
| Large | 4 | 8 GiB |
Availability depends on the endpoint and account quota. Jio fails instead of silently selecting a different size.
Automate a disposable VM
When jio create is not attached to a terminal, stdout contains only the session
ID. That makes the lifecycle scriptable:
session="$(jio create)"
trap 'jio destroy "$session" --yes >/dev/null 2>&1 || true' EXIT INT TERM
jio exec "$session" 'printf "ready\n"'Use --timeout <seconds> with jio exec. The default is 120 seconds and the
maximum is one hour. A timeout ends the local SSH process; it does not guarantee
that the guest process was cancelled.
Stop, start, and destroy
Retained-session endpoints support clean stop/start:
jio stop <session-id>
jio start <session-id>Hosted ephemeral sessions do not. They remain available until destroyed or
expired according to account policy. destroy is permanent:
jio destroy <session-id> --yesShell completion
jio completion zsh
jio completion bash
jio completion fishEvaluate or install the output using your shell's normal completion setup.
Legacy one-shot runs
jio run submits Python or standalone Rust source to compatible self-hosted
endpoints. It is not available on the default hosted connection. New hosted
workflows should use create, exec, and destroy.