Hey everyone,

I recently bought a brand new UPS for my local Linux desktop setup, and what should have been a straightforward afternoon project turned into an absolute nightmare of text files and terminal debugging. I decided to use Network UPS Tools (NUT), but as a desktop user with a single, locally connected USB unit, the onboarding friction was incredibly frustrating:

  • Just trying to figure out which packages to install (nut, nut-client, usbhid-ups, upsd) felt fragmented.
  • The official documentation is dense and heavily geared toward massive, multi-node enterprise network topographies rather than a single local workstation.
  • I kept running into silent connection failures, driver mismatch errors, and permission blocks under /etc/nut/ that took hours to track down because there wasn't an easy way to diagnose what was actually failing.

Once I finally got the daemons running, I ran into my next disappointment: the lack of good, modern desktop GUI tools. The official legacy Python/GTK apps look like they were built in the 90s, and the modern web-based alternatives (like PeaNUT or Nutify) are strictly read-only monitoring dashboards. They expect you to do all the heavy configuration lifting in the CLI before you ever launch them. I originally sat down and started writing a tool just to solve my own frustration, but after getting it working, I realized it could be genuinely useful for a lot of people in the same boat.

I call it Voltwise (tentative name). It’s a native cross-platform desktop application built using .NET and Avalonia UI. Unlike read-only dashboards, it features a complete setup and diagnostic wizard designed specifically for single, locally connected UPS hardware. It acts as an automated guide through the exact pipeline I struggled with: it auto-discovers USB hardware IDs, maps drivers, handles configuration formatting, audits folder permissions, and validates live communication state rules. It handles on-demand system elevation securely and natively using pkexec (PolKit), meaning the app runs safely in user space and only requests root authentication when actively writing files to /etc/nut/.

Here is how it currently looks (I'm still actively refining and adding features))

The setup and diagnostic wizard:

The live monitoring screen (Completely customizable):

Events:

UPS Device settings:

Raw configuration file editing:

Here is the catch, and why I’m posting here before releasing it:

I am a solo dev, and a very large portion of this application was developed with heavy generative AI assistance to handle cross-platform boilerplate, XAML layout structures, and environmental path mapping. I manually architected the security boundaries, audited every line of code, and verified all the hardware loops against my physical desktop, but the AI footprint is undeniably there.

Given the current anti-AI climate, I’m feeling a bit hesitant. I’m strongly considering releasing the project under the MIT License so the homelab and Linux desktop community can freely use, fork, or dissect it. However, I’m trying to gauge if it is actually worth the hassle of dealing with the inevitable internet backlash from people who will instantly write it off as "AI slop" without looking at the functionality or utility.

  • Would a streamlined, local-only native desktop NUT setup wizard like this be helpful to you?
  • Is an MIT release the right path forward here?
  • Should I bother putting this on GitHub, or is the AI-assisted development stigma going to completely bury a functional utility?

Appreciate any honest thoughts or feedback!

all 6 comments

sorted by: hot top controversial new old
[–] 2 points 13 hours ago

I'm anti AI. But I also know that it is a tool that has its uses. It's too bad corps are fucking that up.

Yes, if what you say is true, I would definitely try this out

  • source
  • [–] 2 points 19 hours ago (2 children)

    a very large portion of this application was developed with heavy generative AI assistance

    Yeah we can tell

  • source
  • hideshow 2 child comments
  • [–] [S] 1 point 12 hours ago (1 child)

    I wanted to be very clear from the start how this project was made, so I disclosed the AI use front and center. I created it for myself and later thought it might be useful for others. I'm not asking anyone else to use it.

    I will take your comment as a note that you don't care for the asthetic.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 5 points 1 day ago (1 child)

    I generally have good success with old software that looks like it's last overhaul was in the 90s... No idea how that's with NUT software... But usually those solutions are very customizable and pretty much indestructible. They've done their job for the last 30 years and unless there's some nasty stuff like a migration from Python2 to Python3 in the way, they'll probably run for another 20 years to come.

  • source
  • hideshow 1 child comment
  • [–] [S] 4 points 1 day ago*

    Agreed, older software that's still around got that way for a reason.

    My focus here was more about the guided setup and diagnostic experience. Setting up NUT involves getting about 4-5 different services configured correctly and talking to each other with many different poorly documented configuration files. I wanted to build something that could go from plugging in a UPS, to a fully working monitoring dashboard, in about 3 clicks. I wasn't able to find something that did anything even remotely close to that, so this is what I came up with.

    I appreciate your thoughts on this. Thank you!

  • source
  • parent