xyzlab/ omarchy plugins

xyzlab / xyzlab.pigeon

Pigeon

Pigeon keeps a live subscription open to ntfy.sh or your own server and turns every message into an Omarchy toast and an entry in a themed inbox with topic tabs, search, actions, attachments and a compose box.

v0.1.4servicebar-widgetInfoMIT
Pigeon in the current theme

Screenshots

In Tokyo Night. Press T for the next theme.

What it does

Your ntfy inbox, in the bar.

Always connected

One JSON stream per subscription with automatic reconnect, a keepalive watchdog and catch-up after sleep. Inbox and read state survive shell restarts.

Any server

ntfy.sh or your own instance behind a reverse proxy. Anonymous, access token, or username and password.

Native toasts

Every message becomes an Omarchy toast with its emoji tag and ntfy priority mapped to urgency. Messages that arrive together become one toast.

A proper inbox

Topic tabs, search, unread dots, expand in place, image preview, view and http actions, open link, copy, delete, mark read or unread, mute and reconnect.

Compose

Publish from the panel with a topic picker, title and priority. Your own messages arrive already read and never toast.

Keyboard first

j and k move, h and l switch topics, o opens the link, c composes, / searches. The bar pill follows the theme and works in any section.

Scriptable

Status, publish, mute, clear and reload over omarchy-shell IPC.

Sensible limits

Oversized lines are dropped, publisher http actions are off until you allow them, and a topic with no auth is treated as the public address it is.

Install

Add it to the bar.

omarchy plugin add https://github.com/chr0nzz/omarchy-pigeon.git --enable
omarchy bar set xyzlab.pigeon server https://ntfy.example.com
omarchy bar set xyzlab.pigeon topics alerts,home

Update later with omarchy plugin update xyzlab.pigeon. Remove with omarchy plugin remove xyzlab.pigeon.

Needs

Requirements

  • Omarchy 4 shell
  • curl, jq and wl-copy, shipped with Omarchy
  • pw-play or aplay for the optional chime

Keyboard

Hands stay on the keys.

KeysAction
j / k, arrowsMove the cursor
h / lSwitch topic tab
Enter, eExpand or collapse, marks the message read
oOpen the message's click link
aOpen the attachment
1 2 3Run the matching ntfy action
yCopy the message
d, x, DeleteDelete the message
uMark all read in the current tab
mMute or unmute toasts
cCompose. Enter sends, Esc closes
/Search
sSettings editor
rReload the backfill window
EscClose

Settings

Set from the bar, or the CLI.

Every key below is a bar widget setting. Change it from the Omarchy bar settings, from the plugin's own settings editor, or with omarchy bar set xyzlab.pigeon <key> <value>.

KeyPurpose
serverBase URL of the ntfy server
topicsComma separated topic names
authnone, token or basic
tokenAccess token for auth = token
username / passwordCredentials for auth = basic
toastsDesktop toasts for new messages
soundA short chime with each toast
toastMinPriorityLowest priority that produces a toast, 1 to 5
backfillHistory to load for a new topic: all, 12h, 3d or none
maxMessagesMessages kept in the inbox
allowHttpActionsLet publisher defined http actions run
showCountUnread count next to the glyph
glyphReplace the pigeon with your own glyph

Scripting

Talk to it from a script.

Every plugin registers an IPC target with the shell, so a keybinding, a hook or a cron job can drive it.

omarchy-shell pigeon status
omarchy-shell pigeon publish alerts "Title" "Message"
omarchy-shell pigeon mute 3600
omarchy-shell pigeon reload
omarchy-shell shell toggle xyzlab.pigeon '{}'