Subscribe to ntfy.sh topics from inside VS Code and get every published message as a native editor notification (popup).
Features
- Native side panels — a dedicated ntfy.sh container in the Activity Bar (themes automatically with VS Code) with two independently collapsible panels. The Subscriptions panel shows every topic with a live status icon, message count, and a native checkbox to enable/disable a topic (pause its connection) without unsubscribing.
- Notification history — the Notifications panel lists past notifications (persisted across restarts) with topic, time, and a rich tooltip; clicking an item opens its link/attachment or shows the message. Clear it from the panel header.
- Subscribe to any number of topics — add topics from the panel or the Command Palette.
- Live push notifications — messages published to your topics pop up as VS Code notifications in real time.
- Priority aware — high‑priority messages (4–5) show as warning/error popups; normal messages show as info popups; low‑priority messages can optionally be routed to the status bar instead.
- Clickable actions — if a message includes a
clicklink or an attachment, an Open Link / Open Attachment button is added to the popup. - Auto‑reconnect — each topic streams over the ntfy JSON endpoint and reconnects automatically with exponential backoff if the connection drops.
- Self‑hosted servers & auth — point it at your own ntfy server and supply an access token for protected topics.
- Publish test messages — send a quick message to any topic to verify the setup.
Getting started
-
Open this folder in VS Code and press F5 to launch the Extension Development Host (or package it with
vsce packageand install the.vsix). -
Click the bell icon in the Activity Bar to open the ntfy.sh view.
-
Click + Subscribe to a topic (or run ntfy: Subscribe to Topic from the Command Palette) and enter a topic name, e.g.
my-alerts. -
Publish a message to that topic from anywhere, for example:
curl -d "Build finished " ntfy.sh/my-alerts…and it pops up inside VS Code.
You can also test end‑to‑end without leaving the editor via ntfy: Publish Test Message.
Commands
| Command | Description |
|---|---|
ntfy: Subscribe to Topic |
Subscribe to a new topic. |
ntfy: Unsubscribe from Topic |
Pick a topic to unsubscribe from. |
ntfy: Reconnect All Topics |
Force‑reconnect every subscription. |
ntfy: Publish Test Message |
Send a message to a topic. |
ntfy: Clear Notification History |
Empty the notification history. |
The view also offers a per‑topic enable/disable checkbox plus inline reconnect and unsubscribe actions.
Settings
| Setting | Default | Description |
|---|---|---|
ntfysh.server |
https://ntfy.sh |
Base URL of the ntfy server. |
ntfysh.topics |
[] |
Subscribed topics (managed by the commands). |
ntfysh.disabledTopics |
[] |
Subscribed topics that are toggled off. |
ntfysh.token |
"" |
Optional Bearer access token for protected topics. |
ntfysh.notifyOnConnect |
false |
Notify each time a topic connects. |
ntfysh.showLowPriorityAsStatusBar |
false |
Show priority 1–2 messages in the status bar instead of as popups. |
How it works
For each enabled topic the extension opens a streaming GET request to
<server>/<topic>/json, which returns newline‑delimited JSON. Each message
event is parsed and turned into a vscode.window.show*Message notification and
recorded in history. Connection state per topic is shown live in the native
Subscriptions tree, and the total notification count is shown as a badge on
the Activity Bar icon.
Development
npm install
npm run compile # or: npm run watch
Press F5 to run the extension in a new VS Code window.
License
MIT