Metadata-Version: 2.4
Name: v6ctl
Version: 0.1.0
Summary: Command-line interface for the v6Node cloud platform.
Author-email: v6Node <support@v6node.com>
License: MIT
Project-URL: Homepage, https://v6node.com
Project-URL: Repository, https://github.com/v6Node/v6ctl
Project-URL: Issues, https://github.com/v6Node/v6ctl/issues
Keywords: v6node,cloud,vps,cli,hosting
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1
Requires-Dist: rich>=13.0
Requires-Dist: requests>=2.31
Dynamic: license-file

# v6ctl

The official command-line interface for the [v6Node](https://v6node.com) cloud platform.

Deploy and manage VPS nodes, SSH keys, webhooks, and more — all from your terminal.

```text
$ v6ctl nodes list
╭───────────────────────────── Nodes ─────────────────────────────╮
│ ID        Hostname      Region    Plan      OS          IP     │
│ a0fd028d  prod-web-1    Nürnberg  Standard  debian-13   5.1.2.3 │
│ b12c444e  staging-db    Nürnberg  Compute   ubuntu-24   5.1.2.4 │
╰─────────────────────────────────────────────────────────────────╯
```

## Install

```bash
pipx install v6ctl
```

### Don't have pipx?

```bash
# macOS
brew install pipx

# Debian / Ubuntu
sudo apt install pipx

# Everywhere else
python3 -m pip install --user pipx
python3 -m pipx ensurepath
```

Or use plain pip:

```bash
pip install v6ctl
```

## Configure

Get your API token from the [v6Node dashboard](https://cloud.v6node.com), then:

```bash
v6ctl config set token v6_...
```

Token is stored at `~/.config/v6ctl/config.json` with `0600` permissions.

Alternatively, set `V6_TOKEN` in your environment.

## Use

```bash
v6ctl nodes list                                # list your nodes
v6ctl nodes show <pay-id>                       # full details for a node
v6ctl nodes create -r 7 -p 13 -k 3200 -t debian-13
v6ctl nodes reboot <pay-id>
v6ctl nodes delete <pay-id>

v6ctl keys list                                 # list SSH keys
v6ctl keys create -d "laptop" -k "ssh-ed25519 AAAA..."

v6ctl webhooks create -u https://example.com/hook -e node.deployed

v6ctl plans                                     # available plans + pricing
v6ctl regions                                   # available regions
v6ctl templates                                 # available OS templates
```

Run `v6ctl --help` or `v6ctl <command> --help` for the full reference.

## JSON output

Every command supports `--json` for scripting:

```bash
v6ctl --json nodes list | jq '.items[].pay_id'
v6ctl --json plans       | jq '.[] | select(.memory_mb >= 4096)'
```

## Configuration

| Where | Precedence |
| --- | --- |
| `--flag` on the command line | 1 (highest) |
| Environment variable (`V6_TOKEN`, `V6_API_URL`) | 2 |
| Config file `~/.config/v6ctl/config.json` | 3 |
| Built-in defaults | 4 (lowest) |

```bash
v6ctl config show            # show resolved config (token redacted)
v6ctl config path            # print config file 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](LICENSE).
