# BunATV: reconstructing Apple TV control protocols in TypeScript

> BunATV reconstructs Apple TV control protocols as a Bun and TypeScript library with a companion CLI. It implements Companion pairing and remote input, MRP playback and state messages, and AirPlay transport layers, exposing messages close to their wire format. The author credits PyATV research and reports finding additional MRP messages through Ghidra analysis of Apple frameworks.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/JarekToro/bunatv>
- Primary source: <https://github.com/JarekToro/bunatv/blob/b3842e36633fc39615c409f4630cc788deaa1523/README.md>
- Catalog page: <https://awesomerea.org/resources/bunatv-apple-tv-protocol-case/>
- Record JSON: <https://awesomerea.org/resources/bunatv-apple-tv-protocol-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/bunatv-apple-tv-protocol-case/index.md)

## Requirements & limits

- **Prerequisites:** Bun is required to run the library and CLI from source.
- **Limits:** The project describes itself as an unstable alpha; APIs, CLI flags, output formats and credential storage may change.
- **Limits:** Voice input, game-controller input, playback migration and endpoint discovery remain unimplemented.
- **License:** MIT license is stated in the README.

## Primary sources

1. <https://github.com/JarekToro/bunatv/blob/b3842e36633fc39615c409f4630cc788deaa1523/README.md>

## More in Protocols

- [Ember Mug: decoding the on-device drink-log stream](https://awesomerea.org/resources/ember-mug-drink-log-case/index.md) · Case study
- [PreSonus Quantum Linux: investigating Quantum 2626 control for Linux audio](https://awesomerea.org/resources/presonus-quantum-linux-case/index.md) · Case study
- [Berbel Remote Emulator: reconstructing kitchen-hood BLE controls](https://awesomerea.org/resources/berbel-remote-emulator-case/index.md) · Case study
- [KuKirin G4: decoding BLE ride-mode notifications](https://awesomerea.org/resources/kukirin-g4-ble-mode-case/index.md) · Case study
- [Mutant Brain: mapping its SysEx configuration format](https://awesomerea.org/resources/reveng-mutantbrain-case/index.md) · Case study
- [TBBT A9 mini camera: reconstructing PPPP video login](https://awesomerea.org/resources/tbbt-a9-pppp-ha-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.
