--- title: "Lightpanda 1.0 — the Browser Built for AI to Use the Internet" date: 2026-10-07 time: 23:15 model: admin category: reviews summary: Lightpanda dropped 1.0 after ditching Chrome for something 16x lighter. A browser designed not for people but for AI agents, with its own Zig engine — install, model wiring, scan modes, and MCP integration, from a practitioner's angle. tags: Lightpanda,AI browser,automation,Zig,web scraping,MCP --- # Lightpanda 1.0 — the Browser Built for AI to Use the Internet On October 2, 2026, Lightpanda shipped **1.0** after two years in beta. The project started from a simple idea: if AI is going to use the internet, it doesn't need a browser built for people — it needs a browser built for AI. Chrome draws screens for humans. It renders photos, CSS, animations, video, all of it. But when you ask an AI to read a webpage, does it need any of that? What an AI needs is the **structure and the meaning** — where the button is, where a link goes when you click it, what belongs in the form field. Lightpanda **didn't build a graphics rendering pipeline at all.** Here's what that got them. | | Chrome (headless) | Lightpanda | |---|---|---| | Memory (100 pages) | ~2 GB | **~123 MB** (16x less) | | Runtime (100 pages) | ~46 sec | **~5 sec** (9x faster) | | Engine | Chromium (C++) | **Zig proprietary engine** | | WPT passing | 2.18M subtests | **1.74M** (~80%) | *Based on Lightpanda's public benchmark (933 web pages). Results won't be identical across all sites.* --- ## What separates it from a plain crawler A crawler that just fetches HTML can't handle today's web. Sites that only show content once JavaScript runs, logins, clicking buttons, infinite scroll, Shadow DOM, WebAssembly — until now you handled all that with **Chrome plus Playwright or Puppeteer**. And Chrome is heavy. Lightpanda is **a browser that runs JavaScript but throws away the part that draws the screen.** It's written in Zig from scratch. It is not a Chromium fork. Modern web features it supports: - HTML, DOM, JavaScript (ES2024 level) - Fetch, XHR, WebSocket - Cookies, IndexedDB, Shadow DOM - WebAssembly - CDP (Chrome DevTools Protocol) plus **WebDriver Classic and WebDriver BiDi** (added in 1.0) --- ## Install and download ### Python (simplest) ```bash pip install lightpanda ``` Requires Python 3.10+. The binary is bundled, so it runs right away with no separate install. ### Node.js ```bash npm install lightpanda # or npx lightpanda ``` ### Direct binary download (for CI/servers) Per-platform binaries on GitHub Releases: - `lightpanda-linux-x64` - `lightpanda-linux-arm64` - `lightpanda-macos-x64` - `lightpanda-macos-arm64` ```bash # e.g. Linux x64 curl -L -o lightpanda https://github.com/lightpanda-io/lightpanda/releases/latest/download/lightpanda-linux-x64 chmod +x lightpanda ./lightpanda --help ``` ### Docker ```bash docker pull lightpanda/lightpanda:latest docker run --rm lightpanda/lightpanda --help ``` --- ## Setup and wiring up a model (AI agent integration) Lightpanda's focus is on making it possible for an AI agent to use the browser **as a tool.** ### 1. MCP server built in (easiest integration) ```bash pip install lightpanda # or npm install lightpanda ``` Then use it straight from SKILL.md-compatible agents like Claude Code, Cursor, or Codex: ```json // example in mcp.json or .cursor/mcp.json { "mcpServers": { "lightpanda": { "command": "lightpanda", "args": ["mcp"] } } } ``` Tell the agent "go to this site and find me the latest info," and it browses directly through Lightpanda. ### 2. Playwright / Puppeteer / Selenium (reuse existing code) It supports WebDriver BiDi, Classic WebDriver, and CDP, so existing automation scripts run almost unchanged. ```python # Playwright example from playwright.async_api import async_playwright async def main(): async with async_playwright() as p: browser = await p.chromium.connect_over_cdp("http://localhost:9222") # or WebDriver BiDi browser = await p.chromium.connect("http://localhost:4444") page = await browser.new_page() await page.goto("https://example.com") # ... # run Lightpanda (separate terminal) # lightpanda --cdp --port 9222 # or WebDriver # lightpanda --webdriver --port 4444 ``` ### 3. Direct Python use (async API) ```python import asyncio from lightpanda import Lightpanda async def main(): async with Lightpanda() as browser: page = await browser.new_page() await page.goto("https://example.com") # HTML html = await page.content() # Markdown md = await page.markdown() # Semantic Tree (most useful for AI) tree = await page.semantic_tree() print(tree) asyncio.run(main()) ``` ### 4. Direct CLI use ```bash # get page HTML lightpanda https://example.com --format html # as Markdown lightpanda https://example.com --format markdown # Semantic Tree (structured meaning) lightpanda https://example.com --format semantic-tree # wait for JavaScript to finish lightpanda https://spa-site.com --wait-network-idle # pass auth cookies lightpanda https://app.example.com --cookie "session=abc123" # add headers lightpanda https://api.example.com --header "Authorization: Bearer token" ``` --- ## Scan / task modes You can dial depth up or down depending on the goal (not official terms, but useful for automation): | Mode | Use | Traits | |---|---|---| | **Fast exploration** | Link collection, sitemap building | Minimal JS execution, short network waits | | **Standard** | Login plus data extraction, form submission | Full JS execution, waits for network idle | | **Deep exploration** | Full SPA crawling, infinite scroll | Long timeouts, waits for all resources | Controlled through CLI options like `--wait-network-idle`, `--timeout`, `--max-depth`. --- ## Security: CORS on by default (key 1.0 change) If AI agents are going to roam the internet, **browser security is agent security.** From 1.0, **CORS (Cross-Origin Resource Sharing) checks are on by default.** That blocks a malicious page from reaching internal services or other domains at the browser level. Turn it off only when you need to (internal testing, etc.): ```bash lightpanda https://internal.site --disable-cors ``` --- ## Output formats — what do you hand the AI? | Format | Use | |---|---| | **HTML** | Save or archive as-is | | **Markdown** | Easy for humans to read, drops straight into LLM context | | **Semantic Tree** | **For AI agents** — pulls out only the meaning: "button: login," "input: email," "link: next" | Semantic Tree example: ```json { "type": "page", "children": [ {"type": "heading", "level": 1, "text": "Login"}, {"type": "form", "children": [ {"type": "input", "name": "email", "placeholder": "Email"}, {"type": "input", "name": "password", "type": "password"}, {"type": "button", "text": "Login", "action": "submit"} ]} ] } ``` For an AI this is far more efficient than a rendered screen. --- ## Cost comparison (rough) | Approach | Cost | |---|---| | **Local (Lightpanda + local LLM)** | Hardware only, $0 API cost | | **Lightpanda + OpenRouter / local model** | Token cost only (a few dollars a day) | | **RunPod GPU rental (8x A100)** | ~$15/hr, no data-leak concern | | **Old way: Chrome headless server farm** | 16x the memory, 9x the CPU cost | --- ## Limits (still not a Chrome replacement) - No CSS rendering — no design verification, no visual regression testing - No video or audio playback - No extension ecosystem - 80% of WPT — possible behavior differences on complex web apps - **If a human is looking at it, always use Chrome** --- ## So what Lightpanda actually means For 30 years the internet was built **for people.** Browsers evolved toward showing graphics prettier and prettier. But now **AI has started using the internet too.** AI doesn't need a screen. It needs structure, meaning, interaction, speed, and low cost. So browsers are beginning to split into **one for people and one for AI.** Lightpanda 1.0 is the **first stable release of the infrastructure for the AI side.** This isn't finished. **It's just getting started.** --- ## References - GitHub: https://github.com/lightpanda-io/lightpanda - Docs: https://docs.lightpanda.io - 1.0 announcement: https://github.com/lightpanda-io/lightpanda/releases/tag/v1.0.0 - PyPI: https://pypi.org/project/lightpanda/ - npm: https://www.npmjs.com/package/lightpanda *This post was put together from Lightpanda's 1.0 announcement materials, official docs, the GitHub repository, and public benchmarks.*