| .project/history | ||
| docs | ||
| Sources | ||
| Tests/TVAnarchyCoreTests | ||
| tools | ||
| .gitignore | ||
| build-install.sh | ||
| project.yml | ||
| README.md | ||
TVAnarchy
Native macOS app (SwiftUI) for the home media stack on plum. Unifies what was previously CLI/MCP-only: pick a playback target (plum's VLC or the HDMI TV on black) and drive transport; later phases add a cached library browser, a download searcher/manager, and a local (MLX) filename→metadata pipeline.
Hybrid architecture: the control plane is native Swift (SSH shell-outs to the
deployed black-tv script; HTTP to VLC's Lua interface — zero new runtime deps);
the data-heavy plane reuses existing projects (plum-control-mcp, media-recommender)
as helper subprocesses. See the build plan for phases.
Build
brew install xcodegen # if not already present
xcodegen generate # project.yml -> TVAnarchy.xcodeproj
xcodebuild -scheme TVAnarchy -destination 'platform=macOS' build
# or open TVAnarchy.xcodeproj in Xcode and Run
TVAnarchy.xcodeproj is generated and git-ignored — project.yml is the source of truth.
Layout
Sources/TVAnarchyCore/— framework: models,PlayerTargetprotocol + impls, target selector.Sources/TVAnarchy/— SwiftUI app (App, RootView, feature views).Tests/TVAnarchyCoreTests/— unit tests for the core (status decoders, mappings).
Devices & services
Config lives in ~/.config/tv-anarchy/devices.json (DevicesConfig). A device
exposes one or more typed services; picking a device type preselects its
defaults. Edit them in the Devices tab.
- Plum VLC (
vlcservice) — HTTP tohttp://127.0.0.1:8080/requests/…(password from~/.config/portable-net-tv/config.jsonor$VLC_HTTP_PASSWORD). - Black TV (
mpvservice) — mpv JSON IPC over SSH; delegated launch/library/ stats/teardown via/usr/local/bin/black-tv. Endpoints try LAN then the WG overlay (the LAN address flaps). - QuickTime (
quicktimeservice) — local, zero-install. - Resources drive (
resourcesDriveservice) — shared drive for app builds/updates + synced library/metadata assets (see docs/operations.md).