-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the WinEventEngine documentation! This wiki contains everything you need to understand, configure, and extend the engine.
A universal event automation system for Windows that monitors system events (file changes, window activity, process creation, registry modifications) and executes automated actions based on configurable rules.
Automate everything:
- Play/pause media when focusing specific windows
- Auto commit changes to your config/dot files/folders
- Auto build/test an application under configurable conditions
- Get Webhook (Discord/Slack/Telegram/etc) notifications for configurable events
- Send API requests for configurable conditions/events
- Write easy-to-learn Lua scripts to customize everything
- Watch it all happen in real-time on the web dashboard
- Much more! Simple configuration, powerful results
- Event Monitoring: File system, windows, processes, and registry
- Rule Engine: Pattern-based matching with Lua scripting
-
Web Dashboard: Real-time monitoring at
http://localhost:9090 - Windows Service: Run as background service
- Plugin System: Write custom actions in Lua
New to WinEventEngine? This minimal example verifies everything works. You'll create a file watcher that logs when text files are created.
Requirements:
- Windows 10/11
- Visual C++ Redistributable (usually pre-installed on most systems)
Download engine.exe from GitHub Releases and save it to a folder (e.g., C:\Tools\win_event_engine\).
Create a file named config.toml in the same folder as engine.exe. This config watches the test_folder subdirectory for new .txt files and logs when they're created:
[engine]
event_buffer_size = 100
log_level = "info"
# Watch for new files in a test directory
[[sources]]
name = "my_watcher"
type = "file_watcher"
paths = ["./test_folder"]
pattern = "*.txt"
enabled = true
# Log when text files are created
[[rules]]
name = "text_file_alert"
description = "Notify when text files are created"
trigger = { type = "file_created", pattern = "*.txt" }
action = { type = "log", message = "New text file created!", level = "info" }
enabled = trueNeed help with configuration? See the Configuration Reference for all available options.
Open a terminal in the folder with engine.exe:
# Create a test folder (in the same folder as engine.exe)
mkdir test_folder
# Start the engine
engine.exe -c config.toml
# The engine is now running!Open your browser and go to: http://127.0.0.1:9090
The dashboard is now ready and waiting for events. You'll see the connection status (green dot = connected).
In another terminal, create a test file:
echo "Hello World" > test_folder\test.txtWatch as:
- The engine logs:
[LUA] New text file created! - The dashboard shows the event in real-time!
- The event counter increases
You'll see real-time events as they happen!
Once you've verified the engine works, try media automation:
- Copy
config.media_automation.toml.exampletoconfig.toml - Edit the
title_containsvalue to match your preferred window (e.g., "nvim", "VS Code", "Firefox") - Run the engine and switch between windows
- Your media will automatically pause when you leave that window, and resume when you return
- Configuration Reference - Complete configuration options and examples
- Event Types - All available events and their data
- Lua Scripting API - Write custom actions in Lua
- Web Dashboard - Real-time monitoring and metrics
- Troubleshooting - Common issues and solutions
- Architecture - Technical deep-dive into the system
- Contributing - How to contribute to the project
Run the engine in the background without keeping a terminal open. The service starts automatically on Windows startup.
Open an Administrator terminal in the folder containing engine.exe:
# Install the service
engine.exe --install
# Start the service
sc start WinEventEngine# Check status
sc query WinEventEngine
# Stop the service
sc stop WinEventEngine
# Uninstall (stops and removes)
engine.exe --uninstallNotes:
- Service starts automatically on Windows boot
- Config file path must be absolute or relative to engine.exe location
- Requires Administrator privileges for install/uninstall
# View help
engine.exe --help
# Run with a config file
engine.exe -c config.toml
# Check if the engine is running
engine.exe --status
# Enable debug logging
engine.exe -c config.toml --log-level debug
# Dry run (see what would happen without executing)
engine.exe -c config.toml --dry-run
# Install as Windows Service (requires admin terminal)
engine.exe --install
# Start the Service (requires admin terminal)
sc start WinEventEngine
# Stop the Service (requires admin terminal)
sc stop WinEventEngine
# Uninstall as Windows Service (requires admin terminal)
engine.exe --uninstallDownload Alert:
[[rules]]
name = "download_alert"
trigger = { type = "file_created", pattern = "*.exe" }
action = { type = "log", message = "Executable downloaded!", level = "warn" }Auto-backup:
[[rules]]
name = "auto_backup"
trigger = { type = "file_modified", pattern = "*.docx" }
action = { type = "script", path = "backup.lua", function = "on_event" }See Configuration Reference for more examples.