A quick guide to building your first automation.
Prerequisites:
- Node.js 16+
- pnpm (or npm/yarn)
git clone https://github.com/Dyan-Dev/loopi.git
cd loopi
pnpm installpnpm startThis launches the Electron app with hot reload for development.
Access app preferences via the settings icon (⚙️) in the dashboard header:
Theme Settings:
- Light Mode - Bright interface with dark text
- Dark Mode - Dark interface with light text
- System - Automatically matches your OS preference
Theme preference is saved and applied the next time you open the app.
Download Location:
- Default: Your system's Downloads folder
- Click "Browse" to select a custom download folder
- All automation downloads are saved to this location automatically
- Directory is created if it doesn't exist
Notifications:
- Toggle to enable/disable app notifications
- Preference is saved automatically
All settings are persisted to disk and restored when you restart the application.
pnpm run make # Package for your platform
pnpm run publish # Build and publish (requires config)- Open Loopi
- Click "New Automation"
- Enter name and description
- Click "Create"
- Click "+ Add Step" on the canvas
- Select "Navigate"
- Enter URL:
https://example.com - Click "Add Step"
- Click "+ Add Step"
- Select "Extract"
- Click "Pick Element" to select an element on the page
- Enter "Store As":
result - Click "Add Step"
- Click "+ Add Step"
- Select "Screenshot"
- Click "Add Step"
- Click "Run Automation" button
- Watch it execute in the browser window
- Check the execution log for results
Set a variable:
- Add "Set Variable" step
- Name:
username - Value:
john_doe - Click "Add Step"
Use the variable:
- In any step field, use:
{{username}} - Example in Navigate:
https://example.com/user/{{username}}
Fetch data from API:
- Add "API Call" step
- Method:
GET - URL:
https://api.github.com/users/torvalds - Store As:
userdata - Click "Add Step"
Access API response:
- In Navigate step, use:
https://github.com/{{userdata.login}} - In Type step, use:
{{userdata.name}}
Loop example - extract 5 items:
Step 1: Set Variable
name: index
value: 1
Step 2: Click
selector: .item-{{index}}
Step 3: Extract
selector: .title
storeKey: item_{{index}}
Step 4: Modify Variable
name: index
operation: increment
value: 1
Step 5: Condition
if index ≤ 5: go back to Step 2
else: go to Step 6
Step 6: Screenshot
Extract and decide:
-
Add "Extract With Logic" step
-
Selector:
.price -
Condition:
greaterThan -
Expected Value:
100 -
Click "Add Step"
-
From condition node, draw two edges:
- "if" branch → navigate to premium page
- "else" branch → navigate to regular page
1. Navigate to form page
2. Type email ({{email}})
3. Type password ({{password}})
4. Click submit button
5. Wait 2 seconds
6. Extract confirmation message
7. Screenshot
1. Navigate to page 1
2. Extract data, store in variables
3. Navigate to page 2
4. Extract data, store in variables
5. Compare and process
6. Screenshot results
1. API Call to get user list
2. Set index = 0
3. Navigate to user[0] profile
4. Extract user details
5. API Call to update profile
6. Increment index
7. Loop back if more users
1. API Call to fetch data
2. Extract With Logic to validate
3. If valid: proceed
4. If invalid: alert/screenshot
- Test incrementally - Add steps one at a time and test
- Use variables - Store common values, reuse everywhere
- Watch execution - Keep the browser window visible while testing
- Inspect API responses - Check logs to understand data structure
- Use element picker - Click to select elements instead of typing selectors
- Add screenshots - Capture key points for verification
- Handle timing - Add Wait steps between dynamic page changes
- Test conditions - Use Extract With Logic for robust comparisons
Export your automation:
- Click "Export" button
- Save JSON file
- Share with team
Import automation:
- Click "Import" button
- Select JSON file
- Automation loads in editor
Selector not working:
- Use element picker tool (Click button)
- Verify selector exists: open DevTools in preview
Variable not substituting:
- Check spelling:
{{variableName}} - Verify variable is set before use
- Check quotation marks in JSON
API call failing:
- Verify URL is correct
- Check authentication headers if needed
- Test URL in browser first
Condition not branching:
- Verify extracted value matches condition
- Check parsing options (strip currency, etc.)
- Test with Extract step first
- Read Variables & Data Types for advanced variable usage
- Check Steps Reference for detailed step documentation
- Browse Examples for real-world automations
- See Architecture for technical details