A simple Obsidian plugin that helps you maintain focus by sending periodic reminders to check in on what you're working on. Perfect for time-tracking, productivity logging, and staying mindful of your work.
- 🔔 System notifications that appear even when Obsidian is in the background
- ⏰ Customizable intervals - Set check-ins from 1 minute to hours
- 📢 Pre-alerts - Get a warning before the main check-in notification
- 📝 Optional daily note opening - Choose whether to open your daily note when it's time to log
- 🎯 Live countdown timer - Status bar shows real-time countdown to next check-in
- 🔄 Auto-start - Automatically resumes check-ins when you reopen Obsidian (if previously enabled)
- ⚙️ Easy controls - Start/stop with a ribbon icon, keyboard commands, or settings
- Enable the plugin and click the clock icon in the ribbon (or use the command palette)
- The plugin will send you periodic reminders at your chosen interval
- When a check-in notification appears:
- System notifications appear even when Obsidian is in the background
- Your daily note opens automatically (if enabled in settings)
- The status bar shows a live countdown to the next check-in
- Log what you're working on, then get back to it!
- Open Settings → Community plugins
- Browse community plugins and search for "Focus Check-in"
- Install and enable the plugin
- Download the latest release (
main.js,manifest.json,styles.css) - Create a folder
<vault>/.obsidian/plugins/focus-checkin/ - Copy the downloaded files into this folder
- Reload Obsidian and enable the plugin in Settings → Community plugins
Go to Settings → Focus Check-in to configure:
- Check-in interval - How often to remind you (default: 30 minutes)
- Pre-alert time - Warning notification before check-in (default: 30 seconds, set to 0 to disable)
- Daily notes path - Where your daily notes are stored (default:
Daily Notes)- Note: Daily notes should be organized as
Daily Notes/YYYY/YYYY-MM-DD.md(e.g.,Daily Notes/2025/2025-10-08.md)
- Note: Daily notes should be organized as
- Auto-open daily note - Toggle whether today's note opens automatically (default: off)
- Focus check-in status - Start/stop button to control check-ins directly from settings
- Click the clock icon in the left ribbon
- Or use Command Palette: "Start focus check-in"
- Or use Command Palette: "Toggle focus check-in"
- Or use the Start button in Settings → Focus Check-in
- Click the clock icon again
- Or use Command Palette: "Stop focus check-in"
- Or use Command Palette: "Toggle focus check-in"
- Or use the Stop button in Settings → Focus Check-in
- Use Command Palette: "Test system notification" to verify notifications work on your system
Check the status bar at the bottom of Obsidian:
- 🎯 Focus: 29m 45s - Live countdown to next check-in (updates every second)
- 🎯 Focus: OFF - Check-ins are stopped
- Start with short intervals - Try 15-30 minutes and adjust based on your workflow
- Test it first - Set a 1-minute interval or use "Test system notification" command to verify notifications work
- Organize daily notes properly - Keep notes in
Daily Notes/YYYY/YYYY-MM-DD.mdformat for the plugin to find them - Use pre-alerts - The 30-second warning helps you finish your current thought before logging
- Watch the countdown - The status bar updates every second to show exactly when your next check-in is coming
- Desktop: ✅ macOS, Windows, Linux
- Mobile: ✅ iOS, Android
- Minimum Obsidian version: 0.15.0
This plugin:
- ✅ Runs entirely locally on your device
- ✅ Does not collect any data
- ✅ Does not make any network requests
- ✅ Only accesses your daily notes folder as configured
# Clone the repository
git clone https://github.com/yourusername/obsidian-focus-checkin.git
cd obsidian-focus-checkin
# Install dependencies
pnpm install
# Build the plugin
pnpm run build
# Or run in development mode with auto-reload
pnpm run devfocus-checkin/
├── main.ts # Plugin entry point and main logic
├── manifest.json # Plugin metadata
├── styles.css # Plugin styles
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
├── esbuild.config.mjs # Build configuration
├── versions.json # Version history
└── README.md # This file
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
If you encounter any issues or have suggestions:
- Open an issue on GitHub
- Check existing issues for solutions
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the Pomodoro Technique and mindful work practices
- Built with the Obsidian API
- Thanks to the Obsidian community for feedback and support
Made with ❤️ for the Obsidian community