Fork of lightpanda-io/browser, focused on running Lightpanda as a tvOS app and CDP server inside the tvOS Simulator.
This fork is not a general downstream packaging repo. The main work here is tvOS porting: app lifecycle wiring, Zig build changes, vendored dependency setup, TLS certificate fallback, and an Xcode test harness that makes the port reproducible.
Compared with upstream, this fork adds and documents a tvOS-oriented runtime path:
- tvOS app entry and lifecycle glue in
tvos/andsrc/tvos_entry.zig - tvOS Simulator build support in
build.zig - vendored
zig-v8andboringssl-zigintegration underdeps/ - CA bundle fallback for tvOS TLS in
src/http/Http.zigandsrc/data/ca-bundle.pem - an Xcode-based test app in
xcode/LightpandaTVTest
The goal is simple: start Lightpanda inside a tvOS app, expose a CDP endpoint, and drive it from external tooling such as Puppeteer.
This fork currently centers on:
- tvOS Simulator execution
- CDP server availability on
127.0.0.1:9222 - reproducible Zig + Xcode build flow
- HTTPS compatibility in environments without system certificates
It should be read as a working engineering fork, not as a full productized downstream distribution.
- Lightpanda still comes from the upstream project and remains a beta headless browser.
- The tvOS path here is fork-specific work and is not an upstream release target.
- The current TLS workaround uses an embedded CA bundle because the tvOS Simulator does not expose system certificates in the same way as macOS.
- CDP behavior is currently single-connection oriented.
SDKROOT=$(xcrun --sdk appletvsimulator --show-sdk-path)
cat > /tmp/tvos-sim.libc <<EOF
include_dir=$SDKROOT/usr/include
sys_include_dir=$SDKROOT/usr/include
crt_dir=$SDKROOT/usr/lib
msvc_lib_dir=
kernel32_lib_dir=
gcc_dir=
EOF
/tmp/zig-0.15.2/zig build \
--sysroot "$SDKROOT" \
--libc /tmp/tvos-sim.libc \
-Dtarget=aarch64-tvos-simulator \
-Doptimize=ReleaseFast \
-Dtvos_appAPPDIR=zig-out/tvos-simulator/LightpandaTV.app
mkdir -p "$APPDIR"
cp zig-out/bin/LightpandaTV "$APPDIR/LightpandaTV"
cp tvos/Info.plist "$APPDIR/Info.plist"
xcrun simctl install <BOOTED_UDID> "$APPDIR"
xcrun simctl launch <BOOTED_UDID> io.lightpanda.tvoscurl http://127.0.0.1:9222/json/versionUse any CDP-compatible client against:
ws://127.0.0.1:9222/- English porting notes:
TVOS_PORTING_EN.md - Chinese porting notes:
TVOS_PORTING.md
These documents explain the fork-specific engineering work in more detail, including:
- tvOS app startup flow
- build system adjustments
- CA certificate handling
- Xcode test harness setup
- known issues and follow-up work
src/: Zig browser runtime and HTTP/CDP implementationtvos/: tvOS app wrapper and scene lifecycle filesdeps/: vendored dependency build logic used by this forkxcode/LightpandaTVTest: reproducible Xcode test project
Upstream project:
If you need the general Lightpanda browser roadmap, feature matrix, or upstream installation guidance, read upstream first. If you need the tvOS port, simulator workflow, or fork-specific maintenance details, this fork is the relevant source.