Till0196/coax

Media & Design

A tuner daemon and CLI that expose TV tuners over one HTTP API so clients can tune and stream regardless of OS.

102
5
Go
GPL-2.0
13 days old

coax is worth a look if you already own a supported USB or PCIe TV tuner and want one consistent way to tune and stream it across Linux, Windows and macOS. The project is young and Japanese-broadcast-focused, so treat it as something to evaluate against your exact hardware rather than a drop-in replacement for existing setups.

The problem

A tuner owner wants to watch or record a channel on whatever machine they use. Today that usually means matching a driver stack and a client to each OS: a vendor driver plus BonDriver on Windows, a kernel driver plus a DVB or chardev path on Linux, and a different tool again on macOS. coax changes that step: a background daemon, coaxd, talks to the hardware, and clients ask it over HTTP to tune and then receive the stream. The result is the same command or client interface across platforms, with the OS-specific driver handling hidden behind the daemon.

What's different

Rather than one driver per device, coaxd runs several backends at once: direct USB access through usbfs, WinUSB or IOKit; Linux DVB; Windows BDA; and chardev backends for px4_drv and PT3/PT1 cards. It merges everything it finds into one tuner list, so hardware coax does not support directly can still be used through an existing OS driver. The selling point is the split between daemon and clients: a CLI, the BonDriver bridge for TVTest and EDCB, and the ZeroWave GUI all speak the same API, and nothing but the daemon touches the tuner.

The trade-off is the extra process and the API boundary. Listing tuners does not open a board, so it should not disturb a tuner another program is using, but real streaming still requires the daemon to hold the device. Clients can start coaxd on demand and the daemon exits when unused, which reduces the need to manage it by hand. The same architecture also means you must accept the daemon's documented limitations, and the README points readers to the daemon documentation for those.

Who should try it

This fits a user with a supported USB stick or a PCIe card who wants to move a recording or viewing setup between operating systems, or who wants a common backend for TVTest, EDCB, Mirakurun or a custom script. It is also a reasonable fit if you want a single tuner shared by several clients instead of each program claiming the hardware itself.

It is a poor fit if your tuner and workflow already work well with a mature single-OS stack and you do not need cross-platform access, or if you expect a polished end-user viewing application: coax is a daemon and CLI, with GUI and TVTest integration living in separate projects.

Requirements and limitations

Building requires Go 1.25 or newer, and both binaries build with CGO_ENABLED=0 on Linux, Windows and macOS, which keeps deployment simple. Direct USB tuning depends on the OS-provided usbfs, WinUSB or IOKit paths; vendor firmware is not bundled, so some devices need a firmware extraction step from manufacturer driver packages. The getting-started guide covers firmware and per-OS preparation, so read it before assuming a device will work setup guide.

Coverage is concentrated on Japanese ISDB variants, with additional DVB tuning where the Linux DVB API can express it. License terms differ by component: the repository is dual-licensed, but coaxd includes GPL-2.0-only files and is therefore GPL-2.0-only as a whole, while coax and fwextract can be used under Apache-2.0. Check the NOTICE if you plan to redistribute a build.

HotRepo's take

HotRepo's only recorded observation is a 2026-10-26 appearance on the NEW-REPOSITORY board at #22 with 102 total stars; this is not a daily growth measure, and there is no comparable daily history. With a repository age of 12 days, persistence cannot be judged. Before spending time, verify the tuner documentation and confirm whether your specific model has a tested setup path daemon docs.

Written by AI from the project's README, updated October 26, 2026. The project's own docs are the source of truth.