Skip to content
Agentmart
Submit a tool

browser_agent

Control a headless Playwright browser to interact with websites and stream results to Twitch.

Skill by bob-ros2

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bob-ros2-browser-agent

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Control a headless Playwright browser to interact with websites and stream results to Twitch.

Use cases: testing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/browser-agent

What's inside

Skill name
browser_agent
Description
Control a headless Playwright browser to interact with websites and stream results to Twitch.
License
Apache-2.0
Instructions
44 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • name: only lowercase letters, digits and single hyphens allowed

Files (3)

  • SKILL.md
  • .ament_ignore · scripts/
  • browser_tool.py · scripts/

SKILL.md (first lines)

# Browser Agent Skill

## Goal
Enable Eva to autonomously browse the internet, interact with web elements, and visually share the results with the audience on the Twitch stream.

## Description
This skill leverages a dedicated ROS 2 node (`browser_daemon_node.py`) running in a Playwright-enabled container. It captures high-resolution screenshots (1280x720) in BGR8 format and publishes them directly to the Nviz streaming pipeline via the `/eva/streamer/browser_image` topic.

## Usage
The skill is executed via the `browser_tool.py` script which handles the ROS 2 message dispatch.

```python
execute_skill_script("browser_agent", "scripts/browser_tool.py", "open --url 'https://www.wikipedia.org'")
execute_skill_script("browser_agent", "scripts/browser_tool.py", "type --selector 'input[name=\"search\"]' --text 'Bob Ros'")
execute_skill_script("browser_agent", "scripts/browser_tool.py", "click --selector 'button#search-button'")
execute_skill_script("browser_agent", "scripts/browser_tool.py", "scroll --direction 'down' --amount 500")
```

## Parameters
| Argument | Type | Description |
|----------|------|-------------|
| `command`| str  | The action to perform: `open`, `click`, `type`, `scroll`, `screenshot` |
| `--url`  | str  | URL to navigate to (required for `open`) |
| `--selector` | str | CSS selector for interaction (required for `click`, `type`) |
| `--text` | str  | Text to input (required for `type`) |
| `--direction`| str | Scroll direction: `up` or `down` (default: `down`) |
| `--amount`| int | Pixels to scroll (default: 500) |

## Requirements
- **Container**: `eva-browser` running the `Dockerfile.browser` image.
- **Network**: Must be part of the `eva-net` bridge with access to `ROS_DOMAIN_ID`.
- **Target Topic**: `/eva/streamer/browser_image` must be active for visual output.

## Technical Details
- **Engine**: Playwright (Headless Chromium).
- **Communication**: ROS 2 `std_msgs/String` for commands, `sensor_msgs/Image` (BGR8) for output.
- **Synchronization**: Uses `rclpy.spin_once` with a buffer to ensure reliable delivery across the Docker bridge.

## Best Practices
- **Wait for Load**: Use the `open` command first and allow a few seconds for the stream to update.
- **Selectors**: Use unique CSS selectors (IDs preferred) for reliable clicking and typing.
- **Resolution**: Viewport is fixed to 1280x720 to match the stream layout.

From bob-ros2/bob_central, Apache-2.0.

More from bob-ros2/bob_central

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Apr 25, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from bob-ros2

Cite this page

browser_agent skill. Agent Mart. https://agentmart.dev/skills/bob-ros2-browser-agent (last updated 2026-10-24)