Metadata-Version: 2.4
Name: voltagegpu-cli
Version: 1.2.0
Summary: VoltageGPU CLI — Deploy and manage Confidential Compute (Intel TDX) GPU pods from the command line.
Project-URL: Homepage, https://voltagegpu.com
Project-URL: Documentation, https://docs.voltagegpu.com
Project-URL: Repository, https://github.com/voltagegpu/voltagegpu-cli
Project-URL: Issues, https://github.com/voltagegpu/voltagegpu-cli/issues
Author-email: VoltageGPU <support@voltagegpu.com>
License-File: LICENSE
Keywords: ai,attestation,cli,cloud,confidential-compute,gpu,intel-tdx,tee,trusted-execution,voltagegpu
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Security
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.9
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: build; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Description-Content-Type: text/markdown

# VoltageGPU CLI

**Confidential AI Infrastructure from the command line.**

`voltagegpu-cli` lets you deploy and manage **Confidential Compute** GPU pods on
[VoltageGPU](https://voltagegpu.com) — hardware-attested Intel TDX environments
with AES memory encryption and Protected PCIe, built for regulated workloads
that cannot trust the host.

## Install

```bash
pip install voltagegpu-cli
```

Or from source:

```bash
git clone https://github.com/voltagegpu/voltagegpu-cli.git
cd voltagegpu-cli
pip install -e .
```

## Configure

Get an API key from [voltagegpu.com](https://voltagegpu.com) and set it:

```bash
export VOLT_API_KEY="your_api_key_here"
```

Or create `~/.volt/config.ini`:

```ini
[api]
api_key = your_api_key_here
```

## Quick start

```bash
# Browse available Confidential Compute GPU tiers
volt cc inventory

# Register your SSH public key
volt ssh-keys add --name laptop --file ~/.ssh/id_ed25519.pub

# Deploy a hardware-attested pod
volt cc deploy --name my-pod --resource h200-small --image ubuntu:22.04

# List running pods
volt pods list

# Print the SSH command
volt pods ssh <pod_id>

# Stop or delete
volt pods stop <pod_id>
volt pods delete <pod_id>
```

## Commands

### Confidential Compute

```bash
volt cc inventory                      # list available GPU tiers + prices
volt cc deploy --name NAME \           # deploy a pod
               --resource TIER \
               --image ubuntu:22.04 \
               [--ssh-key <uid>]
```

### Pods

```bash
volt pods list [--json]
volt pods get <pod_id>
volt pods ssh <pod_id>
volt pods stop <pod_id>
volt pods delete <pod_id> [--yes]
```

### SSH keys

```bash
volt ssh-keys list [--json]
volt ssh-keys add --name LABEL (--file PATH | --key "ssh-ed25519 AAAA…")
volt ssh-keys delete <key_id> [--yes]
```

### Account

```bash
volt account balance
volt account info
volt config               # show current SDK config (masked)
```

All list commands support `--json` for machine-readable output.

## Python SDK

```python
from volt import VoltageGPUClient

with VoltageGPUClient() as client:
    # Browse inventory
    for item in client.list_confidential_inventory():
        print(item["display_name"], item["final_price_per_hour"])

    # Deploy a pod
    result = client.create_confidential_pod(
        name="training-run",
        resource_name="h200-small",
        image="ubuntu:22.04",
    )
    pod = result["pod"]
    print(f"Deployed {pod['targonUid']} — {pod['ssh_command']}")

    # List, stop, delete
    for pod in client.list_pods():
        print(pod.name, pod.status, pod.hourly_price)

    client.stop_pod(pod.id)
    client.delete_pod(pod.id)
```

### Custom configuration

```python
from volt.sdk import Config, VoltageGPUClient

client = VoltageGPUClient(
    config=Config(
        api_key="your_api_key",
        base_url="https://api.voltagegpu.com/api",
    )
)
```

## Environment variables

| Variable         | Description                 | Default                              |
|------------------|-----------------------------|--------------------------------------|
| `VOLT_API_KEY`   | Your VoltageGPU API key     | —                                    |
| `VOLT_BASE_URL`  | API base URL                | `https://api.voltagegpu.com/api`     |

## Examples

### Stop every running pod

```bash
volt pods list --json | \
  jq -r '.[] | select(.status == "RUNNING") | .id' | \
  xargs -I {} volt pods stop {}
```

### Pick the cheapest H200 tier

```bash
volt cc inventory --json | \
  jq 'map(select(.display_name | test("H200"))) | sort_by(.final_price_per_hour)[0]'
```

## Support

- Website: https://voltagegpu.com
- Docs:    https://docs.voltagegpu.com
- Email:   support@voltagegpu.com

## License

MIT — see [LICENSE](LICENSE).
