LibreHardwareMonitor is a free, open source monitoring & observability project written in C# and released under MPL-2.0. It has 9,084 GitHub stars, 1,015 forks and 524 open issues, and was last pushed 12 hours ago. On this registry it ranks #54 of 191 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is LibreHardwareMonitor?

LibreHardwareMonitor is a free, open-source, MPL-2.0-licensed hardware monitoring application and .NET library that reads the temperature sensors, fan speeds, voltages, load and clock speeds of a computer's motherboard, processor, graphics cards, drives and network cards, aimed at Windows users who want that telemetry on screen and at C# developers who want it inside their own applications.

What it is

LibreHardwareMonitor is a Windows hardware monitoring project written in C# and published under the Mozilla Public License 2.0. It ships as two deliverables. LibreHardwareMonitor is a Windows Forms application that presents all collected data in a graphical interface, targeting .NET Framework 4.7.2 and .NET 10.0. LibreHardwareMonitorLib is the library that exposes the same capabilities programmatically, multi-targeting .NET Framework 4.7.2, .NET Standard 2.0, and .NET 8.0, .NET 9.0 and .NET 10.0, and it is distributed publicly through NuGet.

The concrete problem it solves is access to low-level sensor data without writing that access layer per application. Reading temperatures, fan speeds, voltages, load and clock speeds requires talking to motherboards, processors, graphics cards, storage devices and network cards, and the method of reading differs between manufacturers. LibreHardwareMonitorLib packages that work behind a single object model, so an application enables the subsystems it cares about and consumes sensor values rather than reimplementing hardware interrogation. For end users, the Windows Forms application is the same capability without any code: an installable tool that reports what the machine's sensors are doing.

Key capabilities

  • LibreHardwareMonitor, the Windows Forms application, presents all sensor data in a graphical interface, built for .NET Framework 4.7.2 and .NET 10.0.
  • LibreHardwareMonitorLib is available as a NuGet package and is multi-targeted at .NET Framework 4.7.2, .NET Standard 2.0, .NET 8.0, .NET 9.0 and .NET 10.0.
  • Reads motherboards, Intel and AMD processors, NVIDIA, AMD and Intel graphics cards, HDD, SSD and NVMe drives, and network cards.
  • Reports temperature sensors, fan speeds, voltages, load and clock speeds through the ISensor interface.
  • Subsystem selection through enable flags on the Computer object: IsCpuEnabled, IsGpuEnabled, IsMemoryEnabled, IsMotherboardEnabled, IsControllerEnabled, IsNetworkEnabled, IsStorageEnabled and IsPowerMonitorEnabled.
  • Traversal of hardware, subhardware and sensors through the IHardware, IParameter and IVisitor interfaces, opened with computer.Open() and closed with computer.Close().
  • Nightly builds published through GitHub Actions, with a direct zip at LibreHardwareMonitor.Windows.Forms.zip via nightly.link for users without a GitHub account.

Who uses it and how

  • Windows desktop users who want temperatures, fan speeds, voltages, load and clock speeds displayed together in one graphical application.
  • C# and .NET developers who add the LibreHardwareMonitorLib NuGet package and enable the subsystems relevant to their application, running against .NET Standard 2.0 for broad reach or the current .NET releases.
  • Contributors with specific motherboards, since the way of reading data differs by manufacturer; the project asks users to verify readings on their hardware and send a pull request when they find inaccuracies.
  • Users tracking pre-release behaviour, who download nightly builds through GitHub Actions or through the nightly.link zip when they do not have a GitHub account.
  • Applications that need elevated access, which declare it through an app.manifest because some sensors require administrator privileges.

Getting started

Download the latest release from the GitHub releases page, or add the LibreHardwareMonitorLib NuGet package to an application and follow the README sample code that constructs a Computer, sets the enable flags, calls computer.Open() and walks the hardware tree with an UpdateVisitor.

How it compares

No comparable paid products are listed in the facts for this entry, and no similar tools are named either, so LibreHardwareMonitor stands alone in this registry. Its licence is MPL-2.0 and its distribution is public through GitHub releases and NuGet.

When to use it — and when not to

There is nothing to self-host: there is no database, storage backend or mail server to operate, and the graphical application runs locally on Windows, so anyone on Linux or macOS whose need is the GUI should look elsewhere. Some sensors require administrator privileges, which means the tool or the host IDE must run elevated to see everything. The repository carries 524 open issues, and sensor accuracy depends on motherboard behaviour, so readings can be inaccurate on hardware the project has not yet adjusted for.

project readme (upstream, from github) — read inline

LibreHardwareMonitor

GitHub license Nuget Nuget (with prereleases) Nuget

Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.

What's included?

Name .NET Build Status
LibreHardwareMonitor
Windows Forms based application that presents all data in a graphical interface
.NET Framework 4.7.2
.NET 10.0
Build status
LibreHardwareMonitorLib
Library that allows you to use all features in your own application
.NET Framework 4.7.2
.NET Standard 2.0
.NET 8.0, .NET 9.0, and .NET 10.0
Build status

What can it do?

You can read information from devices such as:

  • Motherboards
  • Intel and AMD processors
  • NVIDIA, AMD and Intel graphics cards
  • HDD, SSD and NVMe hard drives
  • Network cards

Where can I download it?

You can download the latest release here.

Nightly builds

If you have a GitHub account, you can download nightly builds here. Otherwise, you can download the latest nightly build here.

How can I help improve it?

The LibreHardwareMonitor team welcomes feedback and contributions!
You can check if it works properly on your motherboard. For many manufacturers, the way of reading data differs a bit, so if you notice any inaccuracies, please send us a pull request. If you have any suggestions or improvements, don't hesitate to create an issue.

Developer information

Integrate the library in own application

  1. Add the LibreHardwareMonitorLib NuGet package to your application.
  2. Use the sample code below.

Sample code

Computer computer = new Computer
{
    IsCpuEnabled = true,
    IsGpuEnabled = true,
    IsMemoryEnabled = true,
    IsMotherboardEnabled = true,
    IsControllerEnabled = true,
    IsNetworkEnabled = true,
    IsStorageEnabled = true,
	IsPowerMonitorEnabled = true,
};

computer.Open();
computer.Accept(new UpdateVisitor());

foreach (IHardware hardware in computer.Hardware)
{
    Console.WriteLine("Hardware: {0}", hardware.Name);
    
    foreach (IHardware subhardware in hardware.SubHardware)
    {
        Console.WriteLine("\tSubhardware: {0}", subhardware.Name);
        
        foreach (ISensor sensor in subhardware.Sensors)
            Console.WriteLine("\t\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
    }

    foreach (ISensor sensor in hardware.Sensors)
        Console.WriteLine("\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
}

computer.Close();

public class UpdateVisitor : IVisitor
{
    public void VisitComputer(IComputer computer) => computer.Traverse(this);

    public void VisitHardware(IHardware hardware)
    {
        hardware.Update();
        foreach (IHardware subHardware in hardware.SubHardware)
            subHardware.Accept(this);
    }

    public void VisitSensor(ISensor sensor) { }

    public void VisitParameter(IParameter parameter) { }
}

Administrator rights

Some sensors require administrator privileges to access the data. Restart your IDE with admin privileges, or add an app.manifest file to your project with requestedExecutionLevel on requireAdministrator.

Warning

We're not affiliated with librehardwaremonitor.com.
For your safety, please avoid using that site.

Acknowledgements

Many thanks to all contributors listed below, and to JetBrains for providing tooling.

License

LibreHardwareMonitor is free and open source software licensed under MPL 2.0. Some parts of LibreHardwareMonitor are licensed under different terms, see THIRD-PARTY-LICENSES.

Frequently asked questions

Is LibreHardwareMonitor free to use?

LibreHardwareMonitor is open source under the MPL-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does LibreHardwareMonitor do?

Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.

What is LibreHardwareMonitor written in?

LibreHardwareMonitor is primarily written in C#. Its source is publicly available at https://github.com/LibreHardwareMonitor/LibreHardwareMonitor, and it has 9,084 GitHub stars.