{"name":"@deckyard/proxmox","description":"A client for the Proxmox VE API: guests, nodes, storage and tasks","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-proxmox.git","ref":"0.1.0","commit":"205348cbf2e11195887c6fe8faa0575d5b56cf0e","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0"},"capabilities":["net"],"keywords":["proxmox","pve","virtualization","kvm","lxc"],"description":"A client for the Proxmox VE API: guests, nodes, storage and tasks","publishedAt":"1793739273","repoId":1444816277,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/proxmox\n\n[![test](https://github.com/deckyard/deck-proxmox/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-proxmox/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-proxmox/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-proxmox)](https://github.com/deckyard/deck-proxmox/releases/latest)\n\nA [Jennifer](https://jennifer-lang.dev/) client for the\n[Proxmox VE](https://www.proxmox.com/en/proxmox-virtual-environment) API.\n`get`, `post`, `put` and `delete` reach every endpoint; typed verbs cover\nnodes, guests (QEMU VMs and LXC containers), creating and deleting them,\npower actions, cloning, templates, snapshots, IP addresses, migration,\ndisk resizing, cloud-init, backups and restores, ISOs and container\ntemplates, metrics, pools, HA, firewall rules, permissions and background\ntasks. It authenticates with an API token\nor a password ticket (TOTP included) and trusts the cluster's own CA.\n\n**[Documentation](https://deckyard.github.io/deck-proxmox/)**\n\n## Install\n\n```sh\njvc add @deckyard/proxmox\n```\n\nOr unpack `src/` from a release archive (`deckyard-proxmox-\u003cversion\u003e.tar.gz`)\ninto `vendor/deckyard/proxmox/`.\n\n## Usage\n\n```jennifer\nuse io;\nimport \"@deckyard/proxmox/\" as proxmox;\n\ndef c as proxmox.Client init proxmox.client(\"pve.example.com\");\n$c = proxmox.withCaCert($c, fs.readBytes(\"pve-root-ca.pem\"));\n$c = proxmox.withToken($c, \"root@pam!automation\", os.getEnv(\"PVE_TOKEN_SECRET\"));\n\nfor (def g in proxmox.guests($c)) {\n    io.printf(\"%6d %-20s %s\\n\", $g.vmid, $g.name, $g.status);\n}\n\ndef web as proxmox.Guest init proxmox.guest($c, 101);\ndef t as proxmox.Task init proxmox.waitTask($c, proxmox.start($c, $web), 60000);\nio.printf(\"start: %s\\n\", $t.exitStatus);\n```\n\n## Requirements\n\nJennifer 0.25.0 or newer and the default `jennifer` binary: the deck needs\nthe `net` capability, which `jennifer-tiny` lacks.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/proxmox_test.j     # the test overlay, offline\ntools/check-docs.sh                  # docs against the code\ntools/pack.sh dist                   # build the release archive\n```\n\nThe tests answer from a fake server on a loopback port. The examples need a\nreal host; see their headers.\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\nProxmox is a registered trademark of Proxmox Server Solutions GmbH. This deck\nis not affiliated with or endorsed by it.\n"}