Hi everyone!
@AlexTrovato, here’s what you asked for: Moonraker / Klipper, for 3D printers running Klipper (Voron, RatRig, Sovol, Elegoo, rooted Creality K1 and K2…), with Mainsail or Fluidd. The third stage of the “3D printing pack” after OctoPrint and Bambu Lab. Everything runs locally, through Moonraker’s API.
What it does
- One device per printer (up to 3): status, file, progress, elapsed and remaining time, layer, temperatures and setpoints (nozzles, bed, chamber, sensors), fan, webcam, and pause/resume buttons.
- A “3D Printing Klipper” widget: gauge, temperatures, end time, and the buttons useful at the moment.
- Triggers: print started, finished, failed or cancelled, paused, and Klipper stopped on an error (with its message).
- Scene actions: pause, resume, cancel, preheat, cut power, and run a Klipper macro by name.
Same caution as for the other two: temperature setpoints are read-only on the device, and emergency stop is not exposed.
The cool part
Print finished → “benchy finished in 1h 05” on Telegram
Klipper stops on an error → alert with Klipper’s message
Smoke detected → cancel, cut power, turn off the printer’s outlet
Installation
Gladys 5.1 minimum.
It will arrive in the store at the next indexer update. In the meantime: Integrations → Install from GitHub, with the address GitHub - guim31/gladys-moonraker: Moonraker / Klipper 3D printers for Gladys Assistant: progress, temperatures, pause and resume · GitHub
- Enter the printer’s IP address (and an API key if Moonraker doesn’t trust Gladys’s network).
- Add the printer from the Discovery tab.
Honest caveats: no print start or free G-code (only named macros), the webcam is a capture refreshed every minute, and a maximum of three printers. It has been tested against a real Moonraker with a simulated Klipper: real print, pause and resume, cancellation, emergency stop, bad key. But not yet on a physical printer, so your feedback is welcome.
Coded with the help of Claude Code. Independent project, not affiliated with Klipper or Moonraker.
Let me know what’s missing ![]()
