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
Contributors: this package is published to PyPI.
README.mdbecomes the public project description and the wheel shipsv6ctl.pyin full, so code comments and--helptext are public too../release.sh verifyscans the built artifacts for internal host names, site codes, CPU models and algorithms, and refuses to publish if it finds any.
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>.
Manage addresses after deploy
v6ctl nodes addresses <pay-id> # existing list shorthand
v6ctl nodes addresses add <pay-id> dedicated_ipv4
v6ctl nodes addresses add <pay-id> public_ipv6
v6ctl nodes addresses add <pay-id> routed_ipv6
v6ctl nodes addresses delete <pay-id> <address-id>
dedicated_ipv4 is billable. Routed IPv6 allocation is asynchronous; use
v6ctl nodes addresses <pay-id> or the address.created /
address.allocation_failed webhook events to observe the outcome. Shared IPv4 is
not offered. If an add or delete returns HYPERVISOR_ERROR, list the addresses
before doing anything else—the allocation or release may already be committed.
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.
Metadata
Release files for v6ctl 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| v6ctl-0.6.1.tar.gz | 20.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| v6ctl-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.1 kB
Release files / v6ctl-0.6.1.tar.gz
| Download URL | v6ctl-0.6.1.tar.gz |
|---|---|
| Size | 20.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
342d3f26f64d14e7887b95e81f8d159fc70530a657418f2d02f448b2426bfb4a
|
|
BLAKE2b-256 checksum How to use checksums |
e5e3b198680eb201fa20a11b12428804d7a3685e3851953d9bb724180c568633
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / v6ctl-0.6.1-py3-none-any.whl
| Download URL | v6ctl-0.6.1-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0cd84e4d1c6056808d738789d6cdb2e47993f0fcc05b19fe0fa6b7c27dca76a2
|
|
BLAKE2b-256 checksum How to use checksums |
950d6861d358e4e78291228c8d90163aa98a672e004f7d815c709bb6c6ef528c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|