mrkeyoor.com_
Fri 16 Oct 18:53 UTC
Automationevaluationupdated 07 Oct 2026

browser review

Lightpanda is a headless browser built for web automation, HTML extraction, and agents without carrying a desktop rendering engine. It accepts CDP and WebDriver BiDi clients, can expose native MCP tools over JSON-RPC 2.0, and can turn an agent session into a replayable JavaScript file.

+335stars / 7d
Verdict

Our Lightpanda run installed 120 packages, built successfully in 90 seconds, and passed all 8 Cargo tests, so the source path works but the test result is too narrow to prove browser compatibility. Use it for extraction or agent browsing when pixels do not matter and you can replay your target sites before switching. Keep Chromium for visual checks, strict Playwright parity, or protected sites that reject Lightpanda's network fingerprint.

We ran it

Lab card: what happened when we ran browserScreenshot of browser (lightpanda.io)
Install✓ · 13s120 packages
Build✓ · 90s
Tests✓ · 5s8 passed · 0 failed of 8 (cargo test)
Repo1211 files~5,875 lines of source · 16.9 MB · 10 CI workflows

Answers from our run

Does browser build from source?

Dependencies installed in 13 seconds (120 packages), and the build succeeded in 90 seconds. We cloned commit 4c748cb into a clean Debian container with 3 CPUs and no project-specific setup.

Do browser's tests pass?

Yes: 8 of 8 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use browser?

Visual regression and layout-testing teams: the README says Lightpanda has no graphical rendering engine, and its PNG and PDF dumps are text-only.

What are the alternatives to browser?

Playwright, Puppeteer, Browserless. Our Lightpanda run installed 120 packages, built successfully in 90 seconds, and passed all 8 Cargo tests, so the source path works but the test result is too narrow to prove browser compatibility.

Setup4/513-second install plus binaries, but source needs Zig and Rust
Docs4/5Clear usage paths, platform limits, source steps, and test commands
Community5/536,087 stars, an October 7 push, and same-day issue activity
Maturity3/5Broad automation support, with open compatibility regressions

Discussed on

  1. hnShow HN: Lightpanda, an open-source headless browser in Zig319 points
  2. hnLightpanda: Headless browser designed for AI and automation154 points
  3. hnShow HN: Lightpanda, an open-source headless browser in Zig7 points

Who it’s for

Teams whose useful output is DOM data, HTML, or Markdown rather than pixel-perfect screenshots.
Puppeteer, Playwright, and WebDriver BiDi users willing to test their own workflows against a browser that is not Chromium.
Agent builders who want browsing tools over MCP or a saved PandaScript that runs without a model.
Operators who prefer a nightly binary or official container over maintaining full Chrome instances.

Who it’s NOT for

Visual regression and layout-testing teams: the README says Lightpanda has no graphical rendering engine, and its PNG and PDF dumps are text-only.
Playwright suites that depend on page.setContent() behaving exactly like Chrome: open issue 3832 reports timeouts because load events do not fire in one documented path.
Alpine, native Windows, or Android deployments: the published Linux binaries require glibc, Windows needs WSL2, and Android has no native build.
Crawlers that cannot test each protected target before switching: open issue 3804 reports Akamai-protected sites returning Access Denied from datacenter IPs after a TLS change.
Organizations that cannot accept AGPL-3.0 terms or default usage telemetry, even though the telemetry can be disabled.

Setup reality

Our sandbox installed 120 packages for commit 4c748cb in 13 seconds on 3 CPUs and 12 GB of RAM. The build succeeded in 90 seconds. Cargo test finished in 5 seconds with all 8 tests passing. The 16.9 MB checkout held 1,211 files and about 5,875 lines of source, with the measured Rust project under ./src/rust/.

Using the browser for fetch or CDP work needs no API credential. Agent mode can use hosted providers through their API keys, an OpenAI-compatible endpoint, or local Ollama or llama.cpp. The source instructions require Zig 0.15.2, Rust, V8, Libcurl, and several system packages. Usage telemetry is on unless LIGHTPANDA_DISABLE_TELEMETRY=true is set.

Nightly binaries cover glibc-based Linux and macOS. Windows uses WSL2, Android has no native build, and musl-based Linux needs a source build or another base image. Official Docker images exist for amd64 and arm64, though our checkout contained no Dockerfile. We found 10 CI workflow files and no tests directory.

A 16.9 MB checkout omits a graphical engine

Our checkout occupied 16.9 MB, and Lightpanda has no graphical rendering engine. That choice explains both its appeal and its limits. It can load JavaScript pages, expose the DOM, click elements, fill forms, manage cookies, and speak CDP or WebDriver BiDi. It can dump HTML and Markdown directly. PNG and PDF output is text-only, so this is a browser for machines that need page structure and actions, not a substitute for the pixels a user sees.

The native agent adds a second route. You can describe a task, save the session as PandaScript, and replay that JavaScript later without paying for a model on every run. Its MCP server uses JSON-RPC 2.0 over stdio or HTTP, with separate session IDs for isolated browsing contexts. Hosted model providers need their usual credentials, while Ollama, llama.cpp, and the basic no-LLM REPL provide local paths.

What happened when we ran it

We measured a 13-second install of 120 packages for commit 4c748cb in our fresh Debian sandbox. It had 3 CPUs, 12 GB of RAM, no secrets, and no elevated privileges. The build succeeded in 90 seconds. The checkout contained 1,211 files, while our scanner counted about 5,875 lines of source. The measured ecosystem was Rust, with the project under ./src/rust/.

Cargo test then finished in 5 seconds with 8 tests passed and 0 failed. That is a clean result, but it is a small one for software that stands in for a browser. Our harness did not measure page-load speed, memory use, CDP coverage, or Web Platform Test conformance. The checkout had 10 CI workflow files, no Dockerfile, and no tests directory. Inline or colocated Rust tests can still run without that directory, as the 8 passing cases show.

Binary setup is simple, while source setup spans Zig and Rust

The shortest route is a nightly binary, Homebrew, AUR, or the official container listening on port 9222. Building the current tree asks for Zig 0.15.2, Rust, V8, Libcurl, xz, pkg-config, Clang, Make, Git, and GLib development headers on Debian or Ubuntu. Our 90-second build proves the pinned commit worked in the lab image. It does not make the source toolchain a one-command install on an arbitrary workstation.

Platform details can decide the trial before code does. The Linux binaries require glibc, so Alpine users need a compatible base image or a source build. There is no native Windows binary, though WSL2 can host the Linux build and forward localhost. Android has no native build either. Official amd64 and arm64 images cover common servers, but our 1,211-file checkout did not include a Dockerfile for rebuilding that image.

A 99-item queue includes a Playwright compatibility break

GitHub showed 99 combined open issues and pull requests, including issue 3832 about a Playwright timeout. The report says page.setContent() can stall because document.open() and document.close() leave the page loading without firing the expected events. It includes a Chrome comparison and a traced code path. CDP clients can connect, but successful access to port 9222 does not prove the page lifecycle matches Chrome.

The README lists Fetch, XHR, cookies, proxy support, network interception, forms, and an ad blocker. The project also publishes daily Web Platform Test results. GitHub still showed 70 open issues inside that 99-item combined queue on October 7, 2026. Those numbers belong next to the feature list: this is an actively built browser with real surface area still being corrected, not Chromium behavior in a smaller package.

Eight passing tests support extraction trials, not visual regression

Our 8 passing Cargo tests support a trial for crawlers that want links, rendered DOM content, or Markdown. The fetch command can wait for a selector or script before dumping output, and serve lets several automation clients use the browser remotely. The --obey-robots option is explicit rather than automatic, so operators must choose it. Custom headers, proxies, and request interception cover many collection jobs without adding a separate wrapper.

Visual regression is outside the design. The README calls PNG and PDF dumps text-only and says there is no graphical rendering engine. That rules out judging CSS layout, font rendering, canvas output, and screenshot fidelity from those files. A sensible split is Lightpanda for high-volume extraction and a mainstream browser for the smaller set of pages where pixels or exact browser behavior decide whether the job passed.

Network fingerprints and policy need a trial of their own

Open issue 3804 reports Akamai-protected pages returning Access Denied from datacenter IPs after a TLS ClientHello change in 1.0.0, while some Cloudflare behavior improved. That is one issue report, not our lab result, but it names repeatable targets and compares versions. Teams scraping protected sites should replay their own URL set from their own network before moving traffic. A browser can parse a page only after the edge agrees to serve it.

Lightpanda uses AGPL-3.0, and usage telemetry is enabled by default unless you set LIGHTPANDA_DISABLE_TELEMETRY=true. The repository was pushed on October 7, 2026, the same day several Web API issues and fixes were opened or updated, so maintenance is plainly active. The decision is still workload-specific: the 8 passing tests support a trial, while your target pages, license policy, and need for pixels decide whether it gets the job.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A browser automation framework for Chromium, Firefox, and WebKit with testing tools built in.pick this instead when cross-browser behavior, screenshots, and test-runner integration matter more than a smaller browser runtime.
Puppeteer gh↗A JavaScript library for controlling Chrome and Firefox through CDP or WebDriver BiDi.pick this instead when Chrome fidelity and an established Node client matter more than replacing the browser engine.
BrowserlessA self-hosted browser service that exposes Chrome automation through network APIs.pick this instead when you want a remote browser pool but need sites to see a mainstream Chrome engine.

What people are saying

  1. [hackernews] God of War on PSP, recompiled to WebAssembly and running in the browser
  2. [producthunt] Rill Browser
  3. [hackernews] A browser-native classic Visual Basic VB6 IDE
  4. [github-trending] jo-inc/camofox-browser
  5. [hackernews] Bez: Generating a browser engine from specs and tests
  6. [techcrunch-ai] Shopify opens checkout to browser-based AI agents

Sources

  1. Lightpanda Browser repository
  2. Lightpanda README
  3. Lightpanda nightly release
  4. Playwright setContent compatibility issue
  5. Akamai TLS fingerprint issue
  6. Lightpanda AGPL-3.0 license

More automation reviews

supersidian · genspark-claw · orc-claude-plugin · tiktok-views-bot · Ydisks-Xianyu-Helper · jev-gui-delegate · the whole board →