On this page

Task guides

Use Mearl with EgoLite

Use the independent Ego Provider for Spaces, page operations, human handoff, and device or App emulation through the native Ego channel. No browser extension is required.

Install the independent Provider

Install @mearl/provider-ego 0.1.1+ with Mearl setup. Requires Node.js 22.23.4+, Mearl 3.0.7+ and ego-browser on PATH. Control uses the unified mearl command without an additional CLI or Skill. The package bundles the native page SDK; source builds use the published SDK pinned in the lockfile.

Shell
npx @mearl/setup@latest provider install @mearl/provider-ego
mearl browser_launch --payload '{"provider":"ego","providerOptions":{"name":"My task"}}'

Keep the extension optional

The Provider works without the extension. On macOS, its EgoLite declaration defaults extension Agent access off for that browser profile, while manual debugging panels remain available. Update both the extension and Native Host to versions supporting coordination, then register the Provider again to activate this behavior.

  • You can explicitly enable or disable Agent access in extension settings. This preference stays local to the browser profile and does not sync to other browsers.
  • Provider outages or removal do not automatically re-enable extension Agent access. Access stays closed until the policy handshake completes; an older Native Host must be updated.
  • Coordination uses change notifications without periodic polling. Ego ownership checks run only while host requests are pending; each native page operation still checks control. Other platforms do not automatically identify EgoLite.

Use one Space per task

Launch with providerOptions.name or attach an existing Agent Space with providerOptions.spaceId. Reuse the Provider browserId and tabId. Page mapping is handled by the Provider, without manual extension matching or Mearl --session.

Keep control in Ego

Use mearl browser_control with the full browserId for handoff, resume and finish, without --session. Resume only after the user explicitly returns control. Ego blocks native page operations during takeover. finish keeps no Agent pages by default; keepTabIds accepts numeric IDs from tab_list. browser_release only detaches the Provider and does not finish the Space or clear emulation.

Shell
mearl browser_control --browser '<browserId>' --payload '{"operation":"handoff"}'
mearl browser_control --browser '<browserId>' --payload '{"operation":"resume"}'
mearl browser_control --browser '<browserId>' --payload '{"operation":"finish","keepTabIds":[1,2]}'

Device shells, WebViews and App services

Configure device and App emulation independently through set_device_emulation and set_app_profile. Enable deviceShell to use a device shell and root WebView. The shared native page host supplies installed App protocol and authorization services; real authorization requires user approval, and takeover cancels pending authorization. Retained pages depend on the Provider connection for emulation and host services. Clear emulation before finish when ordinary pages are needed. Extension-specific request/log entry points are not provided.

Open source credits

EgoLite is a separate browser from Citro Labs; its public ego-browser runtime is MIT licensed. The Mearl Provider uses its native automation channel.