cmux-browser

Automate the browser inside cmux. Use for cmux browser, browser surface, webview, current workspace browser, snapshot refs, DOM actions, waits, screenshots, cookies, storage, tabs, downloads, console, errors, and browser session state.

By manaflow-ai · 630 installs

npx skills add manaflow-ai/cmux-skills --skill cmux-browser

Source repository · Upstream listing

cmux Browser Use this skill for browser automation inside cmux webview surfaces. It is different from a standalone browser automation tool because every browser surface lives inside a cmux workspace, pane, and surface topology. Default Rule Open and control browser surfaces in the current caller workspace unless the user explicitly names another workspace or window. Before mutating browser state, identify the caller: Use CMUX WORKSPACE ID for new browser splits and CMUX SURFACE ID to understand the terminal that invoked the automation. Do not open a browser in the visually focused workspace if it differs from the caller workspace. Core Workflow Loop: navigate, verify URL, wait, snapshot, act, then re snapshot. Snapshot refs are temporary. Re snapshot after navigation, modal changes, tab changes, or DOM updates. Targeting Most subcommands require a browser surface: Open commands can create or reuse a browser split: Keep one browser surface per task unless the user asks for multiple tabs or pages. Command Groups See [references/commands.md](references/commands.md) for the full command list. Main groups: Navigation and targeting: identify , open , open split , new , navigate , goto , back , forward , reload , url , focus webview , is webview focused . Waiting: wait selector , text , url contains , load state , function . DOM interaction: click , dblclick , hover , focus , check , uncheck , scroll into view , type , fill , press , keydown , keyup , select , scroll . Inspection: snapshot , screenshot , get , is , find , highlight . JavaScript and injection: eval , addinitscript , addscript , addstyle . Frames, dialogs, downloads: frame , dialog , download . State and session: cookies , storage , state . Tabs and diagnostics: tab , console , errors . Environment and lower level APIs: viewport , geolocation , offline , trace , network , screencast , input . Common Patterns Durable Captures Save browser screenshots, traces, downloaded diagnostics, and reusable session state under /cmux assets/<branch /browser/... , not /tmp , before reporting them to the user. If /cmux assets is unavailable because the root volume is read only, use the fallback path and state it. Do not leave final screenshots or session files only in /tmp . Navigate, Wait, Inspect Form Fill Debug Capture Session Save and Restore Remote Workspaces In remote SSH workspaces, browser panes route HTTP and WebSocket traffic through the remote machine. localhost:3000 means the remote host's localhost, and browser storage is isolated per remote workspace context. Rebuild and Reload If browser automation is validating a cmux app/runtime change, first build a tagged app from the active worktree: Never automate against an untagged debug socket for tests or dogfood builds. Rules Scope browser opens and actions to the current caller workspace by default. Pass workspace "${CMUX WORKSPACE ID: }" when creating a browser surface from a cmux terminal. Use returned surface:N refs, and re snapshot after any state changing action. Verify get url before waiting or diagnosing page state. Use snapshot after on mutating actions when you need immediate verification. Prefer get , is , and find for scripts. Use screenshots and snapshots for human review. Do not close, move, or focus browser surfaces outside the caller workspace unless the user names that target. Do not use unsupported standalone browser assumptions. cmux uses WKWebView backed browser surfaces.