Bluetooth in your Proxmox Linux VMs. Finally.

Pair a controller, headphones, or a Home Assistant sensor inside a VM - even with a Bluetooth chip that "can't be passed through."

TL;DR: USB-passing a Bluetooth adapter into a VM makes the chip drop its firmware, and the guest can only recover if it has the right driver and firmware blobs. Full distros often manage it; Home Assistant OS, ChimeraOS, Bazzite and other trimmed or immutable guests frequently don't, and Intel onboard combo chips (BE200, AX210, AX211) are the worst offenders. This tool skips the handoff: the adapter stays on the host and is shared to the VM over the network. Two commands, survives reboots. Try plain USB passthrough first - it's simpler and works for plenty of setups.
Xbox controller connected in Steam inside a ChimeraOS VM, bridged from the Proxmox host's Bluetooth chip
View on GitHub Full README

Two commands

On the Proxmox host:

curl -fsSL https://raw.githubusercontent.com/lucid-fabrics/proxmox-bluetooth/main/install.sh | sudo bash

It prints one line - paste that inside your VM. Done.

Frequently asked questions

Why can't I just pass the USB Bluetooth controller through to the VM?

Nearly all Bluetooth adapters clear their firmware when they're re-enumerated on USB, so after a passthrough the guest has to load it again. That works when the guest has the matching driver and firmware blobs, which is why a full Debian or Arch VM often passes through fine. It fails when the guest can't: Home Assistant OS and gaming distros ship trimmed kernels and incomplete linux-firmware, and Intel CNVi combo chips (BE200, AX2xx) are especially unforgiving. Try plain USB passthrough first - if your guest is only missing a firmware package, install it and you don't need this tool.

Will my controller lag?

No. The bridge forwards HCI over a local TCP connection, which on a LAN is far below Bluetooth's own radio latency. In practice controllers feel the same as on bare metal.

Does it work for headphones, keyboards, or Home Assistant sensors?

Yes. The bridge is protocol-transparent - it forwards raw Bluetooth traffic without understanding or filtering it. Anything that works on a normal Linux Bluetooth adapter works: controllers, audio, HID, and BLE sensors for Home Assistant.

Do I need to buy new hardware?

No. The Bluetooth chip you already have works - even the one you might have already replaced trying to fix this.

Does it survive ChimeraOS or Bazzite OS updates?

Yes. Those distros replace the system image on update but keep /etc and /var, which is exactly where this installs. The bridge and your pairings come back on their own.

Is it secure?

Know the trade-off. The bridge speaks plain, unauthenticated TCP on port 9700, so by default whichever machine on your LAN connects first gets the Bluetooth chip, with raw HCI access to the radio. Lock it to your VM with ./install.sh --allow 192.168.1.50, which installs an nftables rule accepting that address and dropping everything else. There is no encryption either, so treat it as a trusted-LAN tool between a host and its own VM, not something to route across networks you don't control.

Is this Proxmox-specific?

No - any Linux host running KVM VMs works, or even two separate physical machines. Proxmox is just where this problem is reported the most.

Full FAQ, compatibility table, and install script: see the README.