A native console for Proxmox VE.
The cluster tree, real VNC consoles for virtual machines, text consoles for containers and node shells, and the Proxmox web interface itself — in one app, with the guest's clipboard wired to your own. Windows, macOS and Linux; x86_64 and ARM64. It follows your system theme out of the box — or pin it light or dark — and consoles stay dark regardless, as they should.
Version 1.2.2 · clean-room protocol engine · 781 automated tests
assets/screenshots/console.jpg when present.)Copy and paste shouldn't be the hard part.
Proxmox's built-in noVNC console is fine — until you need to move text in or out of a guest. The browser sandbox means no seamless clipboard, so you end up retyping passwords and shuttling text through side channels.
The usual answer, SPICE, is effectively unmaintained on the desktop: the reference Windows client hasn't had a release since 2021, is x86_64-only, and upstream platforms have been dropping the protocol altogether.
PMClient takes the direct route. It speaks VNC straight to the cluster
through its own clean-room RFB 3.8 engine and implements the RFB Extended Clipboard
extension, bound to your real system clipboard. Turn on clipboard=vnc for the
VM — PVE 8.1+, one click from inside PMClient — and Ctrl+C / Ctrl+V just
works, in both directions.
And yes: the guest-side helper is still called the SPICE agent. That's a name,
not a dependency — QEMU reuses that small in-guest channel for clipboard=vnc,
and no SPICE connection is ever involved. The agent comes with the standard guest tooling:
on Windows, Red Hat's virtio-win installer delivers it alongside the QEMU guest agent;
on Linux it's the spice-vdagent package, a small companion to the usual
qemu-guest-agent. What's abandoned is the desktop SPICE client
stack — exactly the part PMClient replaces.
Everything between you and the guest, done properly.
Clipboard that just works
The RFB Extended Clipboard, both directions, wired to your OS clipboard — with one-click enablement on the VM and real detection of a dead guest agent instead of silent failure.
A clean-room VNC engine
RFB 3.8 written from the specification: ZRLE, Tight, Hextile and Raw decoders, resize and cursor handling, QEMU extended key events. ZRLE by default; switch to Tight for slow links.
The whole cluster, one window
Server, Folder and Pool views of the resource tree, a native datacenter summary, storage contents at a glance — and the Proxmox web UI itself, already signed in: embedded in the pane on Windows and macOS, in its own isolated window on Linux.
Real terminals
Text consoles for containers, node shells and serial VMs, backed by a genuine VT engine — vim, htop and other full-screen programs behave the way they should.
Sign in your way
Passwords, TOTP and WebAuthn second factors, API tokens — or browser sign-in through any OpenID Connect realm the cluster trusts: Entra, Okta, Keycloak, Authentik. PMClient fronts PVE's own OpenID flow, using the redirect your web UI already has.
Security without escape hatches
SHA-256 certificate pinning: confirm on first contact, loud refusal on mismatch — and deliberately no "ignore" button. Secrets live in DPAPI, Keychain or Secret Service, never in a file.
Migration without guesswork
Right-click a guest: every target shows its route and cost up front — replicated, shared storage, or how much local disk gets copied. Nodes that can't take the guest stay listed, disabled, with the reason — the mid-upgrade traps PVE's own target list doesn't catch.
Blockers, named up front
If a guest can't move at all — a linked clone, a device pinned to its node — the menu says Blocked and why before anything starts, not minutes into a transfer. And unknowns fail open: a fact PMClient can't check never hides a choice you're entitled to.
Watch it move
Before committing you're told what to expect: a running VM pauses briefly, a container
restarts. Then a live chip on the VM's row names the phase that dominates —
migrating · disk 85%, migrating · RAM 42% — parsed from the
cluster's own task log.
Consoles that follow the guest
A live migration kills the old node's console proxy. PMClient notices, waits until the guest is actually running, re-resolves its new node and reconnects with a fresh ticket — bounded backoff instead of a hung window.
Resolutions, without the console fight
Pick a resolution from the console bar and a Linux guest follows it — up to 4K, nothing to install. Windows guests get a one-click switch to a virtio-gpu display that unlocks the full resolution list inside the guest — and the console tracks whatever the guest picks.
Keep nodes current
Right-click a node to refresh its package index or run the full upgrade — in a real console you watch, not a spinner. A status line names what's pending by origin (17 Debian, 4 Proxmox), and when a newer kernel is installed than the one running, PMClient says a reboot is due.
Fluent in PVE permissions
PMClient reads your account's effective privileges — pool inheritance, privilege-separated API tokens and all — and shapes itself to match: power and migration actions you lack simply don't appear. Anything the cluster still refuses is explained in plain language that names the privilege to ask for — not a raw API error.
Batteries included, everywhere
Windows, macOS and Linux — x86_64 and ARM64 natively on each, from Snapdragon X laptops to Apple silicon. Every build carries its runtime inside: no .NET to set up, no dependency chasing.
A closer look.
Version 1.2.2
Pick the build that matches your OS and CPU. Every build carries its own runtime — there is nothing to set up first. Public downloads are being staged — the links below lead to a holding page until they open.
| OS / CPU | File | Notes |
|---|---|---|
| Windows · x86_64 | WickaSoft-PMClient-1.2.2-win-x64.exe |
The normal choice on desktops and most laptops. |
| Windows · ARM64 | WickaSoft-PMClient-1.2.2-win-arm64.exe |
Snapdragon X, Surface Pro X/11. The x86_64 build runs under emulation, but native is much faster. |
| Linux · x86_64 | wickasoft-pmclient_1.2.2_amd64.deb |
Debian / Ubuntu package: sudo apt install ./wickasoft-pmclient_1.2.2_amd64.deb |
| Linux · ARM64 | wickasoft-pmclient_1.2.2_arm64.deb |
As above. |
| Linux · other distros | …-linux-x64.tar.gz ·
…-linux-arm64.tar.gz |
Untar and run — the tarball preserves the executable bit. |
| macOS · Apple silicon | WickaSoft-PMClient-1.2.2-osx-arm64.zip |
A regular .app bundle — unzip and drag to Applications. |
| macOS · Intel | WickaSoft-PMClient-1.2.2-osx-x64.zip |
As above. |
Not sure which CPU you have? Windows: Settings → System → About →
System type. Linux and macOS: uname -m.
Setup steps, shortcuts, permissions and troubleshooting live in the
documentation.
clipboard=vnc on the VM's display — PMClient can flip that for you — plus
the SPICE agent in the guest: part of the virtio-win guest tools on Windows, the
spice-vdagent package alongside the usual qemu-guest-agent
on Linux.