DEV Community

Cover image for I built a Linux reminder CLI because sleep && notify-send dies on reboot
Bunch
Bunch

Posted on

I built a Linux reminder CLI because sleep && notify-send dies on reboot

I used to do this:

sleep 25m && notify-send "Tea is ready"
Enter fullscreen mode Exit fullscreen mode

It works until the laptop sleeps, the terminal closes, or you reboot. Then the timer is just gone.

I wanted one-shot reminders that survive that — and actually interrupt me. Not another todo list.

So I wrote rmd.

The interface

rmd +25m Tea is ready
rmd tomorrow 15:00 Join release call
rmd fri 22:00 Shut up and go to bed
rmd
Enter fullscreen mode Exit fullscreen mode

rmd with no args lists what's coming. Relative durations, weekdays, ISO dates. Quotes optional.

What it is not

Not a task manager. No recurring projects, no kanban, no "someday". Push notifications are reserved for time-bound things: food on the stove, a call in 10 minutes.

What it does that sleep doesn't

  • Daemon via systemd user service (or auto-spawned by the CLI)
  • State in ~/.local/state/rmd/reminders.json — reboot-safe
  • If the machine was off, missed reminders come back as one grouped notification
  • Desktop notifications over D-Bus (Dunst, Mako, Fnott, SwayNC, DE built-in)

Linux + a notification daemon. Built in Rust.

Install

GitHub logo PaulBunch / rmd

One-shot Linux reminders that survive reboot and show up as desktop notifications

rmd

GitHub release Crates.io License: MIT

A lightweight, reliable reminder daemon and CLI for Linux.

Set one-shot reminders that survive reboots and show up as desktop notifications.

Philosophy: rmd is not a task manager. It is a zero-friction, hard-interrupt system designed to protect your flow state—reserving push notifications strictly for urgent, time-bound events (like food on the stove or an immediate meeting). Read the full Design Vision.

rmd CLI usage example

Features

  • Simple CLI: rmd +25m Tea is ready
  • Background daemon (auto-started by CLI or managed via systemd)
  • Persistent storage (~/.local/state/rmd/reminders.json)
  • Missed reminders handling (grouped notification when the system was offline)

Requirements

  • Linux (x86_64 or aarch64)
  • A D-Bus notification daemon (e.g., Fnott, Mako, Dunst, SwayNC, or DE built-in)

Installation

Prebuilt Binary (Recommended)

Downloads the pre-compiled static musl binary and enables the systemd user service:

curl -sSfL https://github.com/PaulBunch/rmd/releases/latest/download/rmd-linux-x86_64.tar.gz | tar -xz
install -Dm755 rmd ~/.local/bin/rmd
install -Dm644 rmd.service ~/.config/systemd/user/rmd.service
systemctl --user daemon-reload
systemctl --user 
Enter fullscreen mode Exit fullscreen mode
cargo install rmd-cli
Enter fullscreen mode Exit fullscreen mode

Prebuilt binaries are in the GitHub releases if you prefer not to compile.


If you also got tired of sleep && notify-send, that's the whole pitch.

Top comments (0)