Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CUE

CUE is a reminder CLI tool that helps you set reminders and get notifications on Linux and Windows via WSL (not for native windows or macos yet).


fnrr@archlnx ~/c/cue (master)> cue

cue.io is a small CLI project created by me for fun and to learn Golang + Cobra
Visit github.com/itzzsauravp/cue.io to view more details or contribute to it


 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•
β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
 β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—  β•šβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•   β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•    β•šβ•β•

β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β•šβ•β•β–ˆβ–ˆβ–ˆβ•”β•β•šβ•β•β–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ•”β•   β–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ–ˆβ•”β•   β–ˆβ–ˆβ–ˆβ•”β•  β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•β•
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘
β•šβ•β•   β•šβ•β•   β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•  β•šβ•β•β•β•  β•šβ•β•

Demo - Windows

demo-windows

Demo - Linux

demo-linux

Features

  • Simple and minimal CLI interface.
  • Cross-platform notifications (Linux & Windows via WSL).
  • Recursive Reminders
  • Auto-start as a systemd user service on Linux.

Prerequisites

General:

  • Go 1.24.6

For Linux:

1. Install libnotify

Depending on you distro use the following:

# Debian / Ubuntu
sudo apt update && sudo apt install libnotify-bin
# Fedora
sudo dnf update && sudo dnf install libnotify
# Arch
sudo pacman -Syu && sudo pacman -S libnotify

If you’re using a lightweight window manager like i3 or bspwm, make sure you have a notification daemon installed that works with libnotify.

A popular and lightweight option is dunst. You can install it using your distro’s package manager:

  • Debian/Ubuntu: sudo apt install dunst
  • Fedora: sudo dnf install dunst
  • Arch/Manjaro: sudo pacman -S dunst

For WSL:

1. Install wsl-notify-send.exe

Download the binary from stuartleeks/wsl-notify-send

2. Create a folder for the binary

sudo mkdir -p "/mnt/c/Program Files/wsl-win"

# if in case this doesnot work try making one manually
# and save the downloaded binary under this folder

3. Add the folder to your Windows PATH

C:\Program Files\wsl-win

4. Configure your shell

  • For Bash/Zsh: add this to your ~/.bashrc or ~/.zshrc
notify-send() { wsl-notify-send.exe --category $WSL_DISTRO_NAME "${@}"; }
# if bash
source ~/.bashrc

# if zsh
 source ~/.zshrc
  • For Fish: add this to your ~/.config/fish/config.fish
function notify-send
    wsl-notify-send.exe --category $WSL_DISTRO_NAME $argv
end
source ~/.config/fish/config.fish


Installation

git clone https://github.com/itzzsauravp/cue.io.git
cd cue.io
go mod tidy

Linux

make
# OR
make setup
# OR
make all

WSL

make wsl

To uninstall and revert all changes, simply run:

make clean

Basic Usage

Add a Reminder:

cue add -n <your reminders name> -d <duration>

Example:

fnrr@archlnx ~/c/cue (master)> cue add -n "Remind me to write a Readme" -d 15m

Reminder added successfully

List All Reminders:

cue list

Preview:

fnrr@archlnx ~/c/cue (master)> cue list

ID  Name                                                             Duration  IsRecursive  IsActive
1   Welcome to CUE! Never forget a reminder again.                   1s        false        true
2   Time to stretch your legs! Take a quick 5-minute break.          5m0s      true         true
3   Drink water Staying hydrated is important for focus.             30m0s     true         true
4   Check your emails. Organize your inbox for better productivity.  1h0m0s    false        false
5   Evening reflection. Write down what you accomplished today.      2h0m0s    true         true

Delete a Reminder:

cue del -i <reminder_id>

Preview:

fnrr@archlnx ~/c/cue (master)> cue del -i 5

Reminder Deleted

Applying Filters

You can apply some basic filters to list and del. -r and -a flags can be used to set the IsRecursive and IsActive field to true and false respectively

Adding filters to the list and del commands

cue list -a <boolean_value> -r <boolean_value>
fnrr@archlnx ~/c/cue (master)> cue list -r false

ID  Name                                                             Duration  IsRecursive  IsActive
1   Welcome to CUE! Never forget a reminder again.                   1s        false        true
4   Check your emails. Organize your inbox for better productivity.  1h0m0s    false        false

likewise you can use -a and -r independely or combined ( same goes with del comamnd -> cue del -a false )

Utility Commands:

These utility commands are just wrapper around the basic linux commands

Start Service

cue run |> systemctl --user start cue

Note: This behavior is default after you run the Makefile. ( No need to run this manually )

Stop Service

cue stop |> systemctl --user stop cue

Note: Stops the service form running in the background and hence wont fire any notification

Serve

cue serve

Note: Used as a test to see if the cue service is running as intended or not ( Only for development purpose. No need to run this manually )

Check Status

cue status |> systemctl --user status cue

Note: Check to see if the cue service is active or not.

Cue Logs

cue logs |> journalctl --user -u cue -f

Note: Logs of cue service, when started, stopped, restarted etc.

Future Improvements

  • Integrate Calanders
  • Crossplatform support accross all OS
  • UX

Feedback

Suggestions and constructive criticism are always welcome

About

a cli reminders for linux/wsl with os-native notifications

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages