Banner of build-a-zero-dependency-terminal-reminder-system-(cron-+-shell)-13.jpg

Build a Zero-Dependency Terminal Reminder System (Cron + Shell)


Category: Linux

📅 April 19, 2026   |   👁️ Views: 1

Author:   mosaid

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.


← Tracking Class Time Precisely with Conky and Python From Terminal to Desktop: Sticky Todo Reminders with Cron, systemd & Conky →