477c4becae2411c30c5a79df3d633e1954a92bc3
- Backend HAL (hal/fans.py): NVML v2 fan read/set/reset with min/max queries - Server endpoints: GET/POST /api/fans, POST /api/fans/reset, POST /api/fans/speed - Background fan poller: reads GPU temp every 2s, interpolates fan speed from curve - Profile integration: fan_curve field saved/applied, auto-restore on shutdown - Frontend: FanCurveEditor (SVG chart with drag/add/delete points), FanMonitor sidebar - App.tsx: three-tab layout (Curve, Performance, Fans) - GaugeCard: optional history sparkline, Fan Mode card without sparkline - fan_mode field populated as 'curve' or 'auto' in GET /api/fans
NVCurve brings MSI Afterburner-style per-point voltage-frequency curve control to Linux via undocumented NvAPI functions. A React web UI for interactive editing and monitoring; a Python CLI for scripting and headless use.
Warning
Experimental software. Undocumented NvAPI functions may change between driver releases. Write operations alter GPU operational parameters. Always run
nvcurve setupbefore applying changes.
Installation
uv tool install nvcurve
Getting Started
nvcurve setup # Verify hardware compatibility (do not skip)
nvcurve # Launch web UI at http://localhost:8042
Documentation
- Overview — What it does, capabilities, architecture
- Installation — Prerequisites, source build, troubleshooting
- Usage Guide — Web UI, CLI reference, systemd service
- Tips and Tricks — Workflows, curve flattening, safety
Upgrading
uv tool upgrade nvcurve
Changelog
See CHANGELOG.md.
Languages
Python
65.9%
TypeScript
33.2%
Shell
0.4%
CSS
0.2%
Makefile
0.1%
Other
0.1%
