# Browse

> Read and interact with Chrome browser tabs using DOM-based reading (not screenshots). Opens URLs, reads page content via accessibility tree and text extraction, finds elements, fills forms, and executes JavaScript. Use whenever you need to view or interact with a web page.

- Skill: `ankit4479/browse` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ankit4479/browse`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ankit4479/browse/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: ankit4479 (https://skillmd.com/u/ankit4479)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ankit4479/browse

---


# Browse

Read and interact with Chrome browser pages using DOM-based tools.

## Workflow

### 1. Get tab context

Always start by calling `mcp__claude-in-chrome__tabs_context_mcp` to see existing browser tabs.

### 2. Open a page

- **New tab**: `mcp__claude-in-chrome__tabs_create_mcp` with the target URL
- **Existing tab**: `mcp__claude-in-chrome__navigate` to change the URL of a known tab

If the user provided a URL argument, open it now.

### 3. Read page content

- **Primary**: `mcp__claude-in-chrome__read_page` -- returns the accessibility tree of DOM elements (structured, interactive elements visible)
- **Text extraction**: `mcp__claude-in-chrome__get_page_text` -- returns extracted text content, prioritizes article/main content

Use `read_page` first. Fall back to `get_page_text` if you need cleaner prose (e.g., reading an article or documentation page).

### 4. Find and interact with elements

- **Find elements**: `mcp__claude-in-chrome__find` -- use natural language queries to locate elements (e.g., "login button", "email input field")
- **Fill forms**: `mcp__claude-in-chrome__form_input` -- use element reference IDs returned by `find` to fill inputs, click buttons, select options
- **Run JavaScript**: `mcp__claude-in-chrome__javascript_tool` -- execute custom DOM queries or page manipulation when the other tools are insufficient

### 5. Debug

- **Console logs**: `mcp__claude-in-chrome__read_console_messages` -- read browser console output (use `pattern` parameter to filter)
- **Network requests**: `mcp__claude-in-chrome__read_network_requests` -- inspect network traffic for API calls, errors, etc.

### 6. Record interactions (optional)

Use `mcp__claude-in-chrome__gif_creator` to record multi-step browser interactions as a GIF for the user to review.

## Critical Rules

1. **NEVER use `mcp__claude-in-chrome__computer` for reading pages.** Always use `read_page` and `get_page_text` for DOM-based content extraction. The `computer` tool uses screenshots which are slower, less structured, and more token-expensive.

2. **Never trigger JavaScript alerts, confirms, or prompts.** These browser dialogs block all further browser events and prevent the extension from receiving commands. Use `console.log` + `read_console_messages` for debugging instead.

3. **Bail out after 2-3 failures.** If browser tools fail or return errors after 2-3 attempts, stop and ask the user for guidance. Do not loop or retry indefinitely. Explain what you tried and what went wrong.

4. **Never reuse tab IDs from a previous session.** Always call `tabs_context_mcp` to get fresh tab IDs if there's any doubt.

