Skip to content

IntentOS is a lightweight, customizable pop-up for habit stacking and reminders — built to stay visible, frictionless, and out of the way.

License

Notifications You must be signed in to change notification settings

Kands221/intentos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intentos

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.

Version .NET License


🌟 Features

✨ Visual Popup Editor

  • 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

🎯 Rule-Based Automation

  • 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

🔔 Smart Notifications

  • 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

⚙️ Flexible Settings

  • 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

📥 Installation

Prerequisites

Steps

  1. Download the latest release from Releases
  2. Extract the ZIP file to your desired location
  3. Run intentos.exe
  4. (Optional) Enable "Auto-start on login" in Settings

🚀 Quick Start Guide

Step 1: Design Your Popup

  1. Navigate to Popup Editor
  2. 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
  3. Click Test Popup to preview
  4. Click Save as Rule

Step 2: Create Automation Rules

  1. Navigate to Rules
  2. Select your newly created rule
  3. 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.)
  4. 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
  5. Enable the rule (toggle checkbox)
  6. Click Save Changes

Step 3: Test It Out

  1. Launch the application you set as a trigger
  2. Your custom popup appears! 🎉
  3. Click buttons to execute actions (close or open URL)

💡 Use Cases

🏋️ Habit Stacking Examples

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

🔄 Workflow Automation

  • 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

📖 Documentation

Application Structure

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 File Location

Settings and rules are stored in:

%AppData%\Intentos\
├── settings.json       # App preferences
└── rules.json          # Automation rules

Rule Configuration

Rule Properties:

  • Name: Display name for the rule
  • TriggerValue: Application process name (lowercase)
  • TriggerPath: Full path to executable (optional)
  • Icon: FontAwesome icon name
  • Enabled: Whether the rule is active
  • PopupTitle: Notification title
  • PopupMessage: Notification message
  • Button1: Primary button configuration
    • Label: Button text
    • Action: "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"
  }
}

Button Actions

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

🛠️ Development

Building from Source

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

Dependencies

  • FontAwesome.Sharp - Icon library
  • .NET 8 - Framework
  • System.Text.Json - JSON serialization
  • WPF - UI framework

Architecture

MVVM Pattern:

  • Models: Data structures (Rule, AppSettings, PopupSettings)
  • Views: XAML UI components
  • ViewModels: Implied through data binding and code-behind

Key Components:

  1. RuleExecutionEngine - Monitors processes and executes rules
  2. ProcessMonitor - Detects application launches
  3. RuleManager - Manages rule CRUD operations
  4. TrayIconManager - System tray integration

🎨 UI/UX Features

Modern Design

  • Pastel color scheme for a friendly, approachable look
  • Rounded corners and subtle shadows
  • Smooth animations and transitions
  • Responsive layout adapts to content

User Experience

  • 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

Navigation

  • Sidebar navigation with icons and descriptions
  • 5 main sections:
    1. Getting Started (Dashboard)
    2. Popup Editor
    3. Rules
    4. Settings
    5. Help & Support

🔒 Privacy & Security

  • 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)

🤝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Code Style

  • Follow C# coding conventions
  • Use meaningful variable names
  • Comment complex logic
  • Keep methods focused and short
  • Test your changes thoroughly

🐛 Bug Reports & Feature Requests

Found a bug or have a feature idea?

Please include:

  • Steps to reproduce (for bugs)
  • Expected vs actual behavior
  • Screenshots (if applicable)
  • System information (Windows version, .NET version)

📄 License

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...

🙏 Acknowledgments

  • FontAwesome - Icon library
  • Microsoft - .NET Framework and WPF
  • Community - Thanks to all contributors and users!

💬 Support

Need help? Have questions?


🗓️ Roadmap

Version 1.1 (Planned)

  • Time-based triggers (e.g., hourly reminders)
  • Multiple URL support per button
  • Custom sound files
  • Export/import rules
  • Rule templates library

Version 2.0 (Future)

  • Cross-platform support (macOS, Linux)
  • Browser extension integration
  • Advanced scheduling
  • Analytics dashboard
  • Multi-language support

📊 Project Stats

  • 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 💪

⭐ Star this repo | 🐛 Report Bug | 💡 Request Feature

About

IntentOS is a lightweight, customizable pop-up for habit stacking and reminders — built to stay visible, frictionless, and out of the way.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages