A real browser for AI agents.

REL is a native Mac browser built for AI agents, scripts, and scheduled tasks. Work in visible Chromium tabs, route sessions through different proxies, and automate with native browser input without page injection or DevTools Protocol.

REL 0.1.20 · Apple silicon · macOS 15 or later

REL on macOS with an isolated Hacker News session and an agent summarizing comments from the top three stories in Chat
01 Real browser tabs
Keep agent work visible, organized, and ready to take over.
02 Human + agent control
Watch, guide, or continue the work in the same Chromium window.
03 Native browser actions
Click, type, and navigate without injected scripts.
04 Six ways to see a page
Give models clean text, semantic structure, pixels, or both.

The browser layer, handled.

Open a tab, pick a profile or proxy, and start. Control the same visible browser from Chat, MCP, Python, the CLI, or REL’s local API.

  1. One browser session per tab

    Keep separate browser work visible, organized, and easy to revisit.

  2. Native browser actions

    Click, type, wait, and navigate through Chromium itself, from the CLI, MCP, RPC, or Rust.

  3. Reusable profiles

    Save your proxy, filtering, and browser setup once. Launch new sessions from it anytime.

  4. Pause / Play

    Cut a tab’s network access instantly, then reconnect when you’re ready.

  5. Per-session proxies

    Give each session its own route, including authenticated proxies.

  6. Bandwidth controls

    Block ads, trackers, or heavy images to spend less on metered proxies.

  7. Custom browser identity

    Shape Chromium’s identity for the work at hand without patching the page.

  8. A terminal in every session

    Open a ready-to-use terminal from any tab and start scripting.

  9. Exact viewports

    Pin desktop or mobile sizes for repeatable captures and tests.

  10. Scheduled agent tasks

    Choose a profile and model, set a schedule, and let REL run the job.

Automate from the CLI.

Capture a URL with one command, or keep a session open for multi-step work. Page data goes to standard output, so REL fits cleanly into scripts and pipelines.

01

Simple capture

Open a URL in Chromium and save the rendered page.

rel https://example.com > example.html
02

Navigate, act, and capture

Keep one session open across a sequence of commands.

rel session create --name Research
rel navigate https://rel.me
rel perform '[{"action":"wait-for","selector":"body"}]'
rel capture > rel.html

Use REL your way.

Start from the terminal, connect an agent, crawl with Python, or build directly on REL's local API.

  • CLI

    Capture pages and automate browser work from the terminal.

  • Python crawler

    Run long crawls in a real browser.

  • Playwright for Python

    Bring your Playwright-shaped scraping code.

  • MCP server

    Give agents a visible browser they can control.

  • RPC v1

    Connect any local tool over HTTP.

  • Rust SDK

    Build fast, typed integrations.

Choose what MCP returns.

Choose the view that fits the job: Markdown for reading, semantic elements for action, or synchronized pixels for visual pages. Every action stays grounded in the page state the model saw.

RepresentationWhat the model receivesBest for
HTMLRendered HTMLLive rendered markup as a downloadable file.Capture and debugging.
MDSemantic MarkdownFocused page text and links.Research and reading.
SEMSemantic observationRoles, states, bounds, and typed element references.Fast, grounded interaction.
SEM + PNGHybrid observationA semantic view with its matching viewport image.Interaction with visual context.
PNGVisual observationA viewport image with lightweight page context.Canvas, charts, and maps.
PNG / JPEG / WEBPStandalone screenshotA viewport or full-page image, inline or saved.Visual checks and evidence.