pushover-desktop-client is a tool written in node.js to display Pushover
notifications on your desktop. It uses node-notifier electron with a custom GUI based on electron-toast, so it should work
with many different desktop notification providers on many different operating systems.
Prerequisites
This integrates with the Pushover service, which is a long-running lightweight notification service that has been around since ~2010.
You'll need a Pushover account with a paid "Pushover for Desktop" license attached to it. At the time of this writing, this involves a one-time fee of only $5.
See the official Pushover Open Client API documentation for full details.
The easiest way to try the desktop client is to run it straight from the cloned repository with npx:
npm install # install dependencies
npx . # launch the Electron app & first-run wizardOn the very first launch the Electron-based setup wizard will guide you through:
- Signing in to your Pushover account (2-factor supported)
- Registering a device name for this computer
The credentials are stored securely in ~/.config/pushover-dc/settings.json (or the appropriate XDG location) and subsequent launches skip the wizard.
After the initial run you can simply execute npx . again or use the provided npm script:
npm run pushoverThere's a handful of MCP servers that integrate with Pushover to send notifications from your IDE (or other MCP-compatible clients).
I use pushover-mcp, which (at the time of this writing) you can set up in Cursor by clicking "add new MCP server" and then adjusting the JSON you see there accordingly (as long as Node is installed and is set to a reasonable version, you shouldn't need to directly install any depedencies):
{
mcpServers: {
// [... potentially other MCP servers...]
pushover: {
command: "npx",
args: [
"-y",
"pushover-mcp@latest",
"start",
"--token",
// Get your API token from:
// https://pushover.net/apps/build
"your API token goes here",
"--user",
// Not your email!
// Get from the Pushover dashboard's front page
"your user id goes here",
],
},
// [... potentially other MCP servers...]
},
}The client honors a few environment variables if you need to script or containerise it:
PUSHOVER_DEVICE_ID– device idPUSHOVER_SECRET– user secretPUSHOVER_SETTINGS_PATH– full path to the settings JSON (overrides default XDG path)PUSHOVER_IMAGE_CACHE– directory for caching app icons
These variables are optional – the interactive wizard will obtain and save everything for you. Only set them when running the client in a non-interactive environment (e.g. a Docker container or a CI job).
After completing the wizard your device ID, user secret, and other preferences are saved to:
~/.config/pushover-dc/settings.json # Linux/macOS (XDG compliant)
%APPDATA%\pushover-dc\settings.json # Windows
You usually never need to look at or edit that file manually.