mathews-tom/armory/lightpanda-browser

Claude Code and agent skill by mathews-tom/armory

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Lightweight headless browser automation via Lightpanda and agent-browser CLI: 9x lower memory, 11x faster than Chromium, for scraping and DOM interaction without rendering. Triggers on: "lightpanda", "lightweight browser", "fast headless browser", "headless scraping", "low memory browser", "browser without rendering".

Install

npx vskill@latest install mathews-tom/armory/lightpanda-browser

SKILL.md

Lightpanda Browser — Fast Headless Automation

Headless browser automation using Lightpanda as the backend engine, controlled through the agent-browser CLI via CDP (Chrome DevTools Protocol).

When to use this over agent-browser:

Use LightpandaUse agent-browser (Chromium)
Web scraping / data extractionScreenshots, PDFs, visual testing
Form automation / submissionVideo recording / visual debugging
API response inspectionCSS layout verification
DOM traversal / content parsingMobile device emulation (iOS)
CI environments with limited RAMFull browser extension support
High-volume parallel sessionsSites requiring full rendering

Triggers:

  • "lightpanda", "lightweight browser", "fast headless"
  • "scrape with low memory", "headless scraping"
  • "browser without rendering", "DOM-only browser"
  • "fast browser automation", "efficient scraping"
  • "is lightpanda faster than chromium?", "which headless browser uses less memory?"
  • "how do I scrape without chromium?", "can I run a browser with less RAM?"
  • Any browser task where visual output is not needed

Prerequisites

Install Lightpanda
bash
# macOS (Apple Silicon)
curl -fsSL https://github.com/nichochar/install-lightpanda/raw/main/install.sh | bash
# Or build from source
git clone https://github.com/lightpanda-io/browser.git
cd browser && zig build -Doptimize=ReleaseSafe
Install agent-browser (if not already present)
bash
brew install agent-browser
Verify installation
bash
lightpanda --version
agent-browser --version

Core Workflow

Every session follows this lifecycle:

1. Start Lightpanda daemon (CDP server)
2. Connect agent-browser via --cdp
3. Navigate, snapshot, interact
4. Stop daemon when done
Step 1 — Start Lightpanda
bash
# Start Lightpanda CDP server on port 9222 (background)
lightpanda serve --host 127.0.0.1 --port 9222 &
LIGHTPANDA_PID=$!
# Wait for CDP to be ready
sleep 1
Step 2 — Connect and Automate
bash
# All agent-browser commands work via --cdp flag
agent-browser --cdp 9222 open https://example.com
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 fill @e1 "search query"
agent-browser --cdp 9222 click @e2
agent-browser --cdp 9222 snapshot -i # Re-snapshot after navigation
Step 3 — Cleanup
bash
agent-browser --cdp 9222 close
kill $LIGHTPANDA_PID 2>/dev/null

Supported Commands

All commands below are invoked as agent-browser --cdp <port> <command>.

Navigation
bash
agent-browser --cdp 9222 open <url>
agent-browser --cdp 9222 back
agent-browser --cdp 9222 forward
agent-browser --cdp 9222 reload
agent-browser --cdp 9222 close
Snapshot (DOM Analysis)
bash
agent-browser --cdp 9222 snapshot -i # Interactive elements with refs
agent-browser --cdp 9222 snapshot -i -C # Include cursor-interactive elements
agent-browser --cdp 9222 snapshot -s "#main" # Scope to CSS selector
agent-browser --cdp 9222 snapshot -i --json # JSON output for parsing
Interaction (use @refs from snapshot)
bash
agent-browser --cdp 9222 click @e1
agent-browser --cdp 9222 dblclick @e1
agent-browser --cdp 9222 fill @e2 "text"
agent-browser --cdp 9222 type @e2 "text"
agent-browser --cdp 9222 press Enter
agent-browser --cdp 9222 select @e1 "option"
agent-browser --cdp 9222 check @e1
agent-browser --cdp 9222 hover @e1
agent-browser --cdp 9222 scroll down 500
agent-browser --cdp 9222 drag @e1 @e2
agent-browser --cdp 9222 upload @e1 file.pdf
Get Information
bash
agent-browser --cdp 9222 get text @e1 # Element text
agent-browser --cdp 9222 get html @e1 # innerHTML
agent-browser --cdp 9222 get value @e1 # Input value
agent-browser --cdp 9222 get attr @e1 href # Attribute
agent-browser --cdp 9222 get title # Page title
agent-browser --cdp 9222 get url # Current URL
agent-browser --cdp 9222 get count ".item" # Count elements
Wait
bash
agent-browser --cdp 9222 wait @e1 # Wait for element
agent-browser --cdp 9222 wait 2000 # Wait milliseconds
agent-browser --cdp 9222 wait --text "Success" # Wait for text
agent-browser --cdp 9222 wait --url "**/dashboard" # Wait for URL
agent-browser --cdp 9222 wait --load networkidle # Wait for network idle
agent-browser --cdp 9222 wait --fn "window.ready" # Wait for JS condition
Cookies and Storage
bash
agent-browser --cdp 9222 cookies
agent-browser --cdp 9222 cookies set name value
agent-browser --cdp 9222 cookies clear
agent-browser --cdp 9222 storage local
agent-browser --cdp 9222 storage local set key value
Network Interception
bash
agent-browser --cdp 9222 network route <url> # Intercept
agent-browser --cdp 9222 network route <url> --abort # Block
agent-browser --cdp 9222 network route <url> --body '{}' # Mock response
agent-browser --cdp 9222 network requests # View tracked
agent-browser --cdp 9222 network requests --filter api # Filter
JavaScript Execution
bash
agent-browser --cdp 9222 eval "document.title"
agent-browser --cdp 9222 eval -b "<base64>"
cat script.js | agent-browser --cdp 9222 eval --stdin
Semantic Locators
bash
agent-browser --cdp 9222 find text "Sign In" click
agent-browser --cdp 9222 find label "Email" fill "user@test.com"
agent-browser --cdp 9222 find role button click --name "Submit"
agent-browser --cdp 9222 find testid "submit-btn" click
Tabs
bash
agent-browser --cdp 9222 tab # List tabs
agent-browser --cdp 9222 tab new [url] # New tab
agent-browser --cdp 9222 tab 2 # Switch tab
agent-browser --cdp 9222 tab close # Close tab
Frames
bash
agent-browser --cdp 9222 frame "#iframe" # Enter iframe
agent-browser --cdp 9222 frame main # Back to main
State Management
bash
agent-browser --cdp 9222 state save auth.json # Save session state
agent-browser --cdp 9222 state load auth.json # Restore session state

Unsupported Commands

Lightpanda does not have a rendering engine. These commands will fail or produce empty output:

CommandReasonAlternative
screenshotNo visual renderingUse get text / get html for content
pdfNo CSS layout engineUse get html and convert externally
record start/stopNo visual output to recordUse network request logs
highlightNo visual renderingUse snapshot -i to identify elements
set deviceNo viewport emulationSet user-agent via set headers
set mediaNo CSS media query supportN/A
get stylesNo computed stylesParse raw HTML/CSS
get boxNo layout computationN/A
is visibleNo visibility computationCheck DOM presence instead

Common Patterns

High-Volume Scraping
bash
# Start Lightpanda — uses ~60MB vs ~550MB for Chromium
lightpanda serve --host 127.0.0.1 --port 9222 &
LIGHTPANDA_PID=$!
sleep 1
URLS=("https://site.com/page/1" "https://site.com/page/2" "https://site.com/page/3")
for url in "${URLS[@]}"; do
agent-browser --cdp 9222 open "$url"
agent-browser --cdp 9222 wait --load networkidle
agent-browser --cdp 9222 get text body >> output.txt
echo "---" >> output.txt
done
kill $LIGHTPANDA_PID 2>/dev/null
Form Automation
bash
lightpanda serve --host 127.0.0.1 --port 9222 &
LIGHTPANDA_PID=$!
sleep 1
agent-browser --cdp 9222 open https://example.com/form
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 fill @e1 "Jane Doe"
agent-browser --cdp 9222 fill @e2 "jane@example.com"
agent-browser --cdp 9222 select @e3 "California"
agent-browser --cdp 9222 check @e4
agent-browser --cdp 9222 click @e5
agent-browser --cdp 9222 wait --load networkidle
agent-browser --cdp 9222 snapshot -i # Verify result
kill $LIGHTPANDA_PID 2>/dev/null
Authenticated Session
bash
lightpanda serve --host 127.0.0.1 --port 9222 &
LIGHTPANDA_PID=$!
sleep 1
# Login and save state
agent-browser --cdp 9222 open https://app.example.com/login
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 fill @e1 "$USERNAME"
agent-browser --cdp 9222 fill @e2 "$PASSWORD"
agent-browser --cdp 9222 click @e3
agent-browser --cdp 9222 wait --url "**/dashboard"
agent-browser --cdp 9222 state save auth.json
# Reuse state later (new session)
agent-browser --cdp 9222 state load auth.json
agent-browser --cdp 9222 open https://app.example.com/dashboard
agent-browser --cdp 9222 snapshot -i
kill $LIGHTPANDA_PID 2>/dev/null
API Response Inspection
bash
lightpanda serve --host 127.0.0.1 --port 9222 &
LIGHTPANDA_PID=$!
sleep 1
# Intercept API calls
agent-browser --cdp 9222 open https://app.example.com
agent-browser --cdp 9222 network requests --filter "/api/"
# Or mock API responses for testing
agent-browser --cdp 9222 network route "**/api/users" --body '{"users": []}'
agent-browser --cdp 9222 open https://app.example.com/users
agent-browser --cdp 9222 snapshot -i
kill $LIGHTPANDA_PID 2>/dev/null
Parallel Sessions on Different Ports
bash
# Launch multiple Lightpanda instances for true parallelism
lightpanda serve --host 127.0.0.1 --port 9222 &
PID1=$!
lightpanda serve --host 127.0.0.1 --port 9223 &
PID2=$!
sleep 1
agent-browser --cdp 9222 open https://site-a.com &
agent-browser --cdp 9223 open https://site-b.com &
wait
agent-browser --cdp 9222 get text body > site-a.txt
agent-browser --cdp 9223 get text body > site-b.txt
kill $PID1 $PID2 2>/dev/null

Environment Variables

bash
LIGHTPANDA_HOST="127.0.0.1" # Bind address (default: 127.0.0.1)
LIGHTPANDA_PORT="9222" # CDP port (default: 9222)

Troubleshooting

Lightpanda won't start
bash
# Check if port is in use
lsof -i :9222
# Kill existing process
kill $(lsof -t -i :9222) 2>/dev/null
CDP connection refused
bash
# Verify Lightpanda is listening
curl -s http://127.0.0.1:9222/json/version
# Expected: JSON with browser info
Command fails with "not supported"

Lightpanda is in beta. If a CDP method is not yet implemented:

  1. Check the Lightpanda status page for supported APIs
  2. Fall back to agent-browser (Chromium) for that specific operation
  3. File an issue at https://github.com/lightpanda-io/browser/issues
JavaScript execution errors

Lightpanda uses V8 but not all Web APIs are implemented. If eval fails:

  1. Check if the API is listed in Lightpanda's supported features
  2. Use simpler DOM operations (get text, get html) instead of complex JS

Performance Benchmarks

Reference numbers for choosing between Lightpanda and Chromium. Measured on typical scraping workloads.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
251
Repository forks
37
7-day trend score
28

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mathews-tom/armory/lightpanda-browser/badge)](https://verified-skill.com/skills/mathews-tom/armory/lightpanda-browser)

Something wrong with this skill or its page? Tell us.