A browser extension that uses AI to observe and automate repetitive tasks in your browser.
AutomateBoringStuff is a Chrome extension that records your browser actions, sends them to a server for processing, and generates automation scripts that can replay those actions. It's designed to help you automate repetitive web-based tasks with minimal setup.
- Action Recording: Captures clicks, inputs, form submissions, and navigation events
- Visual Tracking: Takes periodic screenshots to understand the visual context of actions
- AI-Powered Script Generation: Processes captured actions to create executable automation scripts
- Script Management: Save, edit, run, and delete your automation scripts
- Deno v1.32.0 or higher (for the server)
- Chrome browser (v88 or higher)
-
Clone this repository or download the source code:
git clone https://github.com/yourusername/AutomateBoringStuff.git -
Open Chrome and navigate to
chrome://extensions/ -
Enable "Developer mode" using the toggle in the top-right corner
-
Click "Load unpacked" and select the
AutomateBoringStuff/extensiondirectory -
The extension should now be installed and visible in your Chrome toolbar
The extension requires a local server to process actions and generate scripts.
-
Install Deno by following the instructions at https://deno.land/#installation
-
Navigate to the server directory:
cd AutomateBoringStuff/server -
Start the server:
deno run --allow-net --allow-read --allow-write --allow-env server.js
By default, the server runs on http://localhost:8000. If you need to change this, you can:
- Set environment variables:
PORT=9000 deno run --allow-net --allow-read --allow-write --allow-env server.js - Update the
SERVER_URLvariable in the extension'sbackground.jsfile to match your server URL
-
Click the AutomateBoringStuff icon in your browser toolbar to open the extension popup
-
Click "Start Recording" to begin capturing your actions
-
Perform the sequence of actions you want to automate
- Browse websites
- Fill out forms
- Click buttons
- Navigate between pages
-
Click "Stop Recording" when you're done
-
Review the generated script and provide a name and description
-
Click "Save Script" to store the automation for future use
-
Run saved scripts from the extension popup by clicking the play button (▶) next to a script
The extension communicates with the local server in the following ways:
-
Screenshot Capture: Periodically sends screenshots and DOM structure to the server during recording
- Endpoint:
POST http://localhost:8000/api/screenshot
- Endpoint:
-
Script Generation: Sends recorded actions to the server for processing
- Endpoint:
POST http://localhost:8000/api/generateScript
- Endpoint:
-
Script Storage: Locally stores generated scripts in the browser's storage
- Extension Not Recording: Make sure the server is running and check the browser console for errors
- Server Connection Issues: Verify that the server URL in
background.jsmatches your server configuration - Scripts Not Running: Check if the website you're automating has strict Content Security Policy (CSP) settings
- Server Won't Start: Make sure Deno is installed and you've included all the necessary permissions flags
-
extension/: The Chrome extension codepopup/: UI for the extension popuputils/: Utility functions for DOM parsing, action tracking, etc.background.js: Background script for managing the extension statecontent.js: Content script injected into web pagesmanifest.json: Extension configuration
-
server/: The local server for processing actionsserver.js: Main server implementation (Deno)config.js: Server configurationdata/: Data storage directory (created at runtime)
- Server URL: Change the
SERVER_URLinbackground.jsto connect to a different server - Screenshot Interval: Modify
SCREENSHOT_INTERVALinbackground.jsto change how often screenshots are taken - Script Generation Delay: Adjust
SCRIPT_GENERATION_DELAYto change how often intermediate scripts are generated
Contributions are welcome! Please feel free to submit a Pull Request.