The official CLI for the v6Node API.
Project description
v6ctl
The official CLI for the v6Node API. Deploy and manage VPS nodes, SSH keys, and webhooks — interactively with Rich tables, or scripted with --json.
pipx install v6ctl
v6ctl config set token v6_...
v6ctl nodes list
Install
pipx install v6ctl # recommended — isolated, upgradable
pip install v6ctl # works too
No pipx? brew install pipx (macOS), sudo apt install pipx (Debian/Ubuntu),
or python3 -m pip install --user pipx && python3 -m pipx ensurepath.
Configure
Get a token from the v6Node dashboard, then:
v6ctl config set token v6_...
Stored at ~/.config/v6ctl/config.json with mode 0600. Or set V6_TOKEN in
your environment.
Recipes
Deploy a node in one line
v6ctl nodes create -r frankfurt-2 -p 8gb -k laptop -t debian-13
Or run v6ctl nodes create on a TTY and answer the prompts. Each of
--region, --plan, --key, --template takes an ID, slug, or name —
whichever you remember.
Add a dedicated IPv4 at deploy
v6ctl nodes create -r frankfurt-2 -p 8gb -k laptop -t debian-13 \
--address dedicated_ipv4
Pin a specific image build with --flavor <id>.
Inspect a node, including every IP
v6ctl nodes show <pay-id>
v6ctl nodes list -A # show all IPs (default truncates to 2)
Manage SSH keys
v6ctl keys list
v6ctl keys create -d "laptop" -k "ssh-ed25519 AAAA..."
Subscribe a webhook to deploy events
v6ctl webhooks create -u https://example.com/hook -e node.deployed
Browse the catalog
v6ctl plans # plans + pricing
v6ctl regions # available regions
v6ctl templates # OS templates and flavors
Script it
v6ctl --json nodes list | jq '.items[].pay_id'
v6ctl --json plans | jq '.[] | select(.memory_mb >= 4096)'
Every command supports --json and exits non-zero on failure. In
non-interactive mode (pipe, CI, or --json), prompts are disabled and
missing required flags are an error — so CI fails fast instead of hanging.
v6ctl --help and v6ctl <command> --help are the source of truth for
every flag.
Configuration precedence
| Source | Priority |
|---|---|
--flag on the command line |
1 (highest) |
Env vars (V6_TOKEN, V6_API_URL) |
2 |
Config file ~/.config/v6ctl/config.json (mode 0600) |
3 |
| Built-in defaults | 4 (lowest) |
v6ctl config show # resolved config, token redacted
v6ctl config path
v6ctl config set api_url https://cloud.v6node.com/api/v1
v6ctl config unset token
Requirements
Python 3.10 or newer.
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file v6ctl-0.4.0.tar.gz.
File metadata
- Download URL: v6ctl-0.4.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abd49004c22c0166ec4db9a2cae9176d2c19895bab6feb3e846504f646b4e898
|
|
| MD5 |
4c7898b58ec5462b7acf8959ab507809
|
|
| BLAKE2b-256 |
8f8f50dce28af43b9910df66f27411c369c405c4a993c8b264a94c3bcfbd3cb6
|
File details
Details for the file v6ctl-0.4.0-py3-none-any.whl.
File metadata
- Download URL: v6ctl-0.4.0-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5553bbb6c2595ba8faf2c2a877929e99ad000cc131c77fd3c3b4bdc7b5f9082e
|
|
| MD5 |
5f761774fae71c8eb0d5c163b9e647b9
|
|
| BLAKE2b-256 |
b28f34aa2406182e74ceecc62fc3e7523018767ebaa691a9b2be5ce056169555
|