Back to list
Mic92

browser-cli

by Mic92

A collection of CLI tools and skills designed to be useful for LLM agents.

5🍴 0📅 Jan 24, 2026

SKILL.md


name: browser-cli description: Control Firefox browser from the command line. Use for web automation, scraping, testing, or any browser interaction tasks.

Usage

# List managed tabs
browser-cli --list

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

# Execute in a specific tab
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())

browser-cli <<'EOF'
await click(1)                    // Click element [1]
await click(1, {double: true})    // Double click
await type(2, "user@example.com") // 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
browser-cli <<'EOF'
await click("#submit-button")
await click("Sign In", "text")
EOF

Page Inspection

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

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

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

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
browser-cli <<'EOF'
await tab("https://google.com")
snap()
EOF
# Output shows [12] combobox "Suche"

browser-cli <<'EOF'
await type(12, "hello world")
diff()
EOF
# Shows: Added (autocomplete options), Changed (input value)

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

browser-cli <<'EOF'
await type(1, "user@test.com")
await type(2, "secret123")
await click(3)
diff()
EOF

# Wait for dynamic content
browser-cli <<'EOF'
await click(5)
await wait("text", "Success")
snap()
EOF

See README.md for installation, architecture, and full API reference.

Score

Total Score

55/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon