A lightweight Zsh plugin that displays urgent Remember The Milk tasks after each command execution. Clean, non-intrusive, and terminal-only.
rtm
CLI)Clone this repository:
git clone https://github.com/aranel616/rtm-reminder-zsh.git ~/.config/rtm-reminder-zsh
Add to your ~/.zshrc
:
source ~/.config/rtm-reminder-zsh/rtm-reminder-zsh.plugin.zsh
Reload your shell:
Clone to Oh My Zsh custom plugins directory:
git clone https://github.com/aranel616/rtm-reminder-zsh.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/rtm-reminder-zsh
Add to your ~/.zshrc
plugins list:
plugins=(... rtm-reminder-zsh)
Reload your shell:
For development or if you have the repo cloned elsewhere:
Clone the repository (if not already cloned):
git clone https://github.com/aranel616/rtm-reminder-zsh.git ~/code/rtm-reminder-zsh
Create symlink to Oh My Zsh plugins:
ln -sfn ~/code/rtm-reminder-zsh ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/rtm-reminder-zsh
Add to your ~/.zshrc
plugins list:
plugins=(... rtm-reminder-zsh)
Reload your shell:
For Zinit:
zinit load "aranel616/rtm-reminder-zsh"
For Zplug:
zplug "aranel616/rtm-reminder-zsh"
Create a config file at ~/.config/rtm-reminder-zsh/config
:
# Copy the example config (adjust path based on installation method) # For Manual Installation: cp ~/.config/rtm-reminder-zsh/config/config.example ~/.config/rtm-reminder-zsh/config # For Oh My Zsh Installation (clone or symlink): mkdir -p ~/.config/rtm-reminder-zsh cp ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/rtm-reminder-zsh/config/config.example ~/.config/rtm-reminder-zsh/config # Edit the configuration nano ~/.config/rtm-reminder-zsh/configOption Default Description
URGENCY_QUERY
'dueBefore:today or dueWithin:"1h"'
RTM query to find urgent tasks MAX_TASKS
2
Maximum number of tasks to display CHECK_INTERVAL_MINUTES
5
How often to check for tasks (in minutes) SORT_TYPE
'lsd'
RTM sort command (ls/lsd/lsp) SHOW_DIVIDER
true
Show divider line above reminders DIVIDER_TEMPLATE
'simple'
Divider style template DIVIDER_CHAR
'─'
Character for divider line DIVIDER_FORMAT
''
Custom Oh-My-Zsh format string
# Show only overdue tasks URGENCY_QUERY='dueBefore:today' # Show up to 3 tasks MAX_TASKS=3 # Check every 10 minutes CHECK_INTERVAL_MINUTES=10 # Use styled divider (requires Oh-My-Zsh) DIVIDER_TEMPLATE='styled'
The plugin supports highly customizable dividers that are compatible with Oh-My-Zsh prompt formatting.
Template Description Examplesimple
Basic line across screen ────────────────────────────────
styled
Blue styled line ──────────────────────────────── user
Include username john ─────────────────────────
time
Include current time 14:30 ───────────────────────
custom
Use DIVIDER_FORMAT
Fully customizable Oh-My-Zsh Compatible Custom Formats
When using DIVIDER_TEMPLATE='custom'
, you can use full zsh prompt expansion:
# Colored divider with username and hostname DIVIDER_FORMAT='%{$fg[cyan]%}%n@%m%{$reset_color%} %{$fg[blue]%}${(l:$((COLUMNS-10))::─:)}%{$reset_color%}' # Time-stamped divider DIVIDER_FORMAT='%D{%H:%M:%S} %{$fg[green]%}${(l:$((COLUMNS-9))::═:)}%{$reset_color%}' # Fancy divider with RTM branding DIVIDER_FORMAT='%{$fg_bold[yellow]%}── RTM ──${(l:$((COLUMNS-9))::─:)}%{$reset_color%}'Zsh Prompt Expansion Reference
The plugin supports all standard zsh prompt sequences:
%n
- Username%m
- Hostname%D{format}
- Date/time (e.g., %D{%H:%M}
)%{...%}
- Literal escape sequences for colors${(l:width::char:)}
- Left-pad with character to width$fg[color]
- Oh-My-Zsh color variables$reset_color
- Reset colors# Available colors (Oh-My-Zsh) $fg[red] $fg[green] $fg[yellow] $fg[blue] $fg[magenta] $fg[cyan] $fg[white] $fg_bold[color] $fg_no_bold[color] $reset_color # Rainbow divider DIVIDER_FORMAT='%{$fg[red]%}──%{$fg[yellow]%}──%{$fg[green]%}──%{$fg[cyan]%}──%{$fg[blue]%}──%{$fg[magenta]%}${(l:$((COLUMNS-12))::─:)}%{$reset_color%}'
Once installed, the plugin runs automatically. After each command execution, it will:
Example output:
$ ls -la
total 48
drwxr-xr-x 6 user staff 192 Jan 15 10:30 .
drwxr-xr-x 3 user staff 96 Jan 15 10:29 ..
-rw-r--r-- 1 user staff 1234 Jan 15 10:30 README.md
📋 RTM Reminders:
• Call dentist - Due today
• Submit report - Due in 30 minutes
$
The plugin uses RTM's query syntax. Examples:
# High priority tasks due soon URGENCY_QUERY='priority:1 and dueBefore:tomorrow' # Tasks from specific lists URGENCY_QUERY='list:Work and dueBefore:today' # Overdue tasks only URGENCY_QUERY='dueBefore:today'
CHECK_INTERVAL_MINUTES=0
to check after every command (not recommended)~/.cache/rtm-reminder-zsh/
Check if RTM CLI is installed and working:
Verify plugin is loaded:
echo $RTM_REMINDER_PLUGIN_DIR
Check if config file exists and is readable:
ls -la ~/.config/rtm-reminder-zsh/config
Test your RTM query directly:
rtm lsd "dueBefore:today or dueWithin:\"1h\""
Check the cache file timestamp:
cat ~/.cache/rtm-reminder-zsh/last_check
MIT License - feel free to modify and share!
✨ Vibe coded by Claude Code ✨
Issues and pull requests welcome! This plugin is designed to be lightweight and maintainable.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4