โ† Back to Browser & Automation
Browser & Automation by @davisdiehl

riddle

Hosted browser automation API for agents

0
Source Code

Riddle โ€” Hosted Browser for AI Agents

Riddle gives your agent a browser without running Chrome locally. One API call: navigate, click, fill forms, take screenshots, capture network traffic. All execution happens on Riddle's servers โ€” your agent stays lean.

Quick Start: Sign up at riddledc.com/register and get 5 minutes of free browser time โ€” no credit card needed. After that, pricing is $0.50/hour, billed per second. A single screenshot costs roughly $0.004.

Why Use This Instead of Local Chrome

  • No Chromium binary โ€” saves ~1.2 GB RAM and avoids the Lambda/container size headaches
  • No dependency hell โ€” no @sparticuz/chromium, no Puppeteer version conflicts, no ENOENT / spawn failures
  • Full Playwright โ€” not just screenshots. Run real Playwright scripts, multi-step workflows, form fills, authenticated sessions
  • Works everywhere โ€” Lambda, containers, T3 Micro instances, anywhere your agent runs

Install

Step 1: Sign up โ€” Create a free account at riddledc.com/register. No credit card required. You get 5 minutes of browser time free.

Step 2: Get your API key โ€” After signing up, grab your API key from the dashboard.

Step 3: Install and configure the plugin:

# Install the plugin
openclaw plugins install @riddledc/openclaw-riddledc

# Allow the tools
openclaw config set tools.alsoAllow --json '["openclaw-riddledc"]'

# Set your API key
openclaw config set plugins.entries.openclaw-riddledc.config.apiKey "YOUR_RIDDLE_API_KEY"

One gotcha: OpenClaw requires plugins in the plugins.allow list. The CLI doesn't have an append flag, so check your current list and add openclaw-riddledc:

# See what you have
openclaw config get plugins.allow

# Add openclaw-riddledc to the array (or edit ~/.openclaw/openclaw.json directly)
jq '.plugins.allow += ["openclaw-riddledc"]' ~/.openclaw/openclaw.json > tmp && mv tmp ~/.openclaw/openclaw.json

# Restart
openclaw gateway restart

Tools

After install, you have five tools:

riddle_screenshot โ€” Screenshot a URL. Simplest use case.

Take a screenshot of https://example.com

riddle_screenshots โ€” Batch screenshots of multiple URLs in one job.

Screenshot these three pages: https://example.com, https://example.com/about, https://example.com/pricing

riddle_steps โ€” Run a step-by-step workflow (goto, click, fill, screenshot at each step).

Go to https://example.com/login, fill the email field with "[email protected]", fill the password field, click the submit button, then screenshot the result.

riddle_script โ€” Run full Playwright code for complex automation.

Run a Playwright script that navigates to https://example.com, waits for the dashboard to load, extracts all table rows, and screenshots the page.

riddle_run โ€” Low-level API pass-through for custom payloads.

All tools return screenshots saved to ~/.openclaw/workspace/riddle/screenshots/ (not inline base64) with file paths in the response. Add include: ["har"] to also capture full network traffic.

Authenticated Sessions

Need to interact with a page behind login? Pass cookies, localStorage, or custom headers:

Screenshot https://app.example.com/dashboard with these cookies: [session=abc123]

The plugin supports cookies, localStorage entries, and custom HTTP headers as auth parameters.

Trust & Security

This plugin was built with the concerns raised by the Moltbook agent community in mind โ€” specifically the discussion around skill provenance, capability manifests, and runtime boundaries.

What this plugin declares (capability manifest in openclaw.plugin.json):

  • Network: Only talks to api.riddledc.com โ€” hardcoded allowlist enforced at runtime, not just config time
  • Filesystem: Only writes to ~/.openclaw/workspace/riddle/
  • Agent context: Zero access to conversation history, other tools' outputs, or user profile
  • Secrets: Only requires RIDDLE_API_KEY, which is only sent to the declared endpoint

What this means in practice:

  • Even if the config is manipulated, your API key cannot be sent to any non-Riddle domain (hardcoded check runs on every request)
  • The plugin cannot read your conversations, memory, or other plugins' data
  • Screenshots are saved as file references, not inline base64 โ€” prevents context overflow and accidental data leakage in logs

Verify it yourself:

  • Source: github.com/riddledc/integrations
  • npm provenance: npm audit signatures @riddledc/openclaw-riddledc
  • Checksums: CHECKSUMS.txt in the package
  • Full threat model: SECURITY.md in the package

This is a plugin (auditable code), not a skill (prompt text). You can read every line before installing.

Pricing

Riddle uses transparent per-execution pricing. A simple screenshot costs fractions of a cent. See riddledc.com for current pricing.

Get Help

Links