# Proxmox CLI
[](https://badge.fury.io/py/proxmox-cli)
[](https://pypi.org/project/proxmox-cli/)
[](https://opensource.org/licenses/MIT)
A powerful command-line interface tool for managing Proxmox Virtual Environment with support for VMs, containers, users, groups, roles, and permissions.
## Features
### Infrastructure Management
- 🖥️ **Virtual Machines** - Create, start, stop, and manage VMs
- 📦 **LXC Containers** - Full container lifecycle management
- 🔧 **Nodes** - Monitor and manage cluster nodes
- 💾 **Storage** - Storage configuration and monitoring
### Identity & Access Management (IAM)
- 👤 **Users** - Create, update, and manage users
- 👥 **Groups** - Organize users into groups
- 🔐 **Roles** - Define custom roles with specific privileges
- 🔑 **API Tokens** - Generate and manage API tokens
- 🛡️ **ACLs** - Granular permission management
### Output & Configuration
- 📊 **Multiple Output Formats** - JSON (default), Table, YAML, Plain text
- ⚙️ **Configuration File** - Store credentials and preferences
- 🔒 **SSL Control** - Flexible SSL verification options
- 🚀 **Fast & Efficient** - Optimized for automation and scripting
## Installation
### From PyPI (Recommended)
```bash
pip install proxmox-cli
```
### From Source
```bash
git clone https://github.com/rwgb/proxmox.cli.git
cd proxmox.cli
pip install -e .
```
### Development Installation
```bash
pip install -e ".[dev]"
```
## Quick Start
### Basic Usage
```bash
# List all VMs (JSON output by default)
proxmox-cli vm list
# List containers in table format
proxmox-cli --output table container list
# List users
proxmox-cli user list
# Show help
proxmox-cli --help
```
### Configuration
Create a configuration file at `~/.config/proxmox-cli/config.yaml`:
```yaml
proxmox:
host: proxmox.example.com
user: root@pam
password: your-password
# Or use API token
# token_name: mytoken
# token_value: your-token-value
verify_ssl: false
output:
format: json # or table, yaml, plain
```
## Usage Examples
### Virtual Machines
```bash
# List all VMs
proxmox-cli vm list
# List VMs on specific node
proxmox-cli vm list --node pve1
# Start a VM
proxmox-cli vm start 100 --node pve1
# Stop a VM
proxmox-cli vm stop 100 --node pve1
# Get VM status
proxmox-cli vm status 100 --node pve1
```
### Containers
```bash
# List all containers
proxmox-cli container list
# Start a container
proxmox-cli container start 108 --node pve1
# Stop a container
proxmox-cli container stop 108 --node pve1
```
### User Management
```bash
# List all users
proxmox-cli user list
# Create a new user
proxmox-cli user create developer@pve \
--password "SecurePass123" \
--email "dev@example.com" \
--groups "developers"
# Update user
proxmox-cli user update developer@pve --email "newemail@example.com"
# Delete user
proxmox-cli user delete developer@pve
```
### Role & Permission Management
```bash
# List all roles
proxmox-cli role list
# Create custom role
proxmox-cli role create CustomRole \
--privs "VM.Allocate,VM.Audit,VM.PowerMgmt"
# Grant permissions
proxmox-cli acl add \
--path "/" \
--roles "PVEAdmin" \
--users "admin@pve"
```
### API Tokens
```bash
# List tokens for a user
proxmox-cli token list user@pve
# Create API token
proxmox-cli token create user@pve mytoken \
--comment "Automation token" \
--no-privsep
# Delete token
proxmox-cli token delete user@pve mytoken
```
## Output Formats
The CLI supports multiple output formats:
```bash
# JSON (default) - Perfect for scripting
proxmox-cli vm list
# Table - Human-readable
proxmox-cli --output table vm list
# YAML - Configuration-friendly
proxmox-cli --output yaml user list
# Plain text - Minimal
proxmox-cli --output plain node list
```
## Development
```bash
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
flake8 src/
black src/
```
## Configuration
Create a configuration file at `~/.config/proxmox-cli/config.yaml`:
```yaml
proxmox:
host: your-proxmox-host
user: root@pam
verify_ssl: false
```
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/rwgb/proxmox.cli",
"name": "proxmox-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "proxmox, cli, virtualization, api, management",
"author": "Ralph Brynard",
"author_email": "Ralph Brynard <ralph@thebrynards.me>",
"download_url": "https://files.pythonhosted.org/packages/68/4e/9337583a309d6d5282eedc6614709af61baf5a09a3ece19b46aef0164e6f/proxmox_cli-0.3.0.tar.gz",
"platform": null,
"description": "# Proxmox CLI\n\n[](https://badge.fury.io/py/proxmox-cli)\n[](https://pypi.org/project/proxmox-cli/)\n[](https://opensource.org/licenses/MIT)\n\nA powerful command-line interface tool for managing Proxmox Virtual Environment with support for VMs, containers, users, groups, roles, and permissions.\n\n## Features\n\n### Infrastructure Management\n- \ud83d\udda5\ufe0f **Virtual Machines** - Create, start, stop, and manage VMs\n- \ud83d\udce6 **LXC Containers** - Full container lifecycle management\n- \ud83d\udd27 **Nodes** - Monitor and manage cluster nodes\n- \ud83d\udcbe **Storage** - Storage configuration and monitoring\n\n### Identity & Access Management (IAM)\n- \ud83d\udc64 **Users** - Create, update, and manage users\n- \ud83d\udc65 **Groups** - Organize users into groups\n- \ud83d\udd10 **Roles** - Define custom roles with specific privileges\n- \ud83d\udd11 **API Tokens** - Generate and manage API tokens\n- \ud83d\udee1\ufe0f **ACLs** - Granular permission management\n\n### Output & Configuration\n- \ud83d\udcca **Multiple Output Formats** - JSON (default), Table, YAML, Plain text\n- \u2699\ufe0f **Configuration File** - Store credentials and preferences\n- \ud83d\udd12 **SSL Control** - Flexible SSL verification options\n- \ud83d\ude80 **Fast & Efficient** - Optimized for automation and scripting\n\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install proxmox-cli\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/rwgb/proxmox.cli.git\ncd proxmox.cli\npip install -e .\n```\n\n### Development Installation\n\n```bash\npip install -e \".[dev]\"\n```\n\n## Quick Start\n\n### Basic Usage\n\n```bash\n# List all VMs (JSON output by default)\nproxmox-cli vm list\n\n# List containers in table format\nproxmox-cli --output table container list\n\n# List users\nproxmox-cli user list\n\n# Show help\nproxmox-cli --help\n```\n\n### Configuration\n\nCreate a configuration file at `~/.config/proxmox-cli/config.yaml`:\n\n```yaml\nproxmox:\n host: proxmox.example.com\n user: root@pam\n password: your-password\n # Or use API token\n # token_name: mytoken\n # token_value: your-token-value\n verify_ssl: false\n\noutput:\n format: json # or table, yaml, plain\n```\n\n## Usage Examples\n\n### Virtual Machines\n\n```bash\n# List all VMs\nproxmox-cli vm list\n\n# List VMs on specific node\nproxmox-cli vm list --node pve1\n\n# Start a VM\nproxmox-cli vm start 100 --node pve1\n\n# Stop a VM\nproxmox-cli vm stop 100 --node pve1\n\n# Get VM status\nproxmox-cli vm status 100 --node pve1\n```\n\n### Containers\n\n```bash\n# List all containers\nproxmox-cli container list\n\n# Start a container\nproxmox-cli container start 108 --node pve1\n\n# Stop a container\nproxmox-cli container stop 108 --node pve1\n```\n\n### User Management\n\n```bash\n# List all users\nproxmox-cli user list\n\n# Create a new user\nproxmox-cli user create developer@pve \\\n --password \"SecurePass123\" \\\n --email \"dev@example.com\" \\\n --groups \"developers\"\n\n# Update user\nproxmox-cli user update developer@pve --email \"newemail@example.com\"\n\n# Delete user\nproxmox-cli user delete developer@pve\n```\n\n### Role & Permission Management\n\n```bash\n# List all roles\nproxmox-cli role list\n\n# Create custom role\nproxmox-cli role create CustomRole \\\n --privs \"VM.Allocate,VM.Audit,VM.PowerMgmt\"\n\n# Grant permissions\nproxmox-cli acl add \\\n --path \"/\" \\\n --roles \"PVEAdmin\" \\\n --users \"admin@pve\"\n```\n\n### API Tokens\n\n```bash\n# List tokens for a user\nproxmox-cli token list user@pve\n\n# Create API token\nproxmox-cli token create user@pve mytoken \\\n --comment \"Automation token\" \\\n --no-privsep\n\n# Delete token\nproxmox-cli token delete user@pve mytoken\n```\n\n## Output Formats\n\nThe CLI supports multiple output formats:\n\n```bash\n# JSON (default) - Perfect for scripting\nproxmox-cli vm list\n\n# Table - Human-readable\nproxmox-cli --output table vm list\n\n# YAML - Configuration-friendly\nproxmox-cli --output yaml user list\n\n# Plain text - Minimal\nproxmox-cli --output plain node list\n```\n\n## Development\n\n```bash\n# Install development dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run linting\nflake8 src/\nblack src/\n```\n\n## Configuration\n\nCreate a configuration file at `~/.config/proxmox-cli/config.yaml`:\n\n```yaml\nproxmox:\n host: your-proxmox-host\n user: root@pam\n verify_ssl: false\n```\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A command-line interface for Proxmox Virtual Environment",
"version": "0.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/rwgb/proxmox.cli/issues",
"Documentation": "https://github.com/rwgb/proxmox.cli/blob/main/README.md",
"Homepage": "https://github.com/rwgb/proxmox.cli",
"Repository": "https://github.com/rwgb/proxmox.cli"
},
"split_keywords": [
"proxmox",
" cli",
" virtualization",
" api",
" management"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c361db7478236d78fba9e0f81b2c1334e30704f8dc96222ba60fc6390f0b00e0",
"md5": "baad0698a3fd56bd0c8179a4f000b748",
"sha256": "38752da8bd0fc9f28c7cef53058d26ad304a28ac006c56d43553c81be376a760"
},
"downloads": -1,
"filename": "proxmox_cli-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "baad0698a3fd56bd0c8179a4f000b748",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24620,
"upload_time": "2025-11-01T15:06:41",
"upload_time_iso_8601": "2025-11-01T15:06:41.797839Z",
"url": "https://files.pythonhosted.org/packages/c3/61/db7478236d78fba9e0f81b2c1334e30704f8dc96222ba60fc6390f0b00e0/proxmox_cli-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "684e9337583a309d6d5282eedc6614709af61baf5a09a3ece19b46aef0164e6f",
"md5": "823565d1db7954b15aee2d243647ae93",
"sha256": "4ac9bf3d13349bde5139de90619d971fac476eb6780ec2d4d34339e6bd410c77"
},
"downloads": -1,
"filename": "proxmox_cli-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "823565d1db7954b15aee2d243647ae93",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 21180,
"upload_time": "2025-11-01T15:06:42",
"upload_time_iso_8601": "2025-11-01T15:06:42.933321Z",
"url": "https://files.pythonhosted.org/packages/68/4e/9337583a309d6d5282eedc6614709af61baf5a09a3ece19b46aef0164e6f/proxmox_cli-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-01 15:06:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rwgb",
"github_project": "proxmox.cli",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "proxmoxer",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.28.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
">=",
"6.0"
]
]
},
{
"name": "rich",
"specs": [
[
">=",
"13.0.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
">=",
"0.9.0"
]
]
}
],
"lcname": "proxmox-cli"
}