smithery.ai

browser-cli

Control Firefox browser from the command line. Use for web automation, scraping, testing, or any browser interaction tasks.

First seen Apr 12, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,189 B
  • docs SUMMARY.md 142 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Usage

# List managed tabs
nix run github:lassulus/superconfig#skills.browser-cli -- --list

# Open a page and get snapshot
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await tab("https://example.com")
snap()
EOF

# Execute in a specific tab
nix run github:lassulus/superconfig#skills.browser-cli -- abc123 <<'EOF'
snap()
EOF

JavaScript API

All functions are available in the execution context. Actions return simple confirmations; use snap() to get page state.

Element Interaction (use refs from snap())

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await click(1)                    // Click element [1]
await click(1, {double: true})    // Double click
await type(2, "[email protected]") // Type into element [2]
await type(2, "new", {clear: true}) // Clear first, then type
await hover(3)                    // Hover over element [3]
await drag(4, 5)                  // Drag from [4] to [5]
await select(6, "option-value")   // Select dropdown option
key("Enter")                      // Press key
key("Tab")
EOF

# Can still use CSS selectors when needed
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await click("#submit-button")
await click("Sign In", "text")
EOF

Page Inspection

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
snap()                    // Get page snapshot with refs
snap({forms: true})       // Only form elements
snap({links: true})       // Only links
snap({buttons: true})     // Only buttons
snap({text: "login"})     // Elements containing "login"
diff()                    // Show changes since last snap
logs()                    // Get console logs
EOF

Waiting

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await wait(1000)              // Wait 1 second
await wait("idle")            // Wait for DOM to stabilize
await wait("text", "Success") // Wait for text to appear
await wait("gone", "Loading") // Wait for text to disappear
EOF

Downloads

nix run github:lassulus/superconfig#skills.browser-cli -- TABID <<'EOF'
const url = document.querySelector('a[href*="pdf"]').href
await download(url, "invoice.pdf")  // Downloads to ~/Downloads/invoice.pdf
EOF

Screenshots & Tabs

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await shot()                      // Screenshot, returns data URL
await shot("/tmp/page.png")       // Screenshot to file
await tab()                       // New tab
await tab("https://example.com")  // New tab with URL
await tabs()                      // List all tabs
EOF

Snapshot Output Format

Page: Example Site
URL: https://example.com

[1] heading "Welcome"
[2] input[email] "Email" [required]
[3] input[password] "Password" [required]
[4] checkbox "Remember me"
[5] button "Sign In"
[6] link "Forgot password?"
  • [N] - Reference number for use with click(), type(), etc.
  • Role and accessible name shown
  • Attributes in brackets: [disabled], [checked], [required], etc.

Examples

# Search on Google
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await tab("https://google.com")
snap()
EOF
# Output shows [12] combobox "Suche"

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await type(12, "hello world")
diff()
EOF
# Shows: Added (autocomplete options), Changed (input value)

# Form filling
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await tab("https://example.com/login")
snap()
EOF
# Output: [1] input "Email", [2] input "Password", [3] button "Sign In"

nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await type(1, "[email protected]")
await type(2, "secret123")
await click(3)
diff()
EOF

# Wait for dynamic content
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await click(5)
await wait("text", "Success")
snap()
EOF

See [README.md](README.md) for installation, architecture, and full API reference.