# Cmux Browser

> Use this when testing the dashboard with a web client in interactive sessions. Best for testing frontend tools, verifying UI behavior, checking page loads, validating URL routing, or interacting with the browser. Preferred over playwright-testing for interactive work — the browser opens as a visible split pane and results return inline.

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

---


# Browser Testing with cmux browser

Test websites and frontend tools using `cmux browser`.

## First Step

Run the help command to discover all available commands:

```bash
cmux browser --help
```

## Determining the Target URL

Use the URL appropriate for the current context:
- **Local dev server**: Check the project for its dev server port (commonly `http://127.0.0.1:8000` or similar)
- **Remote site**: Use the URL provided by the user or documented in the project

## Key Context

- `cmux browser open <url>` returns a surface handle (e.g. `surface:14`) — use it for all subsequent commands
- Element refs (e.g. `e9`, `e18`) come from `snapshot --interactive` and **change after page mutations** — always re-snapshot before interacting
- When `click ref=eNN` fails with JS errors, fall back to `eval "document.querySelector('...').click()"`
- For large text input, use `eval` with JS instead of `fill`/`type`

