The NZXT control app your Linux desktop never had.
Kori monitors your machine in real time and drives the NZXT hardware plugged into it: pump and fan curves, per-channel RGB, Kraken LCD. Local only. No account. No telemetry.

Real-time CPU, GPU, memory, and Kraken readouts. Liquid temperature comes through the kernel's own hwmon driver, so no kernel driver is detached and no USB endpoint is opened for the thermal path.
Pump and fan duty plus the onboard liquid-temperature curve. Writes go through a udev rule granting exactly four PWM attributes and eighty curve points, and a single per-user daemon owns every one of them.
Per-channel RGB on the controllers it has been validated against, and Kraken LCD configuration and rendering matched to the resolution of the unit actually in your loop.
Validated per device, never per family.
Hardware support advertised at product-family level breaks the moment firmware behavior differs per unit. Kori only exposes a control whose capability has been exercised against a specific VID/PID and firmware revision on real hardware, and it says so on screen. Everything unvalidated stays visibly disabled rather than being attempted.
- NZXT RGB ControllerValidated
- NZXT Kraken BaseValidated
- Any other NZXT deviceDisabled
Reads on any machine. Writes only where it is proven.
Without the udev rule Kori runs read-only and tells you so. Grant it, plug in hardware from the register, and a second set of controls unlocks: cooling, RGB, Kraken LCD.
Reads before it writes.
- Real-time CPU, GPU, memory, and Kraken readouts
- Liquid temperature through the kernel hwmon driver
- Runs read-only without the udev rule, and says so
- No account, no cloud, no telemetry, no listening socket
grants the write path
Takes the controls.
- Pump and fan duty on recorded PWM attributes
- The onboard liquid-temperature curve, eighty points
- Per-channel RGB on the NZXT RGB Controller
- Kraken LCD configuration and rendering
Every figure here comes out of a machine.
The counts are read from a capability record generated by korid --capabilities on kernel 7.1.6-201.fc44.x86_64, serials redacted at the source. The build compares that record against the application repository, so a stale claim fails instead of shipping.
{
"schema_version": 3,
"context": {
"kernel_release": {
"state": "known",
"value": "7.1.6-201.fc44.x86_64",
"source": "uname(2)"
},
"probed_at_unix_ms": 1786101450276
},
"devices": [
{
"support": {
"state": "supported"
},
"usb": {
"id": {
"vendor": 7793,
"product": 8225
},
"product": {
"state": "known",
"value": "NZXT RGB Controller",
"source": "/sys/bus/usb/devices/1-12/product"
},
"serial": {
"state": "unknown",
"reason": "redacted",
"source": "policy:redact-serials"
},
"firmware": {
"state": "known",
"value": "0105",
"source": "/sys/bus/usb/devices/1-12/bcdDevice"
},
"sysfs_path": "/sys/bus/usb/devices/1-12"
},
"hwmon": null
},
{
"support": {
"state": "supported"
},
"usb": {
"id": {
"vendor": 7793,
"product": 12302
},
"product": {
"state": "known",
"value": "NZXT Kraken Base",
"source": "/sys/bus/usb/devices/1-9/product"
},
"serial": {
"state": "unknown",
"reason": "redacted",
"source": "policy:redact-serials"
},
"firmware": {
"state": "known",
"value": "0200",
"source": "/sys/bus/usb/devices/1-9/bcdDevice"
},
"sysfs_path": "/sys/bus/usb/devices/1-9"
},
"hwmon": {
"driver": "kraken2023",
"path": "/sys/devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0a:00.0/usb1/1-9/1-9:1.1/0003:1E71:300E.000B/hwmon/hwmon5"
}
}
]
}2 devices validated11 capabilities recorded0 network requests
Hardware not in the record yet? Open an issue with your lsusb -v output at github.com/arthjean/kori.