Skip to content

Richer, feature-complete demo provider using vendor tools (amd-smi / nvidia-smi / lm-sensors) #7

Open

Description

@rghamilton3

Context

The initial LinuxProvider (branch feat/linux-provider) reads hardware sensors dependency-free from /proc and /sys and emits the canonical sensor IDs the default instrument panel binds to:

  • cpu.total.utilization (/proc/stat)
  • cpu.clock (cpufreq/scaling_cur_freq)
  • cpu.temperature (hwmon: k10temp Tctl / coretemp Package)
  • gpu.total.utilization + gpu.temperature (amdgpu gpu_busy_percent + hwmon edge)
  • memory.used.percent + memory.used

This is deliberately minimal and portable (no external binaries required). It proves the Providers → Store → Binding → Widgets → Renderer pipeline with real data.

Goal

Build a richer, more feature-complete demo/provider that uses vendor tooling where available, both to surface deeper metrics and to serve as worked examples for users writing their own providers/panels.

Possible scope

  • GPU (vendor tools):
    • AMD via amd-smi (or rocm-smi): VRAM used/total, GPU + memory clocks, power draw (W), fan RPM, per-engine activity.
    • NVIDIA via nvidia-smi (--query-gpu=... --format=csv): utilization, temp, VRAM, power, clocks, fan.
  • CPU/system (lm-sensors): richer thermal/voltage/fan coverage via sensors/libsensors beyond the raw hwmon scan.
  • Graceful capability detection: detect which tools/sensors are present at runtime; degrade cleanly (provider health Degraded with a message) when a tool is missing — never hard-fail.
  • Example panels that showcase the richer sensors (VRAM gauge, power readout, fan tiles), demonstrating multi-sensor/customized panels.
  • Docs: a "writing a provider" example walkthrough using one of these integrations (ties into docs/development/provider-guidelines.md).

Non-goals (for this issue)

  • Replacing the dependency-free sysfs LinuxProvider — vendor-tool integration should be additive/optional, gated on tool availability.
  • Windows/macOS provider work (track separately).

Acceptance (rough)

  • A richer provider (or an extension to LinuxProvider) exposes additional GPU/CPU sensors when amd-smi/nvidia-smi/lm-sensors are present, with clean fallback when they aren't.
  • At least one example panel + a short provider-authoring doc demonstrating it.

Filed as a follow-up to the sysfs-first Linux sensor work.

Activity

  1. rghamilton3 commented on Jun 1, 2026

    @rghamilton3
    ContributorAuthor

    Re-scoped: this sits under the provider-system epic #8 as an example / content item — a richer demonstration provider using vendor tools (amd-smi/nvidia-smi/lm-sensors), not additional hardcoded core providers. It should build on whatever loader model #8 lands on (and per #8, native-SDK/vendor-tool integrations are host-side, not inside a WASM sandbox).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions