
If you run Proxmox VE without an active subscription, you’ll be familiar with the “No valid subscription” reminder that appears when you log into the web interface.
I recently applied a small change to hide it on my Proxmox VE 9 installation. Here’s the method I tested, including how to back up the file and reverse the change.
This is an unofficial modification to the web interface. It hides the reminder but doesn’t activate a subscription, provide support or unlock the enterprise repository. Paid subscriptions help support Proxmox development.
1. Check the existing code
Open Shell on the Proxmox node whose web interface you connect to, using root.
Run this read-only command:
grep -n -A 35 'checked_command:' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsOn my installation, the function started with:
checked_command: function (orig_cmd) {
The following code checked the subscription status and displayed the reminder if it wasn’t active.
The patch below matches that function declaration exactly. If yours looks different, check the code before proceeding.
2. Back up the file and apply the change
Run this command:
sed -i.bak 's/checked_command: function (orig_cmd) {$/& orig_cmd(); return;/' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsThis saves a backup as proxmoxlib.js.bak and applies the modification.
Check the edited line with:
grep -n 'checked_command:' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsThe result should contain:
checked_command: function (orig_cmd) { orig_cmd(); return;
The inserted code runs the requested action immediately and returns before the subscription check. If the printed line hasn’t changed, the patch hasn’t matched.
Keep the backup from the first successful change. Running the patch command again can overwrite that backup with an already modified copy. The matching pattern prevents the insertion being added twice.
3. Refresh the browser and test
Press Ctrl+Shift+R to reload the web interface, then log out and back in.
On my installation, the reminder disappeared without restarting the server or any web services.
Clusters and virtual IP addresses
This modification is local to each node. It doesn’t automatically spread through the cluster.
If you always log in through Node 1’s address, applying it to Node 1 is sufficient. Selecting another node within that interface doesn’t load a different copy of the web interface.
I use a floating virtual IP at home and at the office. Because that address can move between nodes, I decided to apply the change to all participating nodes.
Otherwise, connecting after failover can bring the reminder back when the browser loads the interface from an unmodified node.
What happens after updates?
An update to the proxmox-widget-toolkit package can replace the modified file and restore the reminder.
If it returns, check the function again before repeating the modification. This method doesn’t install anything to reapply the patch automatically.
How to undo the change
To remove the insertion made by this guide, run:
sed -i 's/checked_command: function (orig_cmd) { orig_cmd(); return;$/checked_command: function (orig_cmd) {/' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsCheck the resulting line:
grep -n 'checked_command:' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.jsIt should once again contain:
checked_command: function (orig_cmd) {
Hard-refresh the browser and log in again.
You can also restore your original backup if the toolkit hasn’t been updated since you created it. After an update, avoid restoring an old JavaScript file over the newer version; remove the insertion above or reinstall the current toolkit package instead.