Automation Wizard is a browser extension designed to record, edit, and replay user interactions on the web. It features a robust locator system that ensures reliable element selection even when page structures change.
This project is a monorepo managed with pnpm workspaces.
-
apps/extension
The main browser extension application built with WXT and React. It acts as the consumer of the core logic and UI components. -
packages/core
Contains the core business logic of the automation engine, including:- Selectors: Robust element locator generation and resolution strategies.
- Steps: Execution logic for various actions (click, type, extract, etc.).
- Storage: Interfaces and adapters for storing flow data.
- Types: Shared TypeScript definitions.
-
packages/ui
A shared UI library containing reusable React components used by the extension (e.g., Flow controls, Step items).
- Clone the repository.
- Install dependencies for all packages from the root directory:
pnpm installTo build all packages in the correct order (core -> ui -> extension):
pnpm -r build-
Navigate to the extension directory:
cd apps/extension -
Start the development server (auto-reloads on changes):
pnpm dev
-
Open Chrome and navigate to
chrome://extensions. -
Enable Developer Mode.
-
Click Load unpacked and select the
.output/chrome-mv3directory generated inapps/extension.
Changes in packages/core or packages/ui will be automatically reflected in the extension if you are running pnpm dev in apps/extension, thanks to Vite's HMR and pnpm workspace symlinks.
To strictly type-check or build a specific package:
pnpm --filter @automation-wizard/core build
pnpm --filter @automation-wizard/ui build- Record & Replay: Capture user interactions like clicks, typing, and navigation, then replay them automatically.
- Robust Locators: Automatically generates multiple fallback selectors (ID, TestID, Text, Attributes) to make automation scripts resilient to UI changes.
- Visual Editor: Edit steps, reorder them, or modify their properties directly in the side panel.
- Export: (Planned) Export flows to other formats.
To run tests for the extension (which also covers core logic integration):
cd apps/extension
pnpm test