Automate any browser workflow. Record once, run on autopilot forever.
Features • Quick Start • Architecture • Configuration •
Automated is an open-source, AI-powered browser automation tool. Record a workflow once by interacting with your browser, and let the AI replay, adapt, and execute it on autopilot - triggered manually, via email, on a schedule, or through the API.
Video.mp4
- Workflow Recording — Record browser interactions naturally; the system learns each step
- AI-Powered Execution — Intelligent replay using LLMs that adapt to page changes
- Visual Workflow Editor — Drag-and-drop editor with conditionals, loops, and data extraction
- Multiple Triggers — Run workflows manually, on a schedule, via email, or through the API
- Live Monitoring — Watch workflow execution in real-time through a browser session viewer
- Data Extraction — Extract structured data from any website using JSON schemas
- Conditionals & Loops — Build complex workflows with branching logic and iteration
- Desktop App — Native Electron app for macOS, Windows, and Linux
- Self-Hostable — Run the entire stack with a single
docker compose up
- Docker and Docker Compose
- An OpenRouter API key (for AI-powered execution)
git clone https://github.com/r-muresan/automated
cd automatedCreate a .env file in the project root:
# Required — LLM provider for AI execution
OPENROUTER_API_KEY=your_openrouter_api_key
# Optional — Cloud browser automation (if not using local browser)
HYPERBROWSER_API_KEY=your_hyperbrowser_api_key
# Optional — Email triggers via Resend
RESEND_API_KEY=your_resend_api_key
# Optional — Authentication via Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secretTip: API keys can also be configured through the Settings panel in the web UI after startup.
docker compose upThat's it. Open http://localhost:3000 to access the dashboard.
| Service | URL | Description |
|---|---|---|
| Frontend | http://localhost:3000 | Web dashboard |
| Backend | http://localhost:8080 | REST API |
- Click "+ New Workflow" in the dashboard
- A browser session will launch — interact with it naturally
- Once done, save the recording
- Hit Run to replay the workflow with AI
Automated is structured as an Nx monorepo with four main applications:
apps/
├── frontend/ Next.js web dashboard (React 19, Chakra UI, React Flow)
├── backend/ NestJS REST API (Prisma ORM, SQLite / PostgreSQL)
├── cua-agent/ AI orchestration engine (OpenRouter, Stagehand, Playwright)
└── desktop/ Electron wrapper for native desktop usage
| Layer | Technology |
|---|---|
| Frontend | Next.js, React 19, Chakra UI, React Flow |
| Backend | NestJS, Prisma, SQLite / PostgreSQL |
| AI Engine | OpenRouter (LLM), Stagehand, Playwright |
| Desktop | Electron, electron-builder |
| Monorepo | Nx |
The default docker-compose.yml runs two services:
services:
backend: # NestJS API — port 8080, SQLite database
frontend: # Next.js app — port 3000, depends on backendData is persisted via a ./data volume mount. To switch to PostgreSQL, update DATABASE_URL in your .env.
| Variable | Required | Description |
|---|---|---|
OPENROUTER_API_KEY |
Yes | LLM API key for AI workflow execution |
DATABASE_URL |
No | Database connection (default: local SQLite) |
HYPERBROWSER_API_KEY |
No | Hyperbrowser API key |
RESEND_API_KEY |
No | Email service for email-triggered workflows |
# Install dependencies
npm install
# Start all services in dev mode
npm run start
# Or start individually
npm run start:backend
npm run start:frontend