# Browser Mod for Home Assistant: remote control and media on wall displays

> Browser Mod turns a browser connected to Home Assistant into a controllable media player and UI target. It fits wall-mounted tablets and shared dashboards, but registration, cache reloads, and Android power behavior impose operational limits.

**thomasloven/hass-browser_mod** — 🔹 A Home Assistant integration to turn your browser into a controllable entity and media player

- Repository: https://github.com/thomasloven/hass-browser_mod
- Stars: 1,841 · Forks: 213
- Language: TypeScript
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/thomasloven-hass-browser-mod

## Browser Mod's target devices and Home Assistant role

Browser Mod addresses a specific gap in Home Assistant interfaces: Home Assistant can communicate with a registered browser, but the browser is not automatically a controllable media player or a flexible display endpoint. The project makes that browser part of the automation surface. Its stated uses include opening a front-door camera feed on a wall tablet, presenting an additional camera view, playing media from the Home Assistant library, replacing an entity's more-info dialog, and switching a shared tablet to a purpose-built dashboard.

This makes the project most relevant to installers with a wall-mounted tablet, a display-only browser, a kitchen information panel, or another always-present Home Assistant client. It can also fit an informal kiosk because the README describes hiding the sidebar, replacing selected interface elements, and changing the Home Assistant tab icon. Those are browser interface changes rather than operating-system kiosk controls, so the exact ability to lock down a device depends on the browser and device configuration outside this repository.

The core distinction is control over the Home Assistant browser session, not control over physical hardware. Browser Mod cannot switch a display off. Its light entity can imitate a dimmed screen with a dark overlay, but that does not prevent Android or the browser from suspending the application. That boundary should shape expectations before adopting the integration.

## How registered browsers become automation targets

The documented control flow starts with registration. A browser opens the Browser Mod panel in the Home Assistant sidebar, enables the Register toggle, and refreshes the page. Registration is mandatory because it enables backend services to target that browser. Without it, Home Assistant may have no browser endpoint to receive commands such as `browser_mod.popup`.

The repository layout separates concerns between `custom_components/browser_mod/` and `js/`. Based on those paths, the Home Assistant side contains the custom integration while `js/` contains browser-side JavaScript. The JavaScript is delivered to registered browsers, which lets the backend direct interface actions at those clients. This differs from a media cast because the target is specifically a browser participating in Browser Mod, not merely any device discovered through a general casting protocol.

Version compatibility is part of that connection. The README says upgrades require every registered browser to reload so it can download the latest Browser Mod JavaScript file. Version 2.4.0 introduced a notification for a browser version mismatch. From 2.4.x onward, the documented recovery is to click Reload, then use `SHIFT+F5` or clear the browser cache if the mismatch notification persists. Stale browser code can therefore remain a practical failure point even after Home Assistant and the integration have restarted.

## Installing Browser Mod through HACS and completing the first popup

The README requires removing Browser Mod 1 before installing the current integration. Remove `browser_mod:` from `configuration.yaml`, delete Browser Mod from the integrations page, then install the current version through HACS or copy `custom_components/browser_mod/` into `<your config dir>/custom_components/browser_mod/`.

For a HACS installation, find Browser Mod under `integrations`, restart Home Assistant, then add it through Settings -> Devices & Services -> Add Integration. The README specifies another Home Assistant restart after the integration has been added. After installation, clear the browser cache thoroughly, open the Browser Mod sidebar panel, enable Register, and refresh with F5.

The first documented action can be performed entirely through Home Assistant's Services interface. Open Developer Tools -> Services, select Browser Mod: popup (`browser_mod.popup`), enable Title, enter a title and plain text in Content, then click CALL SERVICE. The README notes that the button may look disabled because of a Home Assistant visual issue. Clicking it anyway should open the popup on all registered browsers.

A browser that was already registered before the upgrade must also be reloaded. Do not interpret an unchanged dashboard as proof that the command failed until the browser's cached JavaScript version has been checked.

## Media playback and custom popup presentation

Browser Mod extends beyond text popups. The README describes playback of music and videos from the Home Assistant media library, and its FAQ shows that `media_player.play_media` can carry a Browser Mod popup configuration under `extra.popup`. This allows media playback and the surrounding presentation to be defined in the same Home Assistant action.

The documented fullscreen example configures `initial_style` as `fullscreen` and adds dialog styling through `popup_styles`. The CSS sets the dialog surface background to black and removes container padding. The repository states that popup parameters can be passed for the media player except `content`. That exception matters when designing an action because the media configuration and popup content do not accept every parameter identically.

The README also points to popup cards as templates for `browser_mod.popup` and as replacements for an entity's more-info dialog. This creates a reusable interface pattern, but the README links to separate documentation rather than reproducing every supported card parameter or target selection rule. The main README therefore confirms the existence and purpose of these features, not their full configuration surface. The project-specific services and dashboard-card documentation are the appropriate references before designing a production automation.

## The browser JavaScript build in this TypeScript repository

Although Browser Mod is consumed as a Home Assistant integration, its repository includes a TypeScript and JavaScript build. `package.json` identifies Rollup as the build tool, with Babel, TypeScript, Terser, node resolution, JSON handling, `lit`, and `structured-clone` support. The package version is `3.3.0`, matching the current integration manifest update performed by the build lifecycle.

The defined build path is short. The `prebuild` script runs `update-manifest-version`, which copies the package version into `custom_components/browser_mod/manifest.json`. The `build` script then invokes `rollup -c`. A contributor with a suitable Node.js environment can reproduce the declared repository build with these commands:

```bash
npm ci
```

This installs the versions recorded by the repository lockfile. The build then runs the manifest update and Rollup configuration:

```bash
npm run build
```

That operation is relevant to source builds and release preparation. It is not the installation procedure for an end user, whose README directs them to HACS or to copying `custom_components/browser_mod/` into the Home Assistant configuration directory.

## Android suspension and other limits of browser-based control

The most significant limitation is the gap between an active browser and a functioning display. Browser Mod says it cannot put devices into a real screen-off state. Its light entity can simulate a dimmed display, but Android may put the browser or app into doze behavior and freeze it. If Home Assistant can no longer reach the browser, background services have nowhere to render their result.

This makes Browser Mod a poor fit for unattended displays whose operating system aggressively suspends them. It is also unsuitable where physical screen-off behavior is a security or power-management requirement, because a dark overlay is only visual. The README links to a separate wiki article about running Browser Mod on Android devices, but the main README does not prescribe a particular battery, wake-lock, or kiosk configuration.

Other boundaries follow from the architecture. Only registered browsers are targets. Multiple registered browsers may receive the same popup, as shown by the Quickstart wording, so room-specific behavior requires suitable target selection documented elsewhere. Version mismatches can persist in cached JavaScript. Migration from Browser Mod 1 may also produce errors involving `data['deviceID']` while an old browser version remains cached. None of these failures establishes that the Home Assistant service is broken by itself.

## Browser Mod versus browser automation through Home Assistant dashboards

A direct alternative is to use the browser's own kiosk facilities, Home Assistant dashboard navigation, and the browser's display settings, without Browser Mod. That approach has a narrower purpose, but it does not require the Home Assistant backend to register and update JavaScript in every browser. It also leaves media and popup control to separate mechanisms.

Browser Mod instead provides Home Assistant services that target registered browser clients and can combine commands with media playback. It can open popups, navigate to dashboards, play library content, and replace an entity's more-info presentation. The cost is an additional integration, registration state, browser-side JavaScript delivery, and mandatory reload handling after upgrades.

Another alternative is using dedicated media devices, such as televisions or speakers, for playback. Browser Mod cannot compete when audio reliability, casting support, or hardware sleep behavior is the primary requirement. It is more relevant when the desired endpoint is already a Home Assistant browser and the goal is to alter that browser's interface.

## Browser Mod release handling and MIT licensing

The repository is not archived, and its last push was on 2026-10-07. Recent release entries include `v3.3.0` on 2026-10-07, `v3.3.0-beta.2` on 2026-09-30, and `v3.3.0-beta.1` on 2026-09-18. The current release sequence is recent, although readers should assess compatibility and operational fit rather than treating release frequency as proof of suitability.

Upgrade cost comes mainly from browser-side reloads and cache handling. The documented HACS path can present a repair item requesting a Home Assistant restart. After that restart, registered browsers still need to reload to obtain the latest JavaScript. Persistent version warnings can require a hard reload or cache clearing. These are concrete maintenance steps rather than speculative future changes.

The repository uses the MIT license. That permits use, modification, distribution, and inclusion under the license's conditions, with the license text and copyright notice retained. This is a project-level licensing fact, not legal advice about a particular installation or commercial deployment.

## Conclusion

Adopt Browser Mod when you operate browser-based Home Assistant displays and need targeted popups, dashboards, or media without treating the browser as a hardware control device. Do not choose it for displays that may be suspended or for use cases requiring reliable physical screen-off control. Verify first that each target browser registers, retains access to Home Assistant, and can reload the JavaScript bundle after upgrades.

## FAQ

### How do I install Browser Mod in Home Assistant?

Remove any Browser Mod 1 configuration and integration, then install the current version through HACS or copy `custom_components/browser_mod/` into the Home Assistant configuration directory. Restart Home Assistant, add Browser Mod from Settings -> Devices & Services -> Add Integration, and restart again.

### Why does Browser Mod not find my browser?

Open the Browser Mod panel, enable the Register toggle, and refresh the browser. Registration must be enabled for backend services to target the browser. After an upgrade, also reload the browser and clear its cache if a version mismatch remains.

### Can Browser Mod turn a Home Assistant tablet screen off?

No. Browser Mod cannot control hardware-level screen state, although its light entity can simulate a dimmed screen with a dark overlay. Android doze or application suspension can still freeze the browser and break connectivity.

### Does Browser Mod support fullscreen video in Home Assistant?

Yes. The README documents fullscreen popup styling through the `popup` dictionary under `extra` in a `media_player.play_media` action. It also states that `content` is the popup parameter that cannot be used in this media player configuration.

## Sources

- [Issues](https://github.com/thomasloven/hass-browser_mod/issues)
- [License: MIT](https://github.com/thomasloven/hass-browser_mod/blob/master/LICENSE)
- [README](https://github.com/thomasloven/hass-browser_mod/blob/master/README.md)
- [Releases](https://github.com/thomasloven/hass-browser_mod/releases)
- [thomasloven/hass-browser_mod on GitHub](https://github.com/thomasloven/hass-browser_mod)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/thomasloven-hass-browser-mod
