# canaryd v0.2.0 - Table of Contents

> Canary in the coal mine for your Mac. Detects overheating and apps that
are alive but silently dead (process running, function stopped) via
synthetic probes. Self-heals with quiet restarts; only nags you when blocked.

## Pages

- [README](readme.md)

## Modules

- [Canaryd](Canaryd.md): Mac health monitor: thermal, resources, and functional app probes.
- [Canaryd.Apps.CleanClip](Canaryd.Apps.CleanClip.md): CleanClip health: L2 process liveness + L3 functional clipboard probe.
- [Canaryd.Apps.Unresponsive](Canaryd.Apps.Unresponsive.md): Reads the macOS WindowServer unresponsive state for supported GUI processes.
- [Canaryd.CLI](Canaryd.CLI.md): escript entry: check | thermal-check | status | history [target] | install | uninstall
- [Canaryd.Checker](Canaryd.Checker.md): One full health-check round
- [Canaryd.Duration](Canaryd.Duration.md): Defines milliseconds as the internal time unit.
- [Canaryd.Notifier](Canaryd.Notifier.md): macOS notifications. Used only when user attention is required.
- [Canaryd.Pasteboard](Canaryd.Pasteboard.md): Runs a reversible probe transaction on a macOS pasteboard.

- [Canaryd.Setup](Canaryd.Setup.md): Self-installing launchd agent. launchd is an implementation detail:
users never touch plist files. Every CLI invocation ensures the agent
is present and loaded; if the user deletes it, the next run heals it.

- [Canaryd.StateMachine](Canaryd.StateMachine.md): Pure transition logic for per-target health. Testable without side effects.
- [Canaryd.Store](Canaryd.Store.md): DETS-backed persistent state.
- [Canaryd.System](Canaryd.System.md): L1 system-level health: thermal throttling, load, memory pressure,
and user idle detection (keyboard/mouse via IOHIDSystem HIDIdleTime).

- [Canaryd.Temperature](Canaryd.Temperature.md): Reads Apple Silicon CPU and GPU sensor temperatures from macmon.

- [Canaryd.ThermalMonitor](Canaryd.ThermalMonitor.md): Confirms sustained thermal pressure and limits user action prompts.
- [Canaryd.UnresponsiveMonitor](Canaryd.UnresponsiveMonitor.md): Pure confirmation and cooldown policy for unresponsive GUI apps.

