Browser
Mona can browse the web using Playwright. This lets her read pages, fill forms, click buttons, and extract data.
Prerequisites
Playwright is installed automatically with the standard installer. If you need to reinstall:
cd ~/.monoclaw/monoclaw-runtime
npm install
npx playwright install chromium
Basic browsing
Search the web for "Hong Kong stock market news today"
Mona will:
- Search using your configured search provider
- Open relevant pages
- Extract and summarize the content
Direct page access
Read https://www.hkex.com.hk and tell me the latest announcements
Form filling
Go to https://example.com/login, fill in username "alex" and password "secret", and click login
Warning
Never ask Mona to log into sensitive accounts in shared or gateway sessions.
Data extraction
Scrape https://example.com/products and extract all product names and prices into a table
Screenshots
Take a screenshot of https://example.com and save it to screenshots/homepage.png
Browser configuration
# ~/.monoclaw/config.yaml
browser:
headless: true # Run without visible browser window
timeout: 30000 # Page load timeout (ms)
user_agent: "MonaBot/1.0"
proxy: "http://proxy:8080" # Optional proxy
JavaScript execution
Mona can execute JavaScript on pages:
On https://example.com, run this JavaScript: document.title
Limits
- Max page size — 1MB of extracted text
- Max pages per turn — 5
- No downloads — File downloads are blocked for security
- No uploads — File uploads are blocked
Security
- Browser runs in the same sandbox as terminal commands
- Pages are opened in ephemeral contexts (no cookies persist)
- JavaScript execution is sandboxed
- Sensitive domains can be blocked:
browser:
blocked_domains:
- "bank.com"
- "internal.company.net"
Troubleshooting
| Problem | Fix |
|---|---|
| "Browser not available" | Run npx playwright install chromium |
| Page won't load | Check URL and network connectivity |
| Content missing | Some sites block scrapers; try a different source |
| Slow responses | Reduce browser.timeout or use simpler pages |