Starý telefon visí na USB kabelu vedle monitorů a ukazuje čtyři věci naráz: teplotu a vytížení procesoru i grafiky, obsazenou paměť a VRAM, zbývající limity agenta, se kterým zrovna dělám, a průběh generování v ComfyUI.
Proč telefon, a ne okno na monitoru
Při generování videa nebo dlouhé dávce potřebuju ta čísla průběžně, ne na vyžádání. Přepínat se kvůli nim mezi okny zdržuje a trvale otevřené okno by ukrojilo kus monitoru — mám dva a na obou je rozdělaná práce.
Použil jsem k tomu starý Xiaomi 11T Pro: AMOLED, 2400 × 1080, jinak nevyužitý.
Co je na displeji vidět
- Teploty a vytížení CPU a GPU na dvou velkých budících, vždycky i se slovním stavem — V normě, Zvýšená, Vysoká, Kritická. Nikdy jen barva, tu si každý vyloží jinak.
- Operační paměť a VRAM včetně volného místa a rysky, kam se dostala špička.
- Zbývající limity vibe coding agentů — velké číslo, ubývající pruh a čas obnovy.
- Průběh generování v ComfyUI, který naskočí jen tehdy, když se opravdu generuje.
Z čeho se to skládá
Čidla čte LibreHardwareMonitor, který musí běžet jako správce — bez zvýšených práv teplotní čidla nevydá. Zbytek tvoří pět částí:
LibreHardwareMonitor → čte čidla, HTTP na portu 8085
server.ps1 → port 8099: stránka, /api, /state, /limits
adb reverse tcp:8099 → telefon vidí PC jako svůj localhost
aplikace PROMPTLAB → vykreslí dashboard přes celou obrazovku
watchdog.ps1 → hlídá všechno výše a budí displej
Nic z toho nejde do sítě. Server poslouchá jen na localhost a telefon se k němu dostane po USB kabelu díky adb reverse. Proto tam taky není žádné přihlašování — kdo se dostane na localhost tvého počítače, má přístup stejně. Jen ten port nikam neposílej ven.
Dvě zásadní rozhodnutí
Dashboard je jedna HTML stránka a běží uvnitř aplikace v telefonu, ne na počítači. Aplikace obsahuje jediný WebView, který stránku zobrazí přes celou obrazovku. Počítač ji jednou pošle a pak už jen dodává čísla. Díky tomu přežije uspání PC: když přestanou chodit data, stránka se sama přepne na obrazovku „Systém spí" a čeká na návrat. Kdyby ji vykresloval počítač, zůstal by na displeji zamrzlý obrázek posledního stavu.
Vlastní aplikace místo prohlížeče. Chrome nepřepne na celou obrazovku bez gesta uživatele a to gesto přes adb nevyvoláš. Stránka v prohlížeči navíc neumí rozsvítit displej. Aplikace umí obojí a vystačí si s oprávněními INTERNET a WAKE_LOCK — je to jeden WebView a dva soubory Javy.
Čtení limitů vibe coding agentů
Tuhle část používám nejčastěji. Každý pracuje s jiným agentem, proto to umí číst dva nejrozšířenější. Claude Code posílá do status line JSON, ve kterém je i rate_limits s okny five_hour a seven_day. Stačí si je ve vlastní status line odložit do souboru — obnoví se to při každé odpovědi kterékoli běžící session.
Když je ten soubor starší než pět minut a zároveň sedíš u počítače, skript si jednou za pět minut vyžádá zálohu přes claude -p /usage. Codexu se ptá jinak, přes codex app-server po JSON-RPC. Ani jedno nespotřebuje tokeny.
Bez těchto nástrojů zůstane spodní řada prázdná a zbytek dashboardu funguje dál.
AMOLED a vypálení displeje
Statický obraz na AMOLEDu hrozí vypálením, proto má zhasínání tři stupně:
180 s nečinnosti → klidový režim, obsah na 42 % a pomalu cestuje
300 s nečinnosti → stránka zčerná a pustí zámek displeje
pohyb myší → hlídač do 10 s displej zase rozsvítí
Pod černou se nekreslí vůbec nic a zastaví se i CSS animace — skrytý prvek by jinak dál budil grafiku telefonu. Riziko to snižuje, nevylučuje. Nech telefonu i jeho vlastní krátký limit zhasnutí a v nastavení vypni „nevypínat obrazovku při nabíjení".
Co k tomu potřebuješ
Windows 10 nebo 11 s PowerShellem, který je součástí systému. LibreHardwareMonitor, ten se nainstaluje příkazem winget install LibreHardwareMonitor.LibreHardwareMonitor. Telefon s Androidem 7 a novějším, zapnuté ladění přes USB a adb z platform-tools.
APK si můžeš sestavit sám skriptem build.ps1, který jede přes aapt2, javac, d8 a apksigner — bez Gradlu. Nebo si dashboard nejdřív otevři jen v prohlížeči telefonu: nebude přes celou obrazovku ani se sám nerozsvítí, ale uvidíš, jak vypadá.
Jak to zkusit
Celé je to jedna HTML stránka bez knihoven, pár PowerShellových skriptů a APK o velikosti několika desítek kilobajtů. Kód najdeš na GitHubu pod názvem promptlab-telemetry-dashboard, pod licencí MIT.
Ověř si nejdřív, že ti LibreHardwareMonitor vydá data: nainstaluj ho, spusť jako správce, v Options → Remote Web Server zapni port 8085 a otevři si http://localhost:8085/data.json. Když tam uvidíš svoje teploty, zbývá už jen přenést ta čísla do telefonu.