Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
manaflow-ai avatar

Cmux Browser

  • 5.9k installs
  • 25.6k repo stars
  • Updated August 5, 2026
  • manaflow-ai/cmux

cmux-browser automates cmux webview browsers via CLI: open, snapshot refs, interact, wait, and extract data.

About

The cmux-browser skill automates browser tasks inside cmux webviews using the cmux CLI. Core workflow opens or targets a browser surface, verifies navigation with get url, snapshots with --interactive for element refs, acts via click fill type select press, waits for load or selectors, and re-snapshots after DOM changes. Surface targeting uses short refs like surface:N with optional workspace and window routing. Wait patterns cover selector, text, url-contains, load-state complete, and JavaScript function predicates similar to agent-browser. Form submit, input clear, and stable agent loop templates document navigate verify wait snapshot action cycles. References cover commands, snapshot ref lifecycle, authentication with state save load, session management, and proxy behavior in WKWebView. Limits note CDP-only features like viewport emulation, network mocking, and trace recording return not_supported; use supported high-level commands instead. Troubleshooting recovers js_error on snapshot via get text body or get html body fallbacks.

  • Stable loop: open, get url, wait load complete, snapshot --interactive, act, re-snapshot.
  • Surface refs surface:N with workspace and window targeting via cmux identify.
  • Wait supports selector, text, url-contains, load-state, and JS function predicates.
  • Authentication reference covers login OAuth 2FA and state save load patterns.
  • WKWebView limits: no CDP viewport mock or trace; use click fill press scroll wait snapshot.

Cmux Browser by the numbers

  • 5,883 all-time installs (skills.sh)
  • +369 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #59 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

cmux-browser capabilities & compatibility

Capabilities
browser surface open and targeting · interactive snapshot with element refs · click fill type select press actions · multi pattern wait commands · authentication state save and load patterns
Works with
chrome
Use cases
web scraping · testing · orchestration
From the docs

What cmux-browser says it does

Use this skill for browser tasks inside cmux webviews.
SKILL.md
navigate -> verify -> wait -> snapshot -> action -> snapshot
SKILL.md
npx skills add https://github.com/manaflow-ai/cmux --skill cmux-browser

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs5.9k
repo stars25.6k
Security audit2 / 3 scanners passed
Last updatedAugust 5, 2026
Repositorymanaflow-ai/cmux

How do I automate browser tasks in cmux with stable refs, waits, and form interaction?

Automate cmux browser surfaces: open pages, snapshot interactive refs, fill forms, wait for state, and extract data.

Who is it for?

Developers using cmux who need agent-guided browser automation inside webview surfaces.

Skip if: Skip when you need full Playwright CDP features like network mocking or trace recording in cmux.

When should I use this skill?

User needs cmux browser open, snapshot, fill, click, wait, or authenticated session automation.

What you get

Completed browser flows with verified URLs, fresh interactive snapshots, and extracted page data.

  • Browser interaction traces
  • Extracted page text or HTML
  • Completed form or navigation flows

By the numbers

  • Ref-based snapshot action loop
  • 5 wait pattern types
  • WKWebView CDP features not supported

Files

SKILL.mdMarkdownGitHub ↗

Browser Automation with cmux

Use this skill for browser tasks inside cmux webviews.

Core Workflow

1. Open or target a browser surface. 2. Verify navigation with get url before waiting or snapshotting. 3. Snapshot (--interactive) to get fresh element refs. 4. Act with refs (click, fill, type, select, press). 5. Wait for state changes. 6. Re-snapshot after DOM/navigation changes.

cmux --json browser open https://example.com
# use returned surface ref, for example: surface:7

cmux browser surface:7 get url
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
cmux browser surface:7 snapshot --interactive
cmux browser surface:7 fill e1 "hello"
cmux --json browser surface:7 click e2 --snapshot-after
cmux browser surface:7 snapshot --interactive

Surface Targeting

# identify current context
cmux identify --json

# open routed to a specific topology target
cmux browser open https://example.com --workspace workspace:2 --window window:1 --json

Notes:

  • CLI output defaults to short refs (surface:N, pane:N, workspace:N, window:N).
  • UUIDs are still accepted on input; only request UUID output when needed (--id-format uuids|both).
  • Keep using one surface:N per task unless you intentionally switch.

Wait Support

cmux supports wait patterns similar to agent-browser:

cmux browser <surface> wait --selector "#ready" --timeout-ms 10000
cmux browser <surface> wait --text "Success" --timeout-ms 10000
cmux browser <surface> wait --url-contains "/dashboard" --timeout-ms 10000
cmux browser <surface> wait --load-state complete --timeout-ms 15000
cmux browser <surface> wait --function "document.readyState === 'complete'" --timeout-ms 10000

Common Flows

Form Submit

cmux --json browser open https://example.com/signup
cmux browser surface:7 get url
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
cmux browser surface:7 snapshot --interactive
cmux browser surface:7 fill e1 "Jane Doe"
cmux browser surface:7 fill e2 "jane@example.com"
cmux --json browser surface:7 click e3 --snapshot-after
cmux browser surface:7 wait --url-contains "/welcome" --timeout-ms 15000
cmux browser surface:7 snapshot --interactive

Clear an Input

cmux browser surface:7 fill e11 "" --snapshot-after --json
cmux browser surface:7 get value e11 --json

Stable Agent Loop (Recommended)

# navigate -> verify -> wait -> snapshot -> action -> snapshot
cmux browser surface:7 get url
cmux browser surface:7 wait --load-state complete --timeout-ms 15000
cmux browser surface:7 snapshot --interactive
cmux --json browser surface:7 click e5 --snapshot-after
cmux browser surface:7 snapshot --interactive

If get url is empty or about:blank, navigate first instead of waiting on load state.

Deep-Dive References

ReferenceWhen to Use
references/commands.mdFull browser command mapping and quick syntax
references/snapshot-refs.mdRef lifecycle and stale-ref troubleshooting
references/authentication.mdLogin/OAuth/2FA patterns and state save/load
references/authentication.md#saving-authentication-stateSave authenticated state right after login
references/session-management.mdMulti-surface isolation and state persistence patterns
references/video-recording.mdCurrent recording status and practical alternatives
references/proxy-support.mdProxy behavior in WKWebView and workarounds

Ready-to-Use Templates

TemplateDescription
templates/form-automation.shSnapshot/ref form fill loop
templates/authenticated-session.shLogin once, save/load state
templates/capture-workflow.shNavigate + capture snapshots/screenshots

Limits (WKWebView)

These commands currently return not_supported because they rely on Chrome/CDP-only APIs not exposed by WKWebView:

  • viewport emulation
  • offline emulation
  • trace/screencast recording
  • network route interception/mocking
  • low-level raw input injection

Use supported high-level commands (click, fill, press, scroll, wait, snapshot) instead.

Troubleshooting

js_error on snapshot --interactive or eval

Some complex pages can reject or break the JavaScript used for rich snapshots and ad-hoc evaluation.

Recovery steps:

cmux browser surface:7 get url
cmux browser surface:7 get text body
cmux browser surface:7 get html body
  • Use get url first so you know whether the page actually navigated.
  • Fall back to get text body or get html body when snapshot --interactive or eval returns js_error.
  • If the page is still failing, navigate to a simpler intermediate page, then retry the task from there.

Related skills

How it compares

cmux-browser automates cmux WKWebView surfaces, not full Playwright CDP browser control.

FAQ

Who is cmux-browser for?

Developers automating cmux webview browsers through the cmux CLI with ref-based interaction.

When should I use cmux-browser?

When opening sites, filling forms, waiting for navigation, or extracting data from cmux browser surfaces.

Is cmux-browser safe to install?

Review the Security Audits panel; authentication flows may handle session state files.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.