Skip to content

Remote browser and terminal

Your agent’s machine is reachable from the dashboard without opening a port. You can watch and control the browser your agent is using, and open a terminal on the agent. Both run over the connection the agent already holds to Alfe, so there’s no inbound access or SSH to set up.

The agent has a Browser tab and a Terminal tab for this.

Runtime Browser Web terminal
OpenClaw With the Headless Browser integration Yes
Claude Code With the Headless Browser integration Yes
Codex With the Headless Browser integration Yes
Other runtimes No The tab says no terminal is available

Install the Headless Browser integration to give an agent one persistent Chrome. The agent drives it with tools, and you can watch it live in the Browser tab. Logins persist in its profile, so a site you sign in to once stays signed in across restarts.

The agent gets these tools:

  • browser_navigate — opens an absolute http or https URL. URLs with embedded credentials are refused.
  • browser_click — clicks an element by CSS selector.
  • browser_type — types text into an element by CSS selector.
  • browser_wait_for — waits for a selector, a URL substring, or a fixed delay.
  • browser_screenshot — captures the current page.
  • browser_evaluate — runs a JavaScript expression in the page and returns the result.
  • request_browser_takeover — asks a person to take over.

When your agent hits something only a person should do, such as a login, a captcha, or a payment, it asks you to step in and tells you exactly what it needs.

  1. You get a card in the conversation and a notification. The session shows Needs you in the agent’s Browser tab, along with what the agent asked for.
  2. Select Take control. If the agent is mid-action, it finishes that step first. If it’s busy, try again in a moment.
  3. Complete the step in the browser. Your mouse and keyboard go straight to the page, and popups such as an OAuth sign-in work as normal.
  4. Select Done, hand back. The agent carries on from there, using the same browser and the same signed-in session.

Only one person controls a session at a time. Anyone else who has it open watches read-only and sees that someone else has control. If nobody hands back in time, the wait ends and the agent is told. The default wait is 10 minutes.

On Claude Code and Codex the agent’s takeover call returns quickly. The agent can keep waiting with browser_takeover_wait, or end its turn, and Alfe sends it a message in the conversation when you hand back.

An agent can only ask for a takeover when it has a live shared browser connected to Alfe. Otherwise the request is refused, the agent is told to ask you directly, and you don’t get a notification for a session nobody could open.

If a session is open and the browser goes away, the Browser tab says the agent doesn’t have a shared browser available right now. Its browser either isn’t connected or isn’t installed. Installing Chrome or restarting the agent brings it back, and Retry connection reconnects.

The Terminal tab opens a shell in the agent’s workspace, and each person gets their own shell. The terminal needs no browser.

Each agent has an Allow the web terminal switch in its Settings tab, on by default. Only a person can change it, not the agent. When it’s off:

  • The Terminal tab is hidden.
  • New terminal sessions are refused.
  • Terminals already open are closed right away.

The browser isn’t affected.

Both surfaces need an organization-level permission. Agent-level grants don’t give access to either one.

Surface Permission Default role
Take control of a browser remote:control Organization admin
Open a web terminal remote:terminal Organization admin

Other members need a role that includes the permission. See Organization.