cv4pve-pepper is a tool designed to simplify SPICE remote-viewer connections to Proxmox VE virtual machines and containers, enabling seamless access for system administrators and DevOps professionals.
Key Features:
Proxmox VE API Integration: Connects directly to Proxmox VE clusters using the official API, eliminating the need for manual ticket handling or root access.
Automatic Ticket Management: Handles SPICE session tickets automatically, including generation and expiration, ensuring smooth connections without user intervention.
Cross-Platform Support: Available on Windows, Linux, and macOS, making it versatile for diverse environments.
Cluster Failover Support: Connects to the nearest available node in a Proxmox VE cluster, providing high availability and reliability.
Advanced Management Options: Includes features like VM auto-start or resume, session timeout handling, and support for API tokens (Proxmox VE 6.2+).
Audience & Benefit:
Ideal for system administrators and DevOps teams managing Proxmox VE environments who require quick, reliable access to virtual machines and containers. By automating SPICE connections and ticket management, cv4pve-pepper improves workflow efficiency and reduces manual overhead.
The tool can be installed via winget on Windows, ensuring seamless integration into existing workflows.
# Check available releases at: https://github.com/Corsinvest/cv4pve-pepper/releases
# Download specific version (replace VERSION with actual version like v1.9.0)
wget https://github.com/Corsinvest/cv4pve-pepper/releases/download/VERSION/cv4pve-pepper-linux-x64.zip
# Extract and make executable
unzip cv4pve-pepper-linux-x64.zip
chmod +x cv4pve-pepper
# Optional: Move to system path
sudo mv cv4pve-pepper /usr/local/bin/
Windows Installation
Option 1: Winget (Recommended)
# Install using Windows Package Manager
winget install Corsinvest.cv4pve.pepper
Option 2: Manual Installation
# Check available releases at: https://github.com/Corsinvest/cv4pve-pepper/releases
# Download specific version (replace VERSION with actual version)
Invoke-WebRequest -Uri "https://github.com/Corsinvest/cv4pve-pepper/releases/download/VERSION/cv4pve-pepper.exe-win-x64.zip" -OutFile "cv4pve-pepper.zip"
# Extract
Expand-Archive cv4pve-pepper.zip -DestinationPath "C:\Tools\cv4pve-pepper"
# Add to PATH (optional)
$env:PATH += ";C:\Tools\cv4pve-pepper"
macOS Installation
# Check available releases at: https://github.com/Corsinvest/cv4pve-pepper/releases
# Download specific version (replace VERSION with actual version)
wget https://github.com/Corsinvest/cv4pve-pepper/releases/download/VERSION/cv4pve-pepper-osx-x64.zip
unzip cv4pve-pepper-osx-x64.zip
chmod +x cv4pve-pepper
# Move to applications
sudo mv cv4pve-pepper /usr/local/bin/
Usage
Basic Connection
# Connect to VM using username/password
cv4pve-pepper --host=192.168.1.100 --username=root@pam --password=secret --vmid=100 --viewer=/usr/bin/remote-viewer
# Connect using API token (recommended)
cv4pve-pepper --host=192.168.1.100 --api-token=user@pve!token1=uuid-here --vmid=100 --viewer=/usr/bin/remote-viewer
Advanced Options
# Auto-start stopped VM and connect
cv4pve-pepper --host=pve.local --username=root@pam --password=secret --vmid=100 --viewer=/usr/bin/remote-viewer --start-or-resume
# Connect with fullscreen viewer
cv4pve-pepper --host=pve.local --api-token=user@pve!token=uuid --vmid=100 --viewer=/usr/bin/remote-viewer --viewer-options="-f"
# Connect using VM name instead of ID
cv4pve-pepper --host=pve.local --username=root@pam --password=secret --vmid=webserver --viewer=/usr/bin/remote-viewer
# Use with reverse proxy
cv4pve-pepper --host=pve.local --username=root@pam --password=secret --vmid=100 --viewer=/usr/bin/remote-viewer --proxy=https://spice.company.com:3128
High Availability Cluster
# Multiple hosts for HA failover
cv4pve-pepper --host=pve1.local:8006,pve2.local:8006,pve3.local:8006 --api-token=user@pve!token=uuid --vmid=100 --viewer=/usr/bin/remote-viewer
# Test network connectivity
ping pve.local
telnet pve.local 8006
# Try with IP address instead
cv4pve-pepper --host=192.168.1.100 --username=root@pam --password=secret --vmid=100 --viewer=/usr/bin/remote-viewer
# Enable SSL validation if needed
cv4pve-pepper --host=pve.local --username=root@pam --password=secret --validate-certificate --vmid=100 --viewer=/usr/bin/remote-viewer
Viewer not found
Find viewer path:
# Linux
which remote-viewer
# Common path: /usr/bin/remote-viewer
# Windows (PowerShell)
Get-Command remote-viewer
# Common path: C:\Program Files\VirtViewer v*\bin\remote-viewer.exe