Finds browser binaries — either a local binary to launch or a remote URL to connect to.
Chrome resolution order
WALLABIDI_CHROME_URL— connect to remote Chrome (chrome:9222or fullws://URL)WALLABIDI_CHROME_PATH— local Chrome binary to launch.browsers/PATHSfile (written bymix wallabidi.install)- System PATH
Lightpanda resolution order
WALLABIDI_LIGHTPANDA_PATH— local Lightpanda binary to launch.browsers/PATHSfile (written bymix wallabidi.install)
Lightpanda has no remote-URL mode here: the lightpanda package
manages the binary and spawns it locally. When neither source
resolves, the lightpanda package falls back to its own
Lightpanda.bin_path/0 (the version-stamped .browsers/lightpanda/
dir, or _build/).
Setup
mix wallabidi.installOr for Docker/CI:
WALLABIDI_CHROME_URL=chrome:9222 mix test.chrome
WALLABIDI_LIGHTPANDA_PATH=/opt/lightpanda/lightpanda mix test.lightpanda
Summary
Functions
Returns {:url, url} for remote, {:path, path} for local, or :error.
Returns {:ok, path} for local Chrome, or :error. Ignores URLs.
Returns the local Chrome binary path or raises.
Returns the remote Chrome URL or nil.
Returns {:path, path} for a resolved Lightpanda binary, or :error.
Returns the directory Lightpanda should install into, version-stamped
to mirror Chrome for Testing's .browsers/chrome/<target>-<version>/
layout — e.g. .browsers/lightpanda/aarch64-macos-fork-2026-05-30.
Returns {:ok, path} for a resolved Lightpanda binary, or :error.
Functions
Returns {:url, url} for remote, {:path, path} for local, or :error.
Returns {:ok, path} for local Chrome, or :error. Ignores URLs.
Returns the local Chrome binary path or raises.
Returns the remote Chrome URL or nil.
Returns {:path, path} for a resolved Lightpanda binary, or :error.
Unlike chrome/0 there is no remote-URL mode — the lightpanda
package launches the binary locally.
Returns the directory Lightpanda should install into, version-stamped
to mirror Chrome for Testing's .browsers/chrome/<target>-<version>/
layout — e.g. .browsers/lightpanda/aarch64-macos-fork-2026-05-30.
Used both by mix wallabidi.install (to place the binary) and by the
test config (to point config :lightpanda, :install_dir at the same
spot so the runtime resolves it). Returns nil if the lightpanda
package is unavailable or too old to expose target/0 + release/0.
Returns {:ok, path} for a resolved Lightpanda binary, or :error.