<!--
{
  "availability" : [
    "macOS: 15.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreHID",
  "identifier" : "/documentation/CoreHID/HIDDeviceManager",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core HID"
    ],
    "preciseIdentifier" : "s:7CoreHID16HIDDeviceManagerC"
  },
  "title" : "HIDDeviceManager"
}
-->

# HIDDeviceManager

A helper for discovering human interface devices (HID) connected to the system.

```
actor HIDDeviceManager
```

## Overview

Use this class to specify matching criteria to filter all of the discoverable devices connected to the system into devices of interest. This is the main method of receiving a [`HIDDeviceClient.DeviceReference`](/documentation/CoreHID/HIDDeviceClient/DeviceReference-swift.struct) used to create a [`HIDDeviceClient`](/documentation/CoreHID/HIDDeviceClient).

Matching criteria are specified by creating [`HIDDeviceManager.DeviceMatchingCriteria`](/documentation/CoreHID/HIDDeviceManager/DeviceMatchingCriteria) and passing them to [`monitorNotifications(matchingCriteria:)`](/documentation/CoreHID/HIDDeviceManager/monitorNotifications(matchingCriteria:)). References to devices that match the criteria are received using [`HIDDeviceManager.Notification.deviceMatched(_:)`](/documentation/CoreHID/HIDDeviceManager/Notification/deviceMatched(_:)) notifications.

## Topics

### Create a device manager

[`init()`](/documentation/CoreHID/HIDDeviceManager/init())

Creates a matching service for HID devices.

### Monitor device notifications

[`func monitorNotifications(matchingCriteria: [HIDDeviceManager.DeviceMatchingCriteria]) -> AsyncThrowingStream<HIDDeviceManager.Notification, any Error>`](/documentation/CoreHID/HIDDeviceManager/monitorNotifications(matchingCriteria:))

Creates an asynchronous stream that receives notifications for devices of interest.

[`enum Notification`](/documentation/CoreHID/HIDDeviceManager/Notification)

Notifications for HID devices.

### Structures

[`struct DeviceMatchingCriteria`](/documentation/CoreHID/HIDDeviceManager/DeviceMatchingCriteria)

Matching criteria used to filter HID devices.

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Actor`](/documentation/Swift/Actor)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)