CLI Commands¶
kim provides a command-line interface for managing reminders and the daemon.
Global Options¶
--version— Show version-i— Alias forinteractivecommand
Daemon Control¶
| Command | Description |
|---|---|
kim start |
Start the daemon |
kim stop |
Stop the daemon |
kim status |
Show status and active reminders |
kim logs |
Show recent log entries (default: 30 lines) |
Examples¶
Reminder Management¶
| Command | Description |
|---|---|
kim list |
List all reminders from config |
kim add |
Add a new reminder |
kim remove |
Remove a reminder |
kim enable |
Enable a reminder |
kim disable |
Disable a reminder |
kim update |
Update a reminder |
kim add¶
kim add NAME (-I|-E INTERVAL | --every INTERVAL | --at HH:MM) [-t TITLE] [-m MESSAGE] [-u URGENCY] [--tz TZ] [--sound-file FILE] [--slack-channel CHANNEL] [--slack-webhook URL]
Options:
- -I, --interval, --every — Recurring interval (e.g., 30m, 1h, 1d) [required unless --at]
- --at HH:MM — Fire daily at a fixed time, e.g. --at 10:00 [required unless --interval]
- -t, --title — Notification title
- -m, --message — Notification message
- -u, --urgency — low, normal, critical (default: normal)
- --tz TZ — IANA timezone for --at, e.g. Asia/Kolkata (default: local system timezone)
- --sound-file — Per-reminder sound file path (overrides global)
- --slack-channel — Per-reminder Slack channel
- --slack-webhook — Per-reminder Slack webhook URL
Example:
# Interval-based (unchanged, --every is now also accepted)
kim add eye-break -I 30m -t "👁️ Eye Break" -m "Look away from screen" -u critical
kim add "drink water" --every 1h
kim add standup -I 30m --slack-channel "#standup" --sound-file ~/sounds/urgent.wav
# Daily at a fixed time
kim add standup --at 10:00
kim add standup --at 10:00 --tz Asia/Kolkata
kim remove¶
Remove a recurring reminder by name or 1-based index (as shown in kim list):
Remove a pending one-shot by index or message substring (from kim list -o):
kim enable / kim disable¶
kim update¶
kim update NAME [-I INTERVAL] [--every INTERVAL] [--at HH:MM] [--tz TZ] [-t TITLE] [-m MESSAGE] [-u URGENCY] [--enable] [--disable] [--sound-file FILE] [--slack-channel CHANNEL] [--slack-webhook URL]
New options:
- --every — Alias for --interval
- --at HH:MM — Switch to daily at-time schedule
- --tz TZ — Timezone for --at
- --sound-file — Set per-reminder sound file
- --slack-channel — Set per-reminder Slack channel
- --slack-webhook — Set per-reminder Slack webhook URL
One-shot Reminders¶
TIME — relative:
TIME — absolute (at ...):
at 14:30 today at 14:30 (or tomorrow if already past)
at tomorrow 10am tomorrow at 10:00
at friday 9am next Friday at 09:00
at 2026-04-06 09:00 specific date and time
Options:
- -t, --title — Notification title (default: Reminder)
- --urgency — low, normal, critical (default: normal)
- --tz TZ — IANA timezone for absolute times (default: local system timezone)
Examples:
kim remind "standup call" in 10m
kim remind "take a break" 1h
kim remind "deploy window opens" 2h 30m
kim remind "standup" at 10:00
kim remind "standup" at tomorrow 9am
kim remind "call" at 2026-04-06 14:30 --tz America/New_York
kim remind "wake up!" in 5m --urgency critical
Persistence: One-shot reminders are persisted to disk (~/.kim/oneshots.json) and survive daemon restarts and system reboots. Expired reminders are automatically cleaned up.
Configuration¶
| Command | Description |
|---|---|
kim edit |
Open config in $EDITOR |
kim validate |
Validate config file |
kim export |
Export reminders to file |
kim import |
Import reminders from file |
kim export¶
FORMAT: json (default), csv
Example:
kim import¶
FORMAT: json, csv, auto (default: auto-detect)
Example:
Sound Configuration¶
Options:
- --set FILE — Set custom sound file
- --clear — Revert to system default
- --test — Play current sound
- --enable — Enable sound notifications
- --disable — Disable sound notifications
Examples:
Slack Integration¶
Example:
Interactive Mode¶
A text-based UI for managing reminders. Use arrow keys to navigate, Enter to select.
Self-Update & Uninstall¶
| Command | Description |
|---|---|
kim self-update |
Check for and install updates |
kim uninstall |
Uninstall kim completely |
kim self-update¶
Shell Completions¶
Generate shell completions:
Add to your shell config (e.g., .bashrc):