Web Analytics

vigil-tui

⭐ 153 stars Korean by GIN-SYSTEMS

VIGIL

실시간 터미널 전력 모니터 — CPU · GPU · RAM · 네트워크 · 프로세스

CI Python Platform License


vigil-tui dashboard


개요

vigil은 고해상도 터미널 대시보드로서 모든 주요 구성 요소에 대해 실시간 와트수, 온도, 클럭 속도, 효율 점수, 전기 요금을 표시합니다 — 브라우저, 백그라운드 서비스, 텔레메트리 없이 터미널 내에서 모두 실행됩니다.

하드웨어 센서(hwmon, RAPL, LibreHardwareMonitor, NVML)에서 직접 읽으며 센서가 없을 경우 유연하게 대체합니다. 모든 패널은 실시간으로 업데이트되며, 전체가 단일 vigil 명령어로 실행됩니다.


기능

전력 및 온도

차트 및 시각화

프로세스 인텔리전스

효율성 및 비용

알림 및 로깅

테마 및 UX

---

플랫폼 지원

| 플랫폼 | CPU 전력 | CPU 온도 | GPU 전력 | GPU 온도 | |---|---|---|---|---| | 리눅스 | hwmon · RAPL · 추정 | hwmon | NVML | NVML | | 윈도우 11 / 10 | LibreHardwareMonitor · 추정 | LHM | NVML | NVML | | macOS | 추정만 지원 | — | NVML (존재 시) | NVML |

윈도우 — 정확한 CPU 읽기

vigil은 LibreHardwareMonitor (MPL-2.0) 의 WMI 인터페이스를 통해 실제 CPU 와트 수를 읽습니다. 없으면 vigil은 자동으로 CPU% × TDP 추정값을 사용합니다.

> vigil은 LibreHardwareMonitor를 번들하거나 수정하지 않습니다. 실행 시 WMI 인터페이스에 연결합니다. LHM은 별도로 실행 중이어야 합니다.


Installation

Requirements: Python 3.11+

# Clone
git clone https://github.com/GIN-SYSTEMS/vigil-tui
cd vigil-tui

Linux / macOS

pip install .

Windows (includes WMI + pywin32 for LHM support)

pip install ".[windows]"

Run:

vigil           # launch dashboard
vigil --log     # launch + write JSONL tick log
vigil --help    # all options


주요 단축키

| 키 | 동작 | |-----|--------| | * / ? | 도움말 오버레이 전환 | | q / Ctrl+C | 종료 | | p | 샘플링 일시정지 / 재개 | | r | 차트 기록 초기화 | | + / - | Y축 확대 / 축소 | | b | 기준선 스냅샷 — 다시 누르면 삭제 | | s | SVG 스크린샷 저장 | | t | 테마 전환 (다크 ↔ 라이트) | | c | 설정 / 설치 마법사 열기 |


설정

첫 실행 시 ~/.config/vigil/config.toml 생성:

[hardware]
cpu_tdp_watts       = 65.0     # CPU TDP ceiling for estimation
gpu_tdp_watts       = 165.0    # GPU TDP ceiling
update_interval     = 1.0      # seconds between ticks
history_len         = 120      # chart ring-buffer depth

[cost] kwh_price = 2.0 # electricity price per kWh currency_symbol = "₺"

[alerts] webhook_url = "" # HTTP POST endpoint — empty = disabled cpu_temp_thresh = 90 # °C cpu_watt_thresh_pct = 90 # % of TDP

[ui] theme = "tactical" # "tactical" or "ghost"


How the power waterfall works

vigil starts
│
├─ Linux?
│   ├─ hwmon sysfs (k10temp / zenpower / amd_energy)   ← real sensor
│   ├─ RAPL powercap energy_uj delta                   ← kernel counter
│   └─ CPU% × TDP estimate                             ← always available
│
└─ Windows?
    ├─ LibreHardwareMonitor WMI (requires Admin + LHM) ← real sensor
    └─ CPU% × TDP estimate                             ← always available

GPU → NVML (pynvml) on all platforms if no NVIDIA GPU: panel shows "unavailable", no crash


Project Structure

vigil-tui/
├── src/vigil/
│   ├── app.py                   # Textual app, layout, tick loop
│   ├── config.py                # Static constants
│   ├── config_manager.py        # TOML config loader/writer
│   ├── session.py               # Cost tracking, webhooks, JSONL logging
│   ├── collectors/
│   │   ├── base.py              # Collector ABC + SensorReading
│   │   ├── cpu.py               # hwmon → RAPL → LHM → estimate
│   │   ├── gpu.py               # NVIDIA NVML
│   │   ├── ram.py               # RAM wattage model
│   │   ├── netdisk.py           # Network + disk I/O rates
│   │   └── system.py            # Orchestrator → SystemSnapshot
│   └── widgets/
│       ├── power_header.py      # Top bar: wordmark + gauge
│       ├── cpu_panel.py         # Left: CPU + per-core bars
│       ├── braille_chart.py     # Center: power history
│       ├── clock_chart.py       # Center: clock history
│       ├── process_table.py     # Center: process ranking
│       ├── gpu_panel.py         # Right: GPU metrics
│       ├── financial_widget.py  # Cost display
│       ├── netdisk_widget.py    # Network + disk rates
│       ├── status_bar.py        # Footer
│       ├── boot_screen.py       # Splash screen
│       ├── help_overlay.py      # Key bindings overlay
│       └── setup_wizard.py      # First-run wizard
├── .github/workflows/ci.yml
├── pyproject.toml
├── requirements.txt
└── LICENSE


의존성

| 패키지 | 용도 | |---------|---------| | textual >= 0.80 | TUI 프레임워크 | | psutil >= 5.9.8 | CPU%, 프로세스 목록, 네트워크/디스크 I/O | | pynvml >= 11.5.0 | NVIDIA GPU 메트릭 | | wmi >= 1.5.1 (Windows) | LHM WMI 브리지 | | pywin32 >= 306 (Windows) | Windows COM/WMI 지원 |


라이선스

MIT — 자유롭게 사용, 수정 및 배포 가능.


built by GIN-SYSTEMS

--- Tranlated By Open Ai Tx | Last indexed: 2026-07-17 ---