Intentos is a modern Windows desktop application for workflow automation and habit stacking. Create custom popup notifications triggered by application launches to build better habits and streamline your workflow.
- Drag-and-drop popup designer with live preview
- Customizable colors for background, title, message, and accent
- Two configurable buttons with custom labels and actions
- Color palettes for quick styling (pastel and vibrant colors)
- Unsaved changes detection to prevent accidental data loss
- Trigger rules when specific applications launch
- Choose any executable from your system
- Enable/disable rules individually
- Multiple rules per application
- Icon customization for visual organization
- Button actions: Close popup, Open URL, or Remind Later
- Custom popups appear when rules are triggered
- Functional buttons with URL opening capability
- Sound notifications (optional)
- System tray integration for background running
- Minimal, non-intrusive design
- Auto-start on login - Launch automatically with Windows
- Run in background - Minimize to system tray
- Sound notifications - Audio feedback for rule execution
- Persistent storage - All settings and rules saved automatically
- Windows 10/11
- .NET 8 Runtime
- Download the latest release from Releases
- Extract the ZIP file to your desired location
- Run
intentos.exe - (Optional) Enable "Auto-start on login" in Settings
- Navigate to Popup Editor
- Customize your notification:
- Enter a title (e.g., "Time to build a habit!")
- Write a message (e.g., "Take a 5-minute break")
- Set button labels (e.g., "Later", "Start Now")
- Choose colors from the palette
- Click Test Popup to preview
- Click Save as Rule
- Navigate to Rules
- Select your newly created rule
- Configure the trigger:
- Application: Choose the app that triggers this rule
- Click folder icon to browse for any .exe file
- Or select from presets (Chrome, VS Code, Discord, etc.)
- Configure button actions:
- Button 1: Usually "Close Popup" or "Remind Me Later"
- Button 2: Select "Open URL" and enter a website
- Example:
https://www.youtube.com/watch?v=stretch-routine
- Example:
- Enable the rule (toggle checkbox)
- Click Save Changes
- Launch the application you set as a trigger
- Your custom popup appears! 🎉
- Click buttons to execute actions (close or open URL)
Example 1: Chrome → Reading Time
Trigger: Google Chrome launches
Popup: "Build your reading habit!"
Button 1: "Later" → Close Popup
Button 2: "Read Article" → Open URL → https://medium.com
Example 2: Discord → Stretch Break
Trigger: Discord launches
Popup: "Take a quick break!"
Button 1: "Skip" → Close Popup
Button 2: "5-Min Stretch" → Open URL → https://youtube.com/stretch
Example 3: VS Code → Daily Learning
Trigger: Visual Studio Code launches
Popup: "Learn something new!"
Button 1: "Not Now" → Close Popup
Button 2: "Start Learning" → Open URL → https://freecodecamp.org
- Remind yourself to check emails when opening Outlook
- Prompt journaling when opening OneNote
- Suggest breaks when launching work applications
- Create custom workflows for any application
intentos/
├── Views/ # UI components
│ ├── DashboardView.xaml
│ ├── PopupEditorView.xaml
│ ├── RulesView.xaml
│ ├── SettingsView.xaml
│ └── HelpSupportView.xaml
├── Models/ # Data models
│ ├── Rule.cs
│ ├── AppSettings.cs
│ └── PopupSettings.cs
├── Services/ # Business logic
│ ├── RuleManager.cs
│ └── TrayIconManager.cs
├── Core/ # Core functionality
│ ├── RuleExecutionEngine.cs
│ └── EventMonitors/
│ └── ProcessMonitor.cs
└── Data/ # Data persistence
└── RuleRepository.cs
Settings and rules are stored in:
%AppData%\Intentos\
├── settings.json # App preferences
└── rules.json # Automation rules
Rule Properties:
Name: Display name for the ruleTriggerValue: Application process name (lowercase)TriggerPath: Full path to executable (optional)Icon: FontAwesome icon nameEnabled: Whether the rule is activePopupTitle: Notification titlePopupMessage: Notification messageButton1: Primary button configurationLabel: Button textAction: "Close Popup", "Open URL", or "Remind Me Later"ActionData: URL for "Open URL" action
Button2: Secondary button configuration
Example Rule (JSON):
{
"id": "abc-123",
"name": "Chrome Reading Reminder",
"triggerValue": "chrome",
"triggerPath": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"icon": "Chrome",
"enabled": true,
"popupTitle": "Time to read!",
"popupMessage": "How about reading an article before browsing?",
"button1": {
"label": "Later",
"action": "Close Popup",
"actionData": ""
},
"button2": {
"label": "Start Reading",
"action": "Open URL",
"actionData": "https://medium.com"
}
}| Action | Description | Requires ActionData |
|---|---|---|
| Close Popup | Dismisses the notification | No |
| Open URL | Opens URL in default browser | Yes (URL string) |
| Remind Me Later | Closes and reminds later (future feature) | No |
Prerequisites:
- Visual Studio 2022 or later
- .NET 8 SDK
- Windows 10/11
Steps:
# Clone the repository
git clone https://github.com/Kands221/intentos.git
cd intentos
# Restore NuGet packages
dotnet restore
# Build the project
dotnet build --configuration Release
# Run the application
dotnet run --project intentos- FontAwesome.Sharp - Icon library
- .NET 8 - Framework
- System.Text.Json - JSON serialization
- WPF - UI framework
MVVM Pattern:
- Models: Data structures (
Rule,AppSettings,PopupSettings) - Views: XAML UI components
- ViewModels: Implied through data binding and code-behind
Key Components:
- RuleExecutionEngine - Monitors processes and executes rules
- ProcessMonitor - Detects application launches
- RuleManager - Manages rule CRUD operations
- TrayIconManager - System tray integration
- Pastel color scheme for a friendly, approachable look
- Rounded corners and subtle shadows
- Smooth animations and transitions
- Responsive layout adapts to content
- Unsaved changes detection prevents data loss
- Auto-focus on input fields for efficiency
- Keyboard shortcuts (Enter to save, Escape to cancel)
- Visual feedback for all actions
- Dirty indicators show unsaved state
- Hidden scrollbars for cleaner appearance
- Sidebar navigation with icons and descriptions
- 5 main sections:
- Getting Started (Dashboard)
- Popup Editor
- Rules
- Settings
- Help & Support
- Local storage only - No cloud, no telemetry
- No data collection - Your rules stay on your machine
- Open source - Full transparency
- User-level permissions - No admin rights required
- Registry access - Only for auto-start feature (HKCU)
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow C# coding conventions
- Use meaningful variable names
- Comment complex logic
- Keep methods focused and short
- Test your changes thoroughly
Found a bug or have a feature idea?
- Report issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: andeskyle22@gmail.com
Please include:
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Screenshots (if applicable)
- System information (Windows version, .NET version)
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Kyle Joseph Andes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
- FontAwesome - Icon library
- Microsoft - .NET Framework and WPF
- Community - Thanks to all contributors and users!
Need help? Have questions?
- Documentation: This README
- GitHub: Issues | Discussions
- Email: andeskyle22@gmail.com
- Time-based triggers (e.g., hourly reminders)
- Multiple URL support per button
- Custom sound files
- Export/import rules
- Rule templates library
- Cross-platform support (macOS, Linux)
- Browser extension integration
- Advanced scheduling
- Analytics dashboard
- Multi-language support
- Language: C# 100%
- Framework: .NET 8 / WPF
- Lines of Code: ~15,000+
- First Release: December 2025
- Latest Version: 1.0.0
Built with Intent for productivity 💪