rayobrowse AGENTS.md

Project instructions for rayobrowse, a Chromium-based browser that runs in Docker and exposes a connection endpoint for automation tools such as Playwright or Puppeteer.

In plain words
What is it for?
Use them when setting up, testing, or automating rayobrowse locally or in the cloud, including Docker startup, health checks, and browser connections.
Why use it?
They explain the required setup and the correct connection flow, avoiding common mistakes such as treating the HTTP endpoint as a direct WebSocket connection.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/rayobyte-data/rayobrowse/agents-md
Clone the repo
git clone --depth 1 https://github.com/rayobyte-data/rayobrowse

Made for: Codex, OpenCode.

Per session 1,011 This file is loaded in full into every session.
When invoked 1,011 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01011 $0.01011
Opus 5 $0.00505 $0.00505
Sonnet 5 $0.00202 $0.00202
Haiku 4.5 $0.00101 $0.00101

Measured 2d ago against content hash 13f200860ff7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

rayobrowse AGENTS.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl http://localhost:9222/health
AGENTS.md · 130 lines

How it starts

The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

Setup, verification, and usage notes for AI agents and automated pipelines working with the public rayobrowse repository.

What This Project Is

rayobrowse is a Chromium-based stealth browser that runs inside Docker. It exposes an HTTP daemon on port 9222. Your automation code calls GET /connect, receives a CDP WebSocket URL as plain text, and passes that URL to Playwright, Puppeteer, Selenium, or any other CDP client.

The local and cloud usage model is intentionally the same. For local work, use http://localhost:9222. For rayobrowse Cloud, use https://cloud.rayobrowse.com with an API key.

Prerequisites

  • Docker with Compose v2 (docker compose)
  • Python 3.10+ for Python examples
  • Node.js 18+ for Node examples
  • About 2 GB free RAM for a basic local run

Local Setup

cp .env.example .env
docker compose up -d
curl http://localhost:9222/health

By using rayobrowse, you agree to the licenses in LICENSE and BROWSER_BINARY_LICENSE.md.

Primary Usage Pattern

Do not connect Playwright or Puppeteer directly to /connect. /connect is an HTTP endpoint, not a CDP WebSocket endpoint.

Correct flow:

  1. Call GET http://localhost:9222/connect.
  2. Read the CDP WebSocket URL from the response body.
  3. Connect your CDP client to that returned URL.
  4. Let the browser close when the CDP session closes, unless the task requires explicit lifecycle control.

Python example:

import httpx
from playwright.sync_api import sync_playwright

resp = httpx.get(
    "http://localhost:9222/connect",
    params={"os": "windows", "headless": "false", "vnc": "true"},
    timeout=120,
)
resp.raise_for_status()

cdp_url = resp.text.strip()
vnc_url = resp.headers.get("x-vnc-url") or "http://localhost:6080/vnc.html"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(cdp_url)
    context = browser.contexts[0] if browser.contexts else browser.new_context()
    page = context.pages[0] if context.pages else context.new_page()
    page.goto("https://example.com")
    print(page.title())
    print(f"To view your browser in VNC go to: {vnc_url}")
    browser.close()

Read the full file on GitHub · 130 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 130 lines · 1,011 tokens per session scan A 13f200860ff7

Subscribe to this mod's changes

rayobrowse AGENTS.md is an instructions file published in the GitHub repository rayobyte-data/rayobrowse (203 stars, last pushed 1mo ago), licensed MIT. It adds 1,011 tokens to every session, about $0.0051 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.