Record, automate, and replay your digital workflows
Workflow Bookmarker is a powerful tool that allows you to record, automate, and replay your digital workflows. It captures mouse movements, keyboard inputs, window changes, and browser interactions to create reproducible sequences of actions that can be played back at any time.
Whether you're creating tutorials, automating repetitive tasks, or documenting complex workflows, Workflow Bookmarker provides a user-friendly solution for capturing and replaying your digital activities.
- Comprehensive Recording: Capture mouse movements, clicks, scrolls, keyboard input, window changes, and browser tab navigation
- Intelligent Playback: Replay recorded workflows with adjustable speed and timing
- Cross-Application Support: Works across different applications and browsers
- Window and Tab Detection: Automatically detects and switches between windows and browser tabs
- Customizable Workflows: Edit recorded workflows to fine-tune actions and timing
- Import/Export: Save workflows to files and share them with others
- Platform Support: Works on Windows, macOS, and Linux (with platform-specific optimizations)
- User-Friendly Interface: Simple GUI for recording, managing, and playing workflows
- Debugging Tools: Test scripts to help diagnose and fix issues
Workflow Bookmarker consists of several key components:
- WorkflowRecorder: Records user actions including mouse movements, clicks, keyboard input, and window changes
- WorkflowPlayer: Plays back recorded workflows by simulating user actions
- WindowWatcher: Monitors and tracks window changes across the system
- Storage: Manages saving and loading workflows to/from persistent storage
- UI Components: Provides a graphical interface for interacting with the application
The application uses platform-specific implementations where necessary (e.g., macos_keyboard_monitor.py for macOS) and includes special handling for different browsers and applications.
- Python 3.6 or higher
- PyQt5
- PyAutoGUI
- Additional dependencies based on your platform
# Clone the repository
git clone https://github.com/infag1403/workflow_bookmarker.git
cd workflow_bookmarker
# Install the package
pip install -e .On macOS, you need to grant accessibility permissions:
- Go to System Preferences > Security & Privacy > Privacy > Accessibility
- Add Terminal or your Python application to the list of allowed apps
- For keyboard monitoring, you may need additional permissions in Input Monitoring
On Windows, you may need to run the application with administrator privileges for certain features to work correctly.
On Linux, you may need to install additional dependencies:
# For Debian/Ubuntu
sudo apt-get install python3-xlib python3-tk python3-dev
# For Fedora
sudo dnf install python3-xlib python3-tkinter python3-devel-
Start the application:
workflow-bookmarker
-
Enter a name for your workflow in the main window
-
Configure recording options:
- Mouse movements
- Keyboard input
- Window changes
-
Click "Start Recording" and perform the actions you want to record
-
Click "Stop Recording" when finished
-
Select a workflow from the list in the main window
-
Adjust playback settings if needed:
- Playback speed
- Pause between actions
-
Click "Play" to start the playback
-
The application will simulate all recorded actions in sequence
- Select a workflow from the list
- Click "Edit" to open the workflow editor
- Modify actions, timing, or remove unwanted steps
- Save your changes
You can create workflows with conditional actions that depend on the state of the screen:
- Record a basic workflow
- Edit the workflow to add conditions
- Specify alternative paths based on different conditions
- Select a workflow from the list
- Click "Export"
- Choose a location and filename
- The workflow will be saved as a JSON file
- Click "Import"
- Select a previously exported workflow file
- The workflow will be added to your list
If you encounter permission issues on macOS:
- Ensure Terminal or Python has accessibility permissions
- Check Input Monitoring permissions for keyboard recording
- Try running the permission test:
python test_keyboard.py
If you encounter permission issues on Windows:
- Run the application as administrator
- Check Windows security settings that might block input simulation
If window detection isn't working correctly:
-
Run the window detection test:
python test_window_detection.py
-
For issues with multiple windows of the same application:
python test_same_app_windows.py
For browser-specific issues:
-
Check if your browser is supported (Chrome, Firefox, Safari, Edge)
-
Run the browser tab test:
python test_browser_tabs.py
-
Make sure browser extensions aren't interfering with the detection
- Recording mouse movements can create large workflow files
- Consider disabling mouse movement recording for simple workflows
- For long workflows, break them into smaller, modular workflows
We welcome contributions to Workflow Bookmarker! Here's how you can help:
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/workflow_bookmarker.git
- Install development dependencies:
pip install -e ".[dev]"
Run the test suite to ensure everything is working:
python -m unittest discover- Create a branch for your changes:
git checkout -b feature/your-feature-name
- Make your changes and commit them
- Push to your fork
- Create a Pull Request
If you find a bug or have a feature request, please open an issue with:
- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Your operating system and Python version
This project is licensed under the MIT License - see the LICENSE file for details.