[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2209":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},2209,"vigil-tui","GIN-SYSTEMS\u002Fvigil-tui","GIN-SYSTEMS","Real-time terminal power monitor — CPU · GPU · RAM wattage dashboard  Visibility",null,"Python",139,11,1,0,3,3.24,"MIT License",false,"main",true,[],"2026-06-12 02:00:38","\u003Cdiv align=\"center\">\n\n# VIGIL\n\n**Real-time terminal power monitor — CPU · GPU · RAM · Network · Processes**\n\n[![CI](https:\u002F\u002Fgithub.com\u002FGIN-SYSTEMS\u002Fvigil-tui\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FGIN-SYSTEMS\u002Fvigil-tui\u002Factions)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.11%2B-blue?logo=python&logoColor=white)](https:\u002F\u002Fwww.python.org\u002F)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Linux%20%7C%20Windows-lightgrey)](https:\u002F\u002Fgithub.com\u002FGIN-SYSTEMS\u002Fvigil-tui)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green)](LICENSE)\n\n\u003C\u002Fdiv>\n\n---\n\n![vigil-tui dashboard](assets\u002Fscreenshot.png)\n\n---\n\n## Overview\n\nvigil is a high-resolution terminal dashboard that shows **live wattage, thermals, clock speeds, efficiency scores, and electricity cost** for every major component — all inside the terminal with no browser, no background service, no telemetry.\n\nIt reads directly from hardware sensors (hwmon, RAPL, LibreHardwareMonitor, NVML) and falls back gracefully when a sensor is unavailable. Every panel updates in real time, the whole thing runs from a single `vigil` command.\n\n---\n\n## Features\n\n### Power & Thermals\n- **CPU package power** — hwmon (k10temp \u002F zenpower \u002F amd_energy) → RAPL → LibreHardwareMonitor WMI → CPU% × TDP estimate\n- **GPU power** — NVIDIA NVML: watts, temperature, utilisation, core\u002Fmem clocks, VRAM, fan speed\n- **RAM wattage** — DDR4 power model (slot count × utilisation)\n- **Throttle detection** — blinking `THROTTLE` badge on CPU or GPU thermal throttle\n\n### Charts & Visualisation\n- **Power history** — high-resolution Braille area chart, CPU + GPU overlay\n- **Clock history** — CPU avg frequency + GPU core clock with boost ceiling marker\n- **Per-core bars** — utilisation % + live frequency for every core\n\n### Process Intelligence\n- **Process table** — ranked by estimated wattage contribution\n- **Sparkline trends** — per-process watt history mini-chart\n- **EST.W column** — watts per process derived from CPU% share of package power\n\n### Efficiency & Cost\n- **Efficiency score** — `OPTIMAL` · `NORMAL` · `LOW EFF` · `THROTTLE`\n- **Electricity cost** — \u002Fhr, \u002Fday, session total (configurable kWh price + currency)\n- **Baseline mode** — snapshot idle state, compare live delta in real time\n\n### Alerts & Logging\n- **Webhook alerts** — HTTP POST when CPU temp or power threshold is breached\n- **Session logging** — optional JSONL tick log (`--log` flag)\n- **SVG screenshot** — full dashboard export with `s`\n\n### Themes & UX\n- **TacticalCyberpunk** (dark) — green \u002F amber \u002F cyan on near-black\n- **GhostWhite** (light) — high-contrast monochrome\n- **Setup wizard** — first-run guided TDP + kWh configuration\n- **Live accent recolour** — sidebar colour tweaks without restart\n\n---\n\n## Platform Support\n\n| Platform | CPU Power | CPU Temp | GPU Power | GPU Temp |\n|---|---|---|---|---|\n| **Linux** | hwmon · RAPL · estimate | hwmon | NVML | NVML |\n| **Windows 11 \u002F 10** | LibreHardwareMonitor · estimate | LHM | NVML | NVML |\n| **macOS** | estimate only | — | NVML (if present) | NVML |\n\n### Windows — accurate CPU readings\n\nvigil reads real CPU wattage through **[LibreHardwareMonitor](https:\u002F\u002Fgithub.com\u002FLibreHardwareMonitor\u002FLibreHardwareMonitor) (MPL-2.0)** via its WMI interface. Without it, vigil falls back to a CPU% × TDP estimate automatically.\n\n1. Download [LibreHardwareMonitor](https:\u002F\u002Fgithub.com\u002FLibreHardwareMonitor\u002FLibreHardwareMonitor\u002Freleases)\n2. Run it **as Administrator**\n3. Launch vigil — LHM is detected automatically\n\n> vigil does not bundle or modify LibreHardwareMonitor. It connects to its WMI interface at runtime. LHM must be running separately.\n\n---\n\n## Installation\n\n**Requirements:** Python 3.11+\n\n```bash\n# Clone\ngit clone https:\u002F\u002Fgithub.com\u002FGIN-SYSTEMS\u002Fvigil-tui\ncd vigil-tui\n\n# Linux \u002F macOS\npip install .\n\n# Windows (includes WMI + pywin32 for LHM support)\npip install \".[windows]\"\n```\n\n**Run:**\n```bash\nvigil           # launch dashboard\nvigil --log     # launch + write JSONL tick log\nvigil --help    # all options\n```\n\n---\n\n## Key Bindings\n\n| Key | Action |\n|-----|--------|\n| `*` \u002F `?` | Toggle help overlay |\n| `q` \u002F Ctrl+C | Quit |\n| `p` | Pause \u002F resume sampling |\n| `r` | Reset chart history |\n| `+` \u002F `-` | Zoom Y-axis in \u002F out |\n| `b` | Snapshot baseline — press again to clear |\n| `s` | Save SVG screenshot |\n| `t` | Toggle theme (dark ↔ light) |\n| `c` | Open config \u002F setup wizard |\n\n---\n\n## Configuration\n\nFirst launch creates `~\u002F.config\u002Fvigil\u002Fconfig.toml`:\n\n```toml\n[hardware]\ncpu_tdp_watts       = 65.0     # CPU TDP ceiling for estimation\ngpu_tdp_watts       = 165.0    # GPU TDP ceiling\nupdate_interval     = 1.0      # seconds between ticks\nhistory_len         = 120      # chart ring-buffer depth\n\n[cost]\nkwh_price           = 2.0      # electricity price per kWh\ncurrency_symbol     = \"₺\"\n\n[alerts]\nwebhook_url         = \"\"       # HTTP POST endpoint — empty = disabled\ncpu_temp_thresh     = 90       # °C\ncpu_watt_thresh_pct = 90       # % of TDP\n\n[ui]\ntheme               = \"tactical\"   # \"tactical\" or \"ghost\"\n```\n\n---\n\n## How the power waterfall works\n\n```\nvigil starts\n│\n├─ Linux?\n│   ├─ hwmon sysfs (k10temp \u002F zenpower \u002F amd_energy)   ← real sensor\n│   ├─ RAPL powercap energy_uj delta                   ← kernel counter\n│   └─ CPU% × TDP estimate                             ← always available\n│\n└─ Windows?\n    ├─ LibreHardwareMonitor WMI (requires Admin + LHM) ← real sensor\n    └─ CPU% × TDP estimate                             ← always available\n\nGPU → NVML (pynvml) on all platforms\n     if no NVIDIA GPU: panel shows \"unavailable\", no crash\n```\n\n---\n\n## Project Structure\n\n```\nvigil-tui\u002F\n├── src\u002Fvigil\u002F\n│   ├── app.py                   # Textual app, layout, tick loop\n│   ├── config.py                # Static constants\n│   ├── config_manager.py        # TOML config loader\u002Fwriter\n│   ├── session.py               # Cost tracking, webhooks, JSONL logging\n│   ├── collectors\u002F\n│   │   ├── base.py              # Collector ABC + SensorReading\n│   │   ├── cpu.py               # hwmon → RAPL → LHM → estimate\n│   │   ├── gpu.py               # NVIDIA NVML\n│   │   ├── ram.py               # RAM wattage model\n│   │   ├── netdisk.py           # Network + disk I\u002FO rates\n│   │   └── system.py            # Orchestrator → SystemSnapshot\n│   └── widgets\u002F\n│       ├── power_header.py      # Top bar: wordmark + gauge\n│       ├── cpu_panel.py         # Left: CPU + per-core bars\n│       ├── braille_chart.py     # Center: power history\n│       ├── clock_chart.py       # Center: clock history\n│       ├── process_table.py     # Center: process ranking\n│       ├── gpu_panel.py         # Right: GPU metrics\n│       ├── financial_widget.py  # Cost display\n│       ├── netdisk_widget.py    # Network + disk rates\n│       ├── status_bar.py        # Footer\n│       ├── boot_screen.py       # Splash screen\n│       ├── help_overlay.py      # Key bindings overlay\n│       └── setup_wizard.py      # First-run wizard\n├── .github\u002Fworkflows\u002Fci.yml\n├── pyproject.toml\n├── requirements.txt\n└── LICENSE\n```\n\n---\n\n## Dependencies\n\n| Package | Purpose |\n|---------|---------|\n| `textual >= 0.80` | TUI framework |\n| `psutil >= 5.9.8` | CPU%, process list, net\u002Fdisk I\u002FO |\n| `pynvml >= 11.5.0` | NVIDIA GPU metrics |\n| `wmi >= 1.5.1` *(Windows)* | LHM WMI bridge |\n| `pywin32 >= 306` *(Windows)* | Windows COM\u002FWMI support |\n\n---\n\n## License\n\n[MIT](LICENSE) — free to use, modify, and distribute.\n\n---\n\n\u003Cdiv align=\"center\">\nbuilt by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGIN-SYSTEMS\">GIN-SYSTEMS\u003C\u002Fa>\n\u003C\u002Fdiv>\n","VIGIL 是一个实时终端功率监控工具，能够显示CPU、GPU、RAM以及网络和进程的实时功耗、温度、频率等信息。它基于Python开发，支持Linux和Windows平台，无需浏览器或后台服务即可运行。核心功能包括硬件传感器直接读数、实时更新的面板、详细的能耗历史图表、进程智能分析（按估计功耗排名）、效率评分及电费计算等。此外，还提供了多种主题选择、设置向导、实时重着色等功能以优化用户体验。适用于需要密切监控系统资源使用情况的场景，如数据中心管理、高性能计算环境下的性能调优等。",2,"2026-06-11 02:48:52","CREATED_QUERY"]