Skip to content

REL documentation

Keep persistent Chromium sessions on your Mac and access them from Codex, Claude Code, MCP, the CLI, a local API, or the Rust and Ruby clients.

The bundled rel CLI is the quickest way to capture a rendered page and the best place to learn REL’s model.

Choose an existing Session in the intended Project and use its returned ID:

Terminal window
rel https://rel.me --session-id Session123

REL keeps Chromium inside the installed macOS app. Like curl, the CLI writes page data to standard output and events to standard error, so either stream can be piped or redirected independently.

To continue only when page content is ready, navigate with a CSS selector:

Terminal window
rel navigate https://example.com --session-id Session123 --wait-for '#content' --timeout 60
rel capture --session-id Session123 > page.html

REL waits for #content to appear on the same page and session, with one 60-second timeout for navigation and readiness. Intermediate HTTP error pages can redirect while it waits, and REL checks the final HTTP status before returning. API and typed-client navigation requests use wait_for for the same capability.

Read the CLI guide →

Give each browser Session a separate proxy assignment. Add an Oxylabs, Bright Data, Decodo, IPRoyal, or custom HTTP proxy in REL, then select its alias in the Session or use it from Codex and the CLI. Explicitly grouped Sessions share routing; using the same Profile alone does not share browser state. Proxy use requires REL Pro.

Configure proxies →

Configure the macOS app

Create reusable browser Profiles, configure AI models, and run prompts automatically on repeating schedules.

Open the app guide →

Automate pages with actions

Use one JSON contract for clicks, waits, text entry, named keys, and selections from every REL client.

Open the Actions reference →

Diagnose navigation failures

Inspect a running operation without blocking it, follow bounded session traces, and export redacted diagnostics before retrying or replacing a Session.

Open the diagnostics guide →

Understand Session scope

Select a Project and Session explicitly and distinguish independent browser state from deliberate sharing.

Open the Session guide →

Connect an MCP client

Launch the bundled stdio adapter for focused status, capture, page automation, session-list, and proxy-list tools.

Open the MCP guide →

Control the browser with RPC v1

Attach pages, perform actions, manage persistent sessions, and stream captures over REL’s loopback-only HTTP API.

Open the RPC reference →

Use the typed Rust client

Build directly on the same rel-client crate used by the bundled CLI, with typed requests, responses, errors, and capture events.

Open the SDK guide →

Use Ruby

Add the dependency-free rel-client gem for structured responses, errors, persistent-session operations, and streaming captures.

Open the Ruby SDK guide →

The installed REL app owns Chromium and supervises its bundled local agent. CLI, SDK, and MCP adapter calls connect to that agent; the agent routes browser work back into the visible app.

CLI and plugin startup discover REL in /Applications, ~/Applications, or through macOS application registration. Set REL_APP_PATH to choose a custom app bundle.