ワンクリックで
browser-cli
Control Firefox browser from the command line. Use for web automation, scraping, testing, or any browser interaction tasks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Control Firefox browser from the command line. Use for web automation, scraping, testing, or any browser interaction tasks.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Get the user's attention by speaking a short message via TTS and posting a desktop notification. Use when a long-running task finishes, when you need input to continue, or when something needs human attention.
Run long-running commands in a tmux session and capture their output. Use when you need to start a build/test/server that takes minutes, run multiple commands in parallel, or interact with a process across tool calls.
Search the web using Kagi and fetch page contents. Use when you need current information, documentation, or to look up APIs/libraries.
Reverse engineer and debug binaries using Ghidra (static analysis, decompilation) and GDB (live debugging of running processes). Use when the user wants to analyze binaries, decompile functions, debug running processes, set breakpoints, or inspect memory.
Manage HedgeDoc pads on pad.lassul.us — create, read, edit, and get info on collaborative markdown documents. Use when the user wants to work with pads, notes, or shared documents.
| name | browser-cli |
| description | Control Firefox browser from the command line. Use for web automation, scraping, testing, or any browser interaction tasks. |
# 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
All functions are available in the execution context. Actions return simple
confirmations; use snap() to get page state.
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, "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
nix run github:lassulus/superconfig#skills.browser-cli -- <<'EOF'
await click("#submit-button")
await click("Sign In", "text")
EOF
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
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
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
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
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.[disabled], [checked], [required], etc.# 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, "user@test.com")
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 for installation, architecture, and full API reference.