Skip to content

Add Kuma Status plugin (nightwatch75/kuma-status) - #1411

Open
nightwatch75 wants to merge 1 commit into
noctalia-dev:mainfrom
nightwatch75:add-kuma-status
Open

nightwatch75 wants to merge 1 commit into
noctalia-dev:mainfrom
nightwatch75:add-kuma-status

Conversation

@nightwatch75

@nightwatch75 nightwatch75 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Plugin

  • Id: nightwatch75/kuma-status
  • New plugin
  • Update to an existing plugin (version bumped in plugin.toml)

What it does

Shows Uptime Kuma on the bar: a heart glyph colored by the worst state, with the number of monitors up and down. The panel has three tabs: Dashboard (groups, monitors, last 40 heartbeats, filters), Status pages and Certificates (expiry, grouped by urgency). Optional toasts when a monitor goes down or recovers. It is read-only: it never pauses, edits or restarts a monitor.

External dependencies

  • xdg-open: opens a monitor or a status page in the browser.
  • stat: warns when a credentials file is readable by other users.

The plugin also calls your own Uptime Kuma server (GET /metrics, optionally /api/monitors on Kuma 3, and the public status page API). The API key is read from a file whose path is set in the settings, and is sent only to the configured Kuma URL.

Testing

Opened the bar widget and the panel (all tabs), toggled the settings, added and removed status pages, and ran against a real Kuma 2.5.9. Unit tests cover the parser, the model and the panel.

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Tested on another compositor: Umbriel
  • Noctalia version tested against: v5.4.1
  • Plugin API level: 43

Screenshots / Videos

Bar widget: glyph and number of monitors up and down.

Bar widget

Dashboard tab: groups, monitors and heartbeat bars.

Dashboard tab

Status pages tab.

Status pages tab

Certificates tab: expiry grouped by urgency.

Certificates tab

All data in the screenshots is fictitious.

Checklist

  • The directory name matches the part of id after the / in plugin.toml exactly.
  • It ships plugin.toml, README.md, thumbnail.webp, and translations/en.json.
  • README.md follows the
    README template, documents
    every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.
  • thumbnail.webp is present and relevant; for a new plugin I created it with the thumbnail generator, and for an update I regenerated it with the generator if the visual identity or user-facing appearance changed.
  • version follows semver and is bumped in this PR; plugin_api is the oldest API level this plugin requires.
  • Every non-English translation in this PR uses a locale supported by Noctalia core, and I can read, write, and
    understand that language well enough to review and maintain it (no unreviewed machine/LLM translations).
  • I did not edit catalog.toml; CI generates it.
  • This PR touches exactly one plugin directory.

Code review attestation

  • The code is readable and not obfuscated, minified, or generated.
  • Code identifiers and code comments are in English.
  • It does not download and execute remote code.
  • Every network call, filesystem write, and spawned process is something the description above accounts for.
  • I have the right to publish this code under the license declared in plugin.toml.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CLfKjw8KZoPCXA8yxUm37K
@nightwatch75
nightwatch75 marked this pull request as ready for review November 12, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant