# Chorus: reconstructing Logitech Harmony remote programming

> Chorus identifies and backs up Logitech Harmony USB remotes, learns and decodes IR codes, and controls hubs over a local network. Its browser editor creates JSON device and activity configurations; technical notes document the vendor setup app and newer USB packet protocol.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/av1452/chorus>
- Primary source: <https://github.com/av1452/chorus/blob/a5b51387c1f726256aae49064a8f586a63540be2/docs/protocol-packet-hid.md>
- Catalog page: <https://awesomerea.org/resources/chorus-harmony-remote-case/>
- Record JSON: <https://awesomerea.org/resources/chorus-harmony-remote-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/chorus-harmony-remote-case/index.md)

## Requirements & limits

- **Prerequisites:** Python 3.10 or newer and a supported Harmony remote or hub; macOS and Linux USB use libusb.
- **Testing evidence:** The author reports read operations on a Harmony 665; hardware write operations remain unconfirmed.
- **Limits:** The native binary configuration's device, activity, and button sections remain unmapped.
- **License:** GPL-3.0-or-later.

## Primary sources

1. <https://github.com/av1452/chorus/blob/a5b51387c1f726256aae49064a8f586a63540be2/docs/protocol-packet-hid.md>
2. <https://github.com/av1452/chorus/blob/a5b51387c1f726256aae49064a8f586a63540be2/README.md>
3. <https://github.com/av1452/chorus/blob/a5b51387c1f726256aae49064a8f586a63540be2/pyproject.toml>

## More in Protocols

- [tinycoral: reconstructing the Coral Edge TPU instruction set and USB runtime](https://awesomerea.org/resources/tinycoral-edge-tpu-case/index.md) · Case study
- [ninebot-go: reconstructing Ninebot app cloud communication](https://awesomerea.org/resources/ninebot-go-case/index.md) · Case study
- [open-g2-hub: a local Even G2 client built on BLE protocol findings](https://awesomerea.org/resources/open-g2-hub-case/index.md) · Case study
- [Edifier Speakers BLE: reconstructing M60 and M90 speaker control](https://awesomerea.org/resources/edifier-speakers-ble-case/index.md) · Case study
- [Halyard: reconstructing Shadow cloud PC streaming on handhelds](https://awesomerea.org/resources/halyard-case/index.md) · Case study
- [Axial: mapping and controlling the DJI RS 4 Mini over Bluetooth](https://awesomerea.org/resources/axial-dji-rs4-mini-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
