Simple capture
Open a URL in visible Chromium and save the rendered page to a file.
rel https://example.com > example.htmlREL is a native macOS browser with fully isolated and configurable Chromium sessions for use with agents, scripts or scheduled tasks. It can be a useful alternative to existing Browser Use environments that are restrictive. Every tab is an isolated browser session with its own proxy, profile, cache, and filtering. The browser footprint is fully customizable; not through JavaScript, the DevTools Protocol, or detectable page modifications, but through Chromium itself.

Each REL tab is a complete, persistent browser environment with its own storage, private cache, and network route. Start from a profile, then customize the session without affecting any other tab. Control that same visible browser from Chat, MCP, the bundled CLI, RPC v1, or the typed Rust client.
Each tab keeps its own cookies, site data, service workers, private cache, storage, and network route. Sessions stay open until you delete them, with no fixed count.
Run ordered click, wait, and link actions through the CLI, MCP, RPC v1, or Rust SDK. REL resolves the live page and dispatches native Chromium input, never injected JavaScript.
Save a proxy, AdBlock, image rules, and optional imported browser data as a template for new sessions. Existing sessions stay unchanged.
Pause stops the active load and blocks new network requests for that tab. Play reconnects it and reloads the page.
Route each tab directly or through its own authenticated proxy. When proxy bandwidth is metered, pair it with Bandwidth Saver or AdBlock to reduce traffic from heavy images, ads, and trackers.
The built-in BandwidthSaver profile turns on AdBlock and blocks images larger than 10 kB. Set it as the default for new tabs to reduce data use on metered proxies.
Allow all images, block them, or set a size limit. Use Bandwidth Saver’s 10 kB image limit to avoid downloading large images over metered proxies.
Block ads and trackers with EasyList, EasyPrivacy, Brave Specific, and Brave Unbreak. When a proxy charges by bandwidth, blocked requests also reduce metered data use.
Reuse eligible public assets across sessions on the same network route without sharing cookies, site storage, or private cache. This avoids repeated downloads over a metered proxy.
Keep Chromium's native identity or set a consistent app-wide user agent, platform, locale, timezone, seed, and network profile.
Open Ghostty from any tab with REL_SESSION_ID and REL_SESSION_URL ready for the bundled CLI.
Follow the REL window or pin exact desktop and mobile viewport sizes. Presets stay stable in visible and background tabs.
Run a prompt on chosen days and times. REL creates a fresh session from the selected Profile and uses your default AI model.
Connect OpenAI, Anthropic, Gemini, Ollama, or an OpenAI-compatible endpoint, then choose the default model for Chat and scheduled tasks.
For a single capture, pass REL a URL and redirect the rendered page wherever you need it. Page data goes to standard output; progress stays on standard error, so shell pipelines work without extra parsing.
Create a session for multi-step work. Later CLI calls select the newest session automatically, so you can navigate it, run ordered actions, and capture the result from the same visible tab.
Open a URL in visible Chromium and save the rendered page to a file.
rel https://example.com > example.htmlCreate a persistent session, then let each command automatically target it.
rel session create --name Research
rel navigate https://rel.me
rel perform '[{"action":"wait-for","selector":"body"}]'
rel capture > rel.htmlStart from the terminal, connect an agent, crawl with Python, or build directly on REL's local API.
Capture and automate from the terminal.
Run restartable crawls in a real browser.
Keep familiar Playwright-shaped scraping code.
Give AI agents REL’s visible browser.
Control REL through its local HTTP API.
Build typed integrations in Rust.
Use semantic Markdown for focused reading and research. For interaction, request a semantic, hybrid, or visual observation with typed element refs, viewport geometry, and an optional synchronized image. Take a standalone screenshot when only the rendered pixels matter.
Observation refs are bounded to the stored page state that created them. REL validates the observation, document sequence, and target before every action, then returns a fresh observation. Rendered HTML remains available as a saved file resource for capture and diagnostics.
| Representation | What the model receives | Best for |
|---|---|---|
HTMLRendered HTML | Rendered markup saved and returned as an MCP file resource. | Markup inspection and diagnostics. |
MDSemantic Markdown | Query-directed sections and links without action references or pixels. | Research, excerpts, and broad reading. |
SEMSemantic observation | Compact content, element roles and states, bounds, viewport geometry, and typed references. | Reading, extraction, and low-cost interaction. |
SEM + PNGHybrid observation | A semantic observation plus a synchronized current-viewport image. | Reference-based interaction with visual grounding. |
PNGVisual observation | Minimal page semantics plus a synchronized current-viewport image. | Canvas, charts, maps, and spatial inspection. |
PNG / JPEG / WEBPStandalone screenshot | A viewport or full-page image returned inline or saved as a file resource. | Pixel inspection and saved visual evidence. |
Leave your email for release updates. To download the current beta, enter the password below.
Get a note when REL is ready for broader access.
Enter the beta download password to unlock the macOS DMG.