No description
Find a file
Natalie f2ce865cb8 docs(@applications/tv-anarchy): 📝 update app description and architecture details
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 20:57:51 -07:00
.project chore: build runner, gitignore, project manifest, objectives + history docs 2026-06-09 05:50:02 -07:00
docs docs(@applications/tv-anarchy): 📝 update app description and architecture details 2026-06-09 20:57:51 -07:00
fleet docs(fleet): add fleet registry README 2026-06-09 05:50:01 -07:00
governor feat(governor): fleet governor service (bandwidth/scan/rsync/watch) + porn-rotation tool 2026-06-09 05:50:01 -07:00
mcp feat(mcp): plum-control MCP server — blacktv/media/transmission/vlc/display tools 2026-06-09 05:50:01 -07:00
recommender feat(recommender): Python media recommender (TMDB/IMDb enrich, grouping, keyless sources) 2026-06-09 05:50:01 -07:00
search feat(search): vendor torrent-search MCP fork (TPB/Nyaa/1337x wrappers, FastAPI+MCP servers) 2026-06-09 05:50:01 -07:00
Sources feat(@applications): add adult content browsing tab 2026-06-09 19:51:12 -07:00
Tests feat(@applications): add adult content browsing tab 2026-06-09 19:51:12 -07:00
tools feat(@applications/tv-anarchy): improve macOS install logic 2026-06-09 20:50:54 -07:00
.gitignore chore: build runner, gitignore, project manifest, objectives + history docs 2026-06-09 05:50:02 -07:00
build-install.sh feat(@applications/tv-anarchy): improve macOS install logic 2026-06-09 20:50:54 -07:00
project.yml feat(@applications): add adult content browsing tab 2026-06-09 19:51:12 -07:00
README.md docs(@applications/tv-anarchy): 📝 update app description and architecture details 2026-06-09 20:57:51 -07:00
run chore: build runner, gitignore, project manifest, objectives + history docs 2026-06-09 05:50:02 -07:00

TVAnarchy

Native macOS app (SwiftUI) for the home media stack on plum, plus an iOS companion. Unifies what was previously CLI/MCP-only: pick a playback device (plum's VLC/QuickTime or the HDMI TV on black) and drive transport, browse a cached library, search and manage downloads, enrich metadata, and manage the device registry — all from one app.

Hybrid architecture: the control plane is native Swift (HTTP to VLC's Lua interface; mpv JSON-IPC over SSH to black — zero new runtime deps); the data-heavy plane reuses the vendored helper projects (mcp/, recommender/, search/) as subprocesses. See docs/ for the full picture and docs/roadmap.md for built-vs-designed status.

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, PlayerTarget protocol + impls, library/metadata/torrents/VPN subsystems, device registry.
  • Sources/TVAnarchy/ — SwiftUI macOS app (App, RootView, feature views: Home/Player/Library/Search/Downloads/Metadata/Adult/Devices/Logs/Settings).
  • Sources/TVAnarchyiOS/ — iOS companion (VLCKit player, library, downloads, remote control over an HTTP bridge).
  • Tests/TVAnarchyCoreTests/, Tests/TVAnarchyiOSUITests/ — unit + UI tests.
  • governor/, mcp/, recommender/, search/ — helper subsystems (own READMEs).
  • fleet/ — designed-only mesh layer; tools/ — release/update/stamping scripts; docs/ — cross-cutting documentation.

Playback devices

  • Plum VLC — HTTP to http://127.0.0.1:8080/requests/… (password from ~/.config/portable-net-tv/config.json or $VLC_HTTP_PASSWORD).
  • Black (mpv) — mpv JSON-IPC over SSH, endpoints LAN 10.0.0.11 → WG overlay 10.9.0.4 fallback (the LAN address flaps). Launch/library/stats are delegated to per-device command templates wrapping /usr/local/bin/black-tv (the legacy blacktv kind auto-migrates to this).
  • QuickTime — local, zero-install, AppleScript-driven.

Devices live in ~/.config/tv-anarchy/devices.json and are editable in the Devices tab.