Linux desktop reminders
Reminders that fly in.
Bird runs quietly in the background. When something is due, a little bird flies in from the left side of your screen and holds up the reminder until you answer it.
Free and open source (MIT). Written in Go. Configured with one YAML file.
11:00
Stand-up meeting
Stop coding. Time to meet your team!
Install
Build from source. You need Go 1.25+ and the GTK / WebKitGTK development packages.
sudo apt install build-essential pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev
git clone https://github.com/arjunshajitech/bird.git
cd bird
make # build
./build/bird-overlay --demo # see the bird
make install-config # create ~/.config/bird/config.yaml
make install install-service # start with your desktop session
Fedora: sudo dnf install gcc pkgconf gtk3-devel webkit2gtk4.1-devel
Arch: sudo pacman -S base-devel gtk3 webkit2gtk-4.1
How it works
-
1
Write your events
List your reminders in
~/.config/bird/config.yaml. Save the file and Bird picks up the change. -
2
Bird keeps time
A small background service checks the clock and remembers what it has already shown, even across restarts.
-
3
The bird lands
At the right moment the bird flies in with your buttons. Click one, press its number, or Esc to snooze.
- ~10 MBmemory for the background service
- No networkeverything runs locally
- No duplicatesrestarts never repeat a reminder
- No commandsthe config can only open links
One small YAML file
Daily or weekly, at a time you choose, with the buttons you want. Mistakes are caught with a clear message, and the last working version keeps running.
events:
- id: standup
title: "Stand-up meeting"
schedule: { type: weekly, time: "11:00",
days: [mon, tue, wed, thu, fri] }
actions:
- { id: join, label: "Join meeting",
action: open_url, url: "https://meet.example.com/abc" }
- { id: snooze, label: "In 5 minutes",
action: snooze, minutes: 5 }
- id: lunch
title: "Lunch break"
schedule: { type: daily, time: "13:00" }