Browser and desktop tools
Let the Rolit agent drive Chrome or your desktop, and understand the safeguards.
Both families are off until you enable them, and both load on demand through tool_search. Enable with /browser on or /computer on, then start a new chat session. Bare /browser or /computer opens a panel with both toggles.
Browser (browser.*)
The agent drives your real Chrome with your existing profile, logins, and tabs. Treat any action on a signed-in page as having real consequences.
Set up Chrome
- Use Chrome 144 or later.
- Open
chrome://inspect/#remote-debuggingand enable remote debugging. - Allow the connection when Chrome prompts.
Rolit attaches to your existing profile and opens its own blank tab. It never creates, copies, or deletes a profile. If setup is needed, an approved control call opens the Remote Debugging page and waits up to 60 seconds for you to enable it.
| Variable | Use |
|---|---|
ROLIT_BROWSER_USER_DATA_DIR | Absolute path to another Chrome user-data directory |
ROLIT_BROWSER_DEBUGGING_PORT | The port Chrome shows, if discovery fails |
Tools
| Tool | What it does | Tier |
|---|---|---|
browser.navigate | Opens a url. Returns final URL, title, and readiness. | Navigation |
browser.click | Clicks by selector or x/y. Checks visibility and that nothing covers the target. | Control |
browser.type | Replaces an input's value; append and pressEnter available. | Control |
browser.hover, browser.scroll, browser.press_key | Pointer, scrolling, and keyboard input. | Control |
browser.form | Selects, checks, appends, clears, or inspects form fields. | Control (inspect: Command) |
browser.upload | Sets files on a file input. Credential paths are refused. | Control |
browser.dialog | Reads, accepts, or dismisses JavaScript dialogs. | Control (read: Command) |
browser.downloads | Captures and tracks downloads into the workspace. | Control |
browser.execute_js | Runs an expression. Result capped at 5,000 characters. Never retried after a lost connection. | Control |
browser.tabs | Lists, opens, selects, or closes tabs (up to 50). Only tabs Rolit owns can be closed. | Control (list: Command) |
browser.get_content | Reads page text and an element inventory. Text defaults to 3,000 characters (max 5,000); elements default to 40 (max 120). | Command |
browser.screenshot | Saves a PNG under .rolit/browser. | Command |
browser.wait_for | Waits for an element, text, URL, form state, or navigation. A timeout returns found: false. | Command |
browser.diagnostics | Console errors, failed requests, and timings; can record a performance trace. | Command |
browser.network | Bounded request summaries with redacted response text. | Command |
browser.frames, browser.metrics, browser.artifacts | Frame list, counters, and saved screenshots and traces (list or delete). | Command |
browser.reset | Disconnects Rolit and releases input. Chrome, tabs, and cookies stay. | Control |
Selectors use CSS. An ambiguous selector fails rather than clicking the wrong element. Screenshots are opt-in per action (screenshot: true).
Approval
Inspection calls are the Command tier. Navigation is allowed in auto and asks otherwise. Anything that changes the page asks in cautious and edits, is allowed in auto interactively, and is denied in plan-only and non-interactive sessions. Subagents can't hold browser navigation or control tools.
While the agent drives a tab
- The tab shows a frame, a "Rolit is controlling the browser" badge with live action status, and click ripples.
- Your own input on that tab is blocked so the page can't shift under the agent.
- Press Esc three times within 1.5 seconds to take the tab back. The lock also lapses about five minutes after the last browser call.
Privacy
Traces can contain page data and URLs. Diagnostics omit request bodies and headers and strip query strings from error URLs. Saved screenshots and traces stay under .rolit/browser until deleted with browser.artifacts.
Desktop (computer.*)
Controls any application on your computer. It is off by default. Screenshots can capture anything visible, so every call goes through your approval mode.
| Tool | What it does |
|---|---|
computer.screenshot | Captures a display (displayId optional) and reports all displays and bounds. |
computer.move | Moves the pointer to x, y. |
computer.click | Clicks at x, y; button and clicks optional. |
computer.drag | Drags between two points. |
computer.scroll | Scrolls at a point; positive is down or right. |
computer.type | Clicks a control, then types up to 20,000 characters. |
computer.key | Clicks a target, then presses a key or shortcut. |
All are the Desktop control tier. After each action Rolit attaches a screenshot for the agent. Coordinates outside connected displays are rejected before any input is sent. Your operating system may ask for Screen Recording and Accessibility permission the first time.
Shift+Tab toggles session-wide Auto, which skips prompts for browser and desktop actions in an interactive session. plan-only, JSON, and piped sessions ignore it.