Skip to main content

index

Watch a kubestellar/hive instance from the GNOME top bar, and file an idea into it without opening a browser.

Nothing is hardcoded to a particular hive. Point it at a self-hosted spoke, the hosted hub, or someone else's instance β€” it is all configuration.

What it shows​

The panel reads the hive's own GET /api/widget:

FieldShown as
modeGovernor mode β€” SURGE / BUSY / QUIET / IDLE
issues, prsQueue depth, issues/prs, optional
running, pausedAgent counts, in the menu
last_evalHow long since the governor last evaluated

A paused agent flips the icon to a warning. That is the failure this widget exists to catch: a hive with paused lanes looks completely healthy from the outside while part of it does nothing. The governor still computes those agents as due and then silently skips them.

Filing an idea​

New Idea… opens a small dialog and creates a GitHub issue on a repository you configure, labelled ai-fix-requested by default.

Ideas go to GitHub rather than to a hive bead on purpose β€” GitHub issues are the hive's work queue. The governor polls them, and its SURGE/BUSY/QUIET modes are driven by their depth. Beads are per-agent internal state, and Inception is for scaffolding whole new projects; neither is an intake channel for "I had an idea". Point it at one of the hive's managed repositories or the governor will never see the issue.

Install​

git clone https://github.com/tuna-os/gnome-hive-monitor.git \
~/.local/share/gnome-shell/extensions/hive-monitor@tunaos.org
cd ~/.local/share/gnome-shell/extensions/hive-monitor@tunaos.org
glib-compile-schemas schemas/

Then log out and back in β€” GNOME Shell only scans for new extension directories at session start, and on Wayland there is no way to restart the shell in place. After that:

gnome-extensions enable hive-monitor@tunaos.org
gnome-extensions prefs hive-monitor@tunaos.org

Configuration​

SettingNotes
Hive URLe.g. https://hive.example.org, no trailing slash
Hive tokenThe hive's HIVE_DASHBOARD_TOKEN
Refresh interval15–3600s, default 60
Repositoryowner/name an idea becomes an issue in
GitHub tokenNeeds only issues:write on that repository
LabelsComma-separated, default ai-fix-requested

About the hive token​

It is sent as the X-Hive-Internal header, which is the only credential a hive accepts for server-to-server reads:

  • Authorization: Bearer is disabled on a direct-route spoke (one with dashboard.authorized_users set) β€” it returns 401.
  • A browser session cookie works, but an extension has no way to complete a GitHub device-flow login to obtain one.

X-Hive-Internal is read-only. The hive rejects mutations made with it (owner access required), so this extension can never change your fleet's configuration β€” by design. It reads status; the only thing it writes is a GitHub issue, with your GitHub token.

Treat the hive token as a secret: it grants read access to your fleet's status.

Requirements​

GNOME Shell 45–50 (ESM extensions). Uses only gi:// modules that ship with the shell β€” no external dependencies.

License​

Apache-2.0, matching upstream hive.