Skip to content
On this page

Updated at:

โšก gRPC API โ€‹

CoolerControl provides a gRPC API primarily designed for plugin development and communicating with custom devices. The gRPC API offers strongly-typed, efficient communication with the daemon.

INFO

This API is intended for plugin developers. For applying CoolerControl settings and automation, use the REST API instead.

Overview โ€‹

Device service plugins expose their own gRPC API to allow CoolerControl to poll and control devices. Plugins can expose the API as either a Unix socket or a TCP socket.

Protocol Buffer Specifications โ€‹

The complete protocol buffer definitions are available in the cc-plugins repository:

Protocol Buffer Spec

For complete documentation, examples, and templates, see the cc-plugins repository.

Daemon gRPC API โ€‹

The daemon exposes its own gRPC API for polling device data by default on localhost:11988. This API is read-only and does not offer control capabilities.

Health Checks: The daemon implements the standard gRPC health check service for monitoring.

Health Check Example โ€‹

You can verify the daemon is running using a health check:

bash
grpcurl --plaintext localhost:11988 grpc.health.v1.Health/Check

Remote Access โ€‹

To access the gRPC API remotely, configure the daemon's bind address. See TCP Port and Address for configuration details.

Security โ€‹

The gRPC API does not use TLS by default. For secure remote access, use one of the following methods:

  • VPN or secure network - Use Tailscale, Wireguard, or similar solutions
  • SSH tunneling - Forward the gRPC port through an SSH connection
  • TLS-terminating reverse proxy - Use nginx or similar to handle TLS

Plugin Development โ€‹

For developing plugins that use the gRPC API, refer to these resources:

See Also โ€‹

Released under the GPLv3+ License.