No description
  • Objective-C 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
0xGingi ee51cbab42 Modernize tvOS browser fork
Migrate launch lifecycle, update Kagi defaults, replace alert-based input and menus, async WebKit input probing, preserve cookies across user-agent changes, add TV layout modes, and document fork changes.
2026-06-24 20:12:36 -04:00
_Project Modernize tvOS browser fork 2026-06-24 20:12:36 -04:00
docs Modernize tvOS browser fork 2026-06-24 20:12:36 -04:00
Icons Added support for browser tabs, storing state between app launches, migration to MVVM architecture 2026-03-03 18:30:34 +01:00
.gitignore More WKWebView support added, improved scrolling, advanced testing with adding full-screen video playback and testing for hq YT stream url 2026-03-04 18:37:59 +01:00
README.mdown Modernize tvOS browser fork 2026-06-24 20:12:36 -04:00
readme_instruction_01.png Add files via upload 2021-01-06 18:11:40 +01:00
readme_instruction_02.png Add files via upload 2021-01-06 18:11:40 +01:00
screen01.png Migrated top bar to utilize Focus driven interactions 2026-03-08 19:18:39 +01:00
screen02.png Migrated top bar to utilize Focus driven interactions 2026-03-08 19:18:39 +01:00
screen03.png Migrated top bar to utilize Focus driven interactions 2026-03-08 19:18:39 +01:00

tvOS Browser

Changes in This Fork

  • Migrated app launch to the UIScene lifecycle required by current tvOS SDKs.
  • Added SceneDelegate lifecycle handling while preserving existing app delegate setup and cookie save/restore behavior.
  • Fixed a UIKit event reentrancy crash by moving cursor hover detection out of active sendEvent:/touch dispatch.
  • Added async JavaScript evaluation and async DOM/page-action/video probing for input-critical paths, replacing run-loop-pumped WebKit calls for hover, selection, editable field prompting, and video activation.
  • Changed the default homepage and search provider from Google to Kagi, including Quick Menu and failed-page search actions.
  • Replaced alert-based URL/search, page text entry, and favorite naming fields with a reusable full-screen tvOS input panel.
  • Replaced Quick Menu, Favorites, Delete Favorite, and History alert sheets with custom tvOS menu panels.
  • Added nullability annotations to the session store interface.
  • Added a smoke test checklist at docs/smoke-test-checklist.md.
  • Preserved WebKit website data when switching between desktop and mobile user agents so cookies and site sessions are not cleared.
  • Added TV layout viewport modes so sites can reflow at desktop, comfortable TV, or large TV widths without default page zoom.
  • Kept persisted Side Menu controls for text size and opt-in page zoom.

Alt text

Alt text

Alt text

tvOS Browser is a webbrowser for Apple TV devices running tvOS. It's using private API's, Apple does normally not allow to use this in App Store distributed apps. The latest version has some significant changes:

  • It's now using WKWebView instead of UIWebView, which results in much improved performance and better website rendering.
  • Added support for browser Tabs
  • New modern Liquid Glass UI
  • Added (experimental) full screen video player, which you can enable in the Menu

This code is provided as is with no warrenty or liability. Use at your own risk and do not distribute builds of this project on the App Store.

How to Install tvOS Browser

There is no ready to use binary available on this repository. You need to install Xcode and build/run the project yourself. To install this app, connect your Apple TV to your macOS computer via WiFi (or USB on older devices). Open this project in Xcode and install to your Apple TV. Connecting to your Apple TV wirelessly: http://www.redmondpie.com/how-to-wirelessly-connect-apple-tv-4k-to-xcode-on-mac/.

How to Use tvOSBrowser

Quick start:

  • Double press on the center of the touch area of the Apple TV Remote to switch between cursor & scroll mode.
  • Press the touch area while in cursor mode to click.
  • Single tap to Menu button to go back, or exit if it's root page.
  • Single tap the Play/Pause button to show the Quick Menu, with: input URLs, search Kagi, reload the page, or go forward.
  • Double tap the Play/Pause button to: display the full Side Menu, with: Favorites, History, set/open homepage, change user agent, clear cache, and clear cookies and more.
  • Use Side Menu > Readability to choose a TV layout size or adjust text size for TV viewing distance.

The Side menu lets you:

  • Go to Home page
  • Set Home page
  • Manage Favorites
  • Manage History
  • Show Tabs
  • Open New Tab
  • Hide/Show top Navigation bar
  • Set page Scaling options
  • Increase/decrease Font size
  • Enable/disable Full Screen player
  • Switch Desktop/Mobile User Agent
  • Show some video diagnostics
  • Clear cache
  • Cleare cookies
  • Show the usage guide