Build a Zero-Dependency Terminal Reminder System (Cron + Shell)
As Linux users, we often rely on heavy tools for things that could be solved with a few lines of shell. In this tutorial, I’ll show you how I built a zero-dependency reminder system that lives entirely in the terminal.
No GUI. No background apps. No distractions. Just a clean, minimal workflow that reminds you of important tasks like system updates.
💡 The Idea
The concept is simple:
•Step 1: A cron job writes reminders to a file
•Step 2: Your shell displays that file on startup
•Step 3: You see reminders naturally when opening a terminal
This turns your shell into a passive notification system.
📁 Step 1: Create a Reminder File
We’ll store reminders in a simple file:
touch ~/.todo
This file will act as your lightweight task list.
⏰ Step 2: Add a Weekly Cron Job
Edit your crontab:
crontab -e
Add the following line:
0 9 * * 1 echo "$(date '+%Y-%m-%d %H:%M') - Run sudo pacman -Syu" >> /home/mosaid/.todo
•Explanation:
•0 9 * * 1: Every Monday at 09:00
•echo: Adds a timestamped reminder
•>>: Appends instead of overwriting
🖥️ Step 3: Display Reminders in Your Shell
Now we make the reminders visible when opening a terminal.
For Bash:
echo 'cat ~/.todo' >> ~/.bashrc
For Zsh:
echo 'cat ~/.todo' >> ~/.zshrc
Now every new terminal session will display your reminders automatically.
✨ Step 4: Make It Cleaner
Instead of dumping the entire file, show only recent entries:
tail -n 5 ~/.todo
Update your shell config:
echo 'echo "---- TODO ----"' >> ~/.bashrc
echo 'tail -n 5 ~/.todo' >> ~/.bashrc
🎨 Optional: Highlight Important Tasks
grep --color=always pacman ~/.todo
This makes update reminders stand out visually.
🧹 Optional: Clean Completed Tasks
Once you’ve updated your system, remove the reminder:
sed -i '/pacman -Syu/d' ~/.todo
You can also automate cleanup if needed.
🚀 Extending the System
This is where things get interesting. You can easily expand this idea:
•Backups: Weekly backup reminders
•Disk cleanup: Notify when to clean cache
•Security: Remind yourself to check logs
•Multiple machines: Sync .todo with git
You now have a fully customizable reminder system.
⚖️ Cron vs Systemd Timers
Cron is simple and works everywhere, but modern systems also support systemd timers.
•Cron: Easy, universal, quick setup
•Systemd timers: More robust, better logging, tighter integration
If you want a more advanced setup, consider migrating later.
🧠 Why This Works
This approach is powerful because:
•No dependencies: Uses only built-in tools
•Zero overhead: No background services
•Contextual: Appears exactly when you open a terminal
•Hackable: Fully customizable to your workflow
It embraces the Unix philosophy: do one thing well.
🏁 Conclusion
What started as a simple cron job becomes a flexible, minimal reminder system that integrates seamlessly into your daily workflow.
Sometimes, the best tools aren’t the most complex—they’re the ones you fully control.