Manifold plugin + publisher daemon for autobrr/qui. First real-world consumer of Manifold v1.2 parameterized-leaf capability.
Find a file
Claude Code e5cde539e9 init: qui-monitor — first consumer of Manifold v1.2 parameterized leaves
Carve-out for the autobrr/qui plugin (publisher-daemon shape, not
Netdata-fed). Manifold v1.2 shipped 2026-05-18 with the parameterized-
leaf capability that has no real consumers yet; this product validates
the abstraction against a real, dynamic backend (Karl's 4-qBit fleet
behind Qui).

Planning artifacts:
- PROJECT.md: scope + 5 locked architectural decisions from 2026-05-17
  /gsd-explore (read-only, both transports, publisher-daemon, both leaf
  shapes, parameterized templates)
- REQUIREMENTS.md: 20 v1.0 requirements (PUB-*, CAT-*, REC-*, BEHAVE-*,
  OPS-*, VALID-*); 9 backlog items; out-of-scope explicit
- ROADMAP.md: 4 phases (publisher+catalog → recipes → docs → validation);
  Phase 4 gated on manifold v1.2 LXC 111 deploy
- STATE.md: fresh; Phase 1 as next action
- config.json: copied from manifold/ (interactive, parallelization on,
  security_enforcement on)
- notes/qui-plugin-architecture-exploration.md: substrate for everything,
  migrated from manifold/.planning/notes/ in prior commit on that side

License: MIT.

Run /gsd:discuss-phase 1 to start building.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 15:48:35 -04:00
.planning init: qui-monitor — first consumer of Manifold v1.2 parameterized leaves 2026-05-18 15:48:35 -04:00
.gitignore init: qui-monitor — first consumer of Manifold v1.2 parameterized leaves 2026-05-18 15:48:35 -04:00
LICENSE init: qui-monitor — first consumer of Manifold v1.2 parameterized leaves 2026-05-18 15:48:35 -04:00
README.md init: qui-monitor — first consumer of Manifold v1.2 parameterized leaves 2026-05-18 15:48:35 -04:00

qui-monitor

A Manifold plugin + publisher daemon that surfaces Qui — a multi-instance qBittorrent aggregator — as live dashboard cards. First real-world consumer of Manifold v1.2's parameterized-leaf capability.

Status: project opened 2026-05-18 (Phase 1 not yet started). Architectural decisions are locked; planning artifacts are in .planning/. Run /gsd:discuss-phase 1 to start building.

What it does

  • A manifold-qui.service daemon on a server scrapes Qui's Prometheus endpoint (scalars + time-series) and polls Qui's JSON API (instance list, per-torrent detail).
  • The daemon republishes everything to MQTT under metrics/qui/{aggregate,instance,instances,health}/*.
  • The plugin's catalog.template.json declares both aggregate leaves (fleet dl-speed, total torrents, etc.) and parameterized per-instance leaves (qui.instance.{instance}.dl_speed, ...) — the latter populated at runtime from the live instance list.
  • The dashboard wizard renders a picker beside parameterized leaves so a user can pick an instance from the live list. Cards persist the resolved internal ID; renaming or removing the instance in Qui is handled gracefully by Manifold v1.2's label rehydration + missing-instance degrade tile.

What it doesn't do

No action endpoints (pause / resume / delete) on the dashboard — read-surface only. Project-wide "no shell from browser" rule. Use Qui's own UI for actions.

Prerequisites

  • Qui installed upstream and configured with your qBit instance(s)
  • Manifold v1.2 deployed (parameterized-leaf capability is required)
  • mosquitto broker reachable from wherever this daemon runs (Karl's homelab: LXC 109)

Quick start

(Will land in Phase 3. Until then, hand-deploy from plugins/qui/ once Phase 1 ships the publisher.)

Layout

qui-monitor/
├── .planning/             # GSD planning artifacts (scope, decisions, roadmap)
├── plugins/qui/           # Manifold plugin (manifest + catalog + publisher daemon)
├── consolidator/          # reserved for Netdata bridge (empty in v1.0)
├── catalog/leaves.json    # frozen reference copy of the plugin's catalog
├── cards/                 # bundled card recipes (fleet glance, per-instance row, drill-down)
├── templates/             # wizard preset templates (if/when those exist)
├── docs/                  # architecture, secrets, gotchas, runbooks
└── README.md              # this file

Cross-references

  • Manifold v1.2 milestone (the capability this product consumes): ../manifold/.planning/milestones/v1.2-ROADMAP.md
  • Plugin author guide §Parameterized leaves: ../manifold/docs/PLUGIN-AUTHOR-GUIDE.md
  • The exploration that locked the architecture: .planning/notes/qui-plugin-architecture-exploration.md
  • Carve-out conventions across the homelab: ../CARVE-OUT-NOTES.md

License

MIT — see LICENSE. (Upstream Qui is GPL-3.0; this product consumes Qui at runtime via its public APIs but doesn't link against its code, so MIT is fine.)