
Quick Start
Install and run your first browser test in 30 seconds:Use remote URLs only (Vercel previews, e2b.dev tunnels, staging). Cannot access localhost—see why.
Why Morph Browser?
Built specifically for testing AI-generated code changes:- 10x cheaper than Claude Sonnet (3.00 per 1M input tokens)
- 250% faster inference (200 tok/s vs 60 tok/s)
- Live session streaming - Watch tests execute in real-time
- Rich debugging - URLs, actions, errors auto-captured
- Agent self-assessment - Real success detection, not just completion
Model comparison
Model comparison
Per 1M tokens. Morph models are optimized for browser automation and testing.
Common Patterns
Basic Testing
Test any web flow with natural language:Watch Tests Live
Get live URL immediately, watch execution in real-time:Test Responsive Layouts
Use built-in tools to test different screen sizes:Site Authentication
Test sites that require login with theauth parameter:
x_user, x_pass) in the task. Real values are injected when filling forms.
Per-domain credentials
Per-domain credentials
Scope credentials to specific domains:
Browser Profiles (Persistent Logins)
Profiles let you sign in once (manually) and reuse that authenticated state across test runs. Profiles are scoped to a repo.List available repos
Create a profile (returns a live URL)
Use a profile in browser tasks
Update a profile (add more logins)
List and delete profiles
Debug with Recordings
Enable video and logs for failed tests:CI/CD Integration
Track tests with reference IDs:Live Sessions
Stream browser execution in real-time at 25 fps. Perfect for debugging, monitoring, or human-in-the-loop workflows.Basic Live Streaming
Embed in Dashboard
Built-in Tools
The agent automatically uses tools when needed based on your task description.Responsive Testing
Test layouts at different screen sizes—just mention dimensions in your task:- Desktop: 1920x1080, 1440x900, 1280x720
- Tablet: 1024x768 (iPad), 768x1024 (iPad Portrait)
- Mobile: 375x667 (iPhone SE), 414x896 (iPhone 11), 390x844 (iPhone 12/13)
More tools coming: file uploads, API interactions, human-in-the-loop. All tools are globally available.
Recordings
EnablerecordVideo: true to capture full session details:
- Video file (MP4/WebM)
- Interactive DOM replay (rrweb)
- Network logs (all requests/responses)
- Console logs (JS output)
- Screenshots (per step)
Get Animated WebP
Convert recordings to animated WebP for embedding in PRs or dashboards:maxSizeMb is set, the output is guaranteed to stay under that size. For long recordings with tight budgets, the video is automatically sped up to fit.
Cached in S3—subsequent calls return instantly.
Get Errors with Screenshots
Choosing a Model
Specify which model to use for browser automation with themodel parameter:
Available Models
morph-computer-use-v1 is the default and recommended for most use cases. Use gemini-3-flash-preview if you prefer Google’s Gemini model (requires GOOGLE_API_KEY on the server).API Reference
execute()
Synchronous execution—waits for completion (~30-60s).createTask()
Async execution—returns immediately with live URL (~2s).Writing Good Tasks
Be specific—the agent performs better with clear instructions. ✅ Good (specific):- “Navigate to pricing and verify all three tiers display”
- “Add item to cart, go to checkout, verify subtotal matches”
- “Test login with test@example.com / password123”
- “test the app”
- “check if everything works”
- “make sure there are no bugs”
- 5-10 steps: Simple navigation and verification
- 10-15 steps: Form submissions, multi-step flows
- 15-30 steps: Complex journeys (checkout, onboarding)
Remote URLs Only
The browser runs on our infrastructure—it cannot access localhost. ✅ Use these:https://3000-abc.e2b.dev(e2b tunnel)https://preview-abc.vercel.app(Vercel preview)https://staging.myapp.com(staging environment)
localhost:3000127.0.0.1192.168.x.xor any local IPs
Python SDK
Morph is OpenAI-compatible. Use with browser-use Python SDK:Setting Up Test Accounts
Use a separate development environment for browser automation testing. This lets you freely disable 2FA, bot protection, and other security features without affecting production.
- Disable 2FA/MFA on test accounts
- Turn off bot protection and CAPTCHA
- Skip email verification
- Add preview URL wildcards to allowed origins (e.g.,
https://*.vercel.app)
Quick Setup by Provider
Clerk
Clerk
- Create a Development instance in Clerk Dashboard
- Create test user:
Dashboard → Users → Create user - Disable bot protection:
Configure → Attack Protection → Bot Protection - Add allowed origins:
Configure → Paths→ addhttps://*.vercel.app - Use development keys in preview environment:
Auth0
Auth0
- Create a Development tenant in Auth0
- Create test user:
User Management → Users → Create User - Disable MFA:
Security → Multi-factor Auth→ disable or add rule to skip for test emails - Add allowed origins:
Applications → Settings → Allowed Web Origins - Use development tenant in preview:
Supabase
Supabase
- Create a separate Supabase project for staging
- Create test user via Dashboard or SQL
- Disable email confirmation:
Authentication → Providers → Email - Disable CAPTCHA:
Authentication → Settings - Add redirect URLs:
Authentication → URL Configuration→ addhttps://*.vercel.app/**
Firebase
Firebase
- Create a separate Firebase project for development
- Create test user and mark email as verified
- Add authorized domains:
Authentication → Settings → Authorized domains - For CI/CD, consider using Firebase Auth Emulator
Vercel Environment Variables
Configure different auth credentials per environment:FAQ
Why can't I access localhost?
Why can't I access localhost?
execute() vs createTask()—which should I use?
execute() vs createTask()—which should I use?
execute() - Waits for completion (~30-60s)createTask() - Returns immediately (~2s)createTask() to watch from the start or get the live URL for monitoring/debugging.How do I debug failed tests?
How do I debug failed tests?
Every task returns rich debugging data automatically:You get: agent self-assessment, all URLs visited, every action taken, per-step errors, and optional video/logs.
What counts as a step?
What counts as a step?
Each browser action = 1 step:
- Click → 1 step
- Fill form → 1 step
- Navigate → 1 step
- Wait → 1 step
- 5-10 steps: Simple tasks
- 10-15 steps: Forms, multi-step
- 15-30 steps: Complex flows
maxSteps or simplify the task.Can I get structured output?
Can I get structured output?
Yes—use Zod schemas with
createTask():What's in recordings?
What's in recordings?
Enable
recordVideo: true to get:- Video (MP4/WebM) - Visual playback
- rrweb replay - Interactive DOM timeline
- Network logs - All HTTP requests
- Console logs - JS console output
- Screenshots - Per step
How do live sessions work?
How do live sessions work?
WebRTC streaming at 25 fps. Use cases:Monitoring:Human takeover:Debugging:Compatibility: Chrome 90+, Firefox 90+, Safari 14.1+
Is Morph OpenAI-compatible?
Is Morph OpenAI-compatible?
Yes—works with any OpenAI SDK:Works with: browser-use, Browserbase, Browserless, Steel, and more.
How do I track sessions?
How do I track sessions?
Link tests to your systems with reference IDs:All fields optional. Filter by these IDs in the dashboard.
How do I test authenticated pages?
How do I test authenticated pages?
Use the Reference credentials in your task as
auth parameter with username/password or cookies:x_user and x_pass.Agent can't sign into my app (Clerk, Auth0, etc.)
Agent can't sign into my app (Clerk, Auth0, etc.)
Third-party auth providers like Clerk, Auth0, and Supabase Auth often block requests from unfamiliar origins or automated browsers.Solutions:
-
Use cookie-based auth (recommended):
Export cookies from your browser’s DevTools after logging in manually.
-
Add preview URL to your auth provider’s allowed origins:
- Clerk: Dashboard → API Keys → Allowed origins → Add your preview URL
- Auth0: Applications → Settings → Allowed Origins → Add preview URL
- Supabase: Authentication → URL Configuration → Add preview URL
https://your-preview-abc.vercel.appto allowed origins.
Need Help?
- OpenAI Config:
base_url: https://api.morphllm.com/v1•model: morph-computer-use-v1 - Agent Tools: See tool integration guide
- Support: Questions? Reach out in our Discord or email support@morphllm.com