Pingr is a lightweight desktop reminder application built with Electron that helps you manage tasks with natural language time parsing. Simply type what you need to remember and when, and Pingr will notify you at the right time.
- Natural Language Date Parsing: Use French natural language to set reminders (e.g., "demain à 14h", "dans 2 heures")
- Task Management: Create, edit, complete, and delete tasks with ease
- Smart Notifications: Get notified when tasks are due
- Task History: View completed tasks in a dedicated history section
- Data Encryption: Optional encryption for your task data using Electron's SafeStorage
- System Tray Integration: Quick access from your system tray
- Cross-Platform: Works on Windows, macOS, and Linux
- Export Tasks: Export your tasks to JSON format (unencrypted)
- Task Time Adjustments: Quickly adjust task times with +/- shortcuts
Download the latest release for your platform from the Releases page:
- Windows:
.exeinstaller - macOS:
.ziparchive - Linux:
.debor.rpmpackage
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/clausouto/pingr.git
cd pingr- Install dependencies:
npm install- Run in development mode:
npm start- Build for production:
npm run makeThe built application will be available in the out/ directory.
- Open Pingr
- Type your reminder in the input field
- Press Enter to save
Examples:
Appeler Marie demain à 14hRéunion dans 2 heuresAnniversaire vendredi
- Complete a task: Click the checkmark button (✓)
- Delete a task: Click the X button
- Edit a task: Double-click on the task content
- View history: Toggle "Afficher l'historique" checkbox
When editing a task, you can use quick time adjustments:
+15- Add 15 minutes-30- Subtract 30 minutes
Access settings from the menu bar (Paramètres):
- Lancer au démarrage: Start Pingr automatically when your system boots
- Chiffrer les données: Enable/disable data encryption
- Exporter les tâches: Export tasks to JSON file
- Réinitialiser les tâches: Reset all tasks
pingr/
├── src/
│ ├── main/ # Main process (Electron)
│ │ ├── index.js # Application entry point
│ │ ├── menu.js # Application menu
│ │ ├── tasks.js # Task management
│ │ ├── config.js # Configuration management
│ │ ├── logger.js # Logging utility
│ │ ├── autolauncher.js # Auto-launch functionality
│ │ └── squirrel-startup.js # Squirrel startup handling
│ ├── preload/ # Preload scripts
│ │ └── app.js # IPC bridge
│ ├── renderer/ # Renderer process (UI)
│ │ ├── index.html # Main UI
│ │ └── index.js # UI logic
│ └── styles/ # CSS styles
│ └── base.css
├── resources/ # Application icons and assets
├── forge.config.js # Electron Forge configuration
└── package.json # Project dependencies
npm start- Start the application in development modenpm run package- Package the applicationnpm run make- Create distribution packagesnpm run publish- Publish to GitHub releases
- Electron: Desktop application framework
- Bootstrap 5: UI framework
- Bootstrap Icons: Icon library
- Chrono-node: Natural language date parser
- update-electron-app: Automatic updates through GitHub releases
- Squirrel: Windows installer
Pingr stores your tasks and configuration locally:
-
Development: In the project root directory
tasks.json- Task dataconfig.json- Application configuration
-
Production: In the system's user data directory
- Windows:
%APPDATA%/Pingr/ - macOS:
~/Library/Application Support/Pingr/ - Linux:
~/.config/Pingr/
- Windows:
When encryption is enabled, task data is encrypted using Electron's SafeStorage API, which uses:
- Windows: DPAPI
- macOS: Keychain
- Linux: System keyring (libsecret)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.
Claudio Souto
- GitHub: @clausouto
- Repository: pingr