docs: add README; verify plugin install and packaging
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
# llama-watch
|
||||||
|
|
||||||
|
A Stream Deck plugin (macOS) that monitors a llama-swap instance.
|
||||||
|
|
||||||
|
## Actions
|
||||||
|
|
||||||
|
- **In-Flight Monitor** — per-model color state: `OFF` / `LOADING` / `IDLE` / `ACTIVE` (pulsing red). Powered by the real-time `/api/events` SSE feed.
|
||||||
|
- **GPU Graph** — live line chart of a GPU metric (utilization %, VRAM %, temperature, power draw, fan speed) for one GPU or all GPUs, sampled every 5 s.
|
||||||
|
|
||||||
|
Pressing either key opens `http://<base-url>/ui` in your browser.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Double-click the packaged `.streamDeckPlugin`, or run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
streamdeck validate com.bryce.llamawatch.sdPlugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## Develop
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run watch # hot-reload while the Stream Deck app is running
|
||||||
|
npm test # unit tests (node:test + tsx)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configure
|
||||||
|
|
||||||
|
Per-key settings: base URL (default `http://localhost:9292`), optional API key, and the model / GPU / metric to watch. The model and GPU dropdowns are populated live from the instance.
|
||||||
|
|
||||||
|
## Marketplace
|
||||||
|
|
||||||
|
Assets are prepared for eventual submission (`imgs/plugin/icon.png` 256/512, action icons, category icon). The plugin only stores its settings locally; it reads GPU metrics and request status from the user's own llama-swap server and sends nothing elsewhere.
|
||||||
@@ -10,8 +10,15 @@
|
|||||||
"Icon": "imgs/actions/inflight/icon",
|
"Icon": "imgs/actions/inflight/icon",
|
||||||
"Tooltip": "Shows whether a model has a request in flight",
|
"Tooltip": "Shows whether a model has a request in flight",
|
||||||
"PropertyInspectorPath": "ui/inflight.html",
|
"PropertyInspectorPath": "ui/inflight.html",
|
||||||
"Controllers": ["Keypad"],
|
"Controllers": [
|
||||||
"States": [{ "Image": "imgs/actions/inflight/key", "ShowTitle": false }]
|
"Keypad"
|
||||||
|
],
|
||||||
|
"States": [
|
||||||
|
{
|
||||||
|
"Image": "imgs/actions/inflight/key",
|
||||||
|
"ShowTitle": false
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "GPU Graph",
|
"Name": "GPU Graph",
|
||||||
@@ -19,8 +26,15 @@
|
|||||||
"Icon": "imgs/actions/gpu/icon",
|
"Icon": "imgs/actions/gpu/icon",
|
||||||
"Tooltip": "Live GPU metric graph",
|
"Tooltip": "Live GPU metric graph",
|
||||||
"PropertyInspectorPath": "ui/gpu.html",
|
"PropertyInspectorPath": "ui/gpu.html",
|
||||||
"Controllers": ["Keypad"],
|
"Controllers": [
|
||||||
"States": [{ "Image": "imgs/actions/gpu/key", "ShowTitle": false }]
|
"Keypad"
|
||||||
|
],
|
||||||
|
"States": [
|
||||||
|
{
|
||||||
|
"Image": "imgs/actions/gpu/key",
|
||||||
|
"ShowTitle": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Category": "llama-watch",
|
"Category": "llama-watch",
|
||||||
@@ -29,8 +43,17 @@
|
|||||||
"Description": "Monitor llama-swap: in-flight requests per model and live GPU metric graphs.",
|
"Description": "Monitor llama-swap: in-flight requests per model and live GPU metric graphs.",
|
||||||
"Icon": "imgs/plugin/icon",
|
"Icon": "imgs/plugin/icon",
|
||||||
"SDKVersion": 2,
|
"SDKVersion": 2,
|
||||||
"Software": { "MinimumVersion": "7.1" },
|
"Software": {
|
||||||
"OS": [{ "Platform": "mac", "MinimumVersion": "13" }],
|
"MinimumVersion": "7.1"
|
||||||
"Nodejs": { "Version": "24" },
|
},
|
||||||
|
"OS": [
|
||||||
|
{
|
||||||
|
"Platform": "mac",
|
||||||
|
"MinimumVersion": "13"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Nodejs": {
|
||||||
|
"Version": "24"
|
||||||
|
},
|
||||||
"UUID": "com.bryce.llamawatch"
|
"UUID": "com.bryce.llamawatch"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user