proxmox-cli


Nameproxmox-cli JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/rwgb/proxmox.cli
SummaryA command-line interface for Proxmox Virtual Environment
upload_time2025-11-01 15:06:42
maintainerNone
docs_urlNone
authorRalph Brynard
requires_python>=3.8
licenseMIT
keywords proxmox cli virtualization api management
VCS
bugtrack_url
requirements click proxmoxer requests pyyaml rich tabulate
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Proxmox CLI

[![PyPI version](https://badge.fury.io/py/proxmox-cli.svg)](https://badge.fury.io/py/proxmox-cli)
[![Python versions](https://img.shields.io/pypi/pyversions/proxmox-cli.svg)](https://pypi.org/project/proxmox-cli/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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[![PyPI version](https://badge.fury.io/py/proxmox-cli.svg)](https://badge.fury.io/py/proxmox-cli)\n[![Python versions](https://img.shields.io/pypi/pyversions/proxmox-cli.svg)](https://pypi.org/project/proxmox-cli/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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"
}
        
Elapsed time: 1.82830s