The local automation stack for teams who move fast.
Doppelganger keeps tasks and outputs local while giving you the power of a visual builder with block-based actions, optional JavaScript, and a secure API.
Build automation tasks locally, step by step.
A block-based editor, multiple run modes, and exportable task definitions you can reuse.
Block-Based Builder
Create tasks by stacking action blocks inside a visual editor.
Modes: Scrape, Agent, Headful
Choose the right execution mode per task from the dashboard.
Action Blocks
Click, type, hover, wait, scroll, press, and run JavaScript.
JavaScript Blocks
Add custom extraction and page logic where you need it.
JSON Export
Copy task definitions from the editor for reuse.
Secure API Access
Trigger and manage tasks through a secure API.
Launch the dashboard locally and build your first task.
Run the Docker container, open the dashboard, and start assembling blocks.
Start the container and open the dashboard.
Visit `http://localhost:11345` after the container is running.
Add action blocks to create a task.
Click, type, wait, and run JavaScript blocks as needed.
Run the task and inspect the output.
Use the task output to verify extractions or custom logic.
Automation you can actually ship to production.
From monitoring pages to QA checks, every flow runs on your hardware and can be accessed via the secure API.
Price Monitoring
Track public pricing pages and collect the latest values.
Lead Enrichment
Collect public signals and structure them for your own records.
Compliance Capture
Capture page states and store them locally for review.
QA Regression
Run scripted QA flows across environments and compare outputs.
Ops Backoffice
Automate repetitive admin flows with local tasks.
Security Testing
Simulate real flows in a controlled, local environment.
Choose the execution mode per task.
Scrape, Agent, and Headful modes are available from the task editor and the secure API.
Scrape
Fast extraction mode for straightforward data pulls.
Agent
Multi-step flows with block sequencing and variables.
Headful
Run with a visible browser for step-by-step checks.
Secure API access to run and manage tasks.
Trigger tasks, monitor runs, and fetch results from a secure API alongside the dashboard.
Trigger Runs
Start tasks programmatically through the secure API.
Check Status
Read run progress and statuses without leaving your stack.
Fetch Results
Pull structured outputs directly from the API.
Build tasks with clear, reusable actions.
Available blocks cover core browser interactions, custom JavaScript, and secure API-triggered tasks.
Click
Interact with buttons, links, and controls.
Type
Fill inputs with scripted values.
Hover
Trigger menus or tooltip states.
Wait
Pause to allow content to load.
Scroll
Move through long pages or lazy content.
Press
Send keypress sequences.
JavaScript
Run custom DOM logic or extraction.
Reuse tasks with JSON exports.
Copy task definitions from the editor, extend them with JavaScript, and access them via the secure API.
JSON Export
Copy the task definition for reuse or sharing.
JavaScript Blocks
Add custom extraction or page logic inside your task.
Run everything locally from the UI.
Open the dashboard after starting the Docker container, or use the secure API.
Task Editor
Create tasks, set modes, and arrange blocks visually.
Run Output
Inspect task results after each run.
Local Storage
Store task data inside your own Docker volumes.