Unity can support the HTC Vive through either the OpenVR package or SteamVR. Unity 2019.3 and above now offer XRInput which provides standardized input across a variety of devices. However, OpenVR is not currently supported in Unity XR Management. You will need to use the Legacy system to access OpenVR, or the SteamVR asset.
Please note that the Vive Cosmos requires SteamVR for access to controller input.
In order to support OpenVR devices such as the HTC Vive, you will need to install the OpenVR Desktop package (Window -> Package Manager) and add the SDK in your project settings (Edit -> Project Settings -> Player -> XR Settings):
Make sure the OpenVR Desktop package is installed and listed under your SDK's at Player Settings -> XR Settings -> Virtual Reality Settings, and that "Virtual Reality Supported" is checked.
The Vive Wand controllers have a slight offset due to how the controllers are physically angled (about 15 degrees forward, for example). You may need to adjust the angle that the hand models are tracked. See the ControllerOffset component for a solution to this problem, so you don't have to change the objects manually.
The Vive wand's grip button can at times be cumbersome to use as a grab button. You can easily switch to using trigger instead of grip, by changing the grab button on the Grabber, or on each individual Grabbable object.
While the original HTC Vive will work fine with XR Input and OpenVR, some HTC devices such as the Vive Cosmos require the SteamVR SDK in order to receive input. Follow the SteamVR instructions to set up this type of device.