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, noENOENT/spawnfailures - 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 "test@example.com", 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.txtin the package - Full threat model:
SECURITY.mdin 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
- Docs: riddledc.com
- Security issues: security@riddledc.com
- Plugin source: github.com/riddledc/integrations
Links
- Website: riddledc.com
- Docs: riddledc.com/docs
- Pricing: riddledc.com/pricing
- Dashboard: riddledc.com/dashboard