desktop-notifier
Python library for cross-platform desktop notifications
What it is and what it does
Desktop-notifier is a Python library that sends native desktop notifications across Linux, macOS, Windows, and iOS using each platform's native notification API. It wraps dbus on Linux, the Notification Center framework on macOS and iOS, and WinRT on Windows, presenting a unified async interface.
The library supports advanced features where the platform allows: clickable notifications with user callbacks, multiple action buttons, reply fields for inline responses, notification sounds, thread grouping, and limiting notification center capacity. Any unsupported feature on a given platform is silently ignored rather than raising an exception, allowing code to degrade gracefully. The main API is async-only, requiring a running event loop for callback execution—on macOS this typically means integrating with CFRunLoop via rubicon-objc.
Use it for:
- Alert users to application events (file downloads, background task completion) without blocking the main thread.
- Build interactive notifications with action buttons and reply fields for chat or messaging applications.
- Integrate notifications into cross-platform desktop applications that need to work on Linux, macOS, and Windows.
- Implement notification sounds and urgency levels for time-sensitive alerts.
- Group related notifications by thread to reduce notification center clutter.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Sends cross-platform desktop notifications from Python with support for callbacks, action buttons, reply fields, and sounds on Linux, macOS, Windows, and iOS.
Yes. The package is actively maintained, has no known vulnerabilities, carries a permissive MIT license, and offers low install friction. It is well-suited for any Python application needing cross-platform desktop notifications. The main consideration is platform-specific setup: macOS requires a signed Python executable, and event loop integration may require additional configuration for GUI apps.
Install
desktop-notifier on PyPI
pip
pip install desktop-notifieruv
uv add desktop-notifierpoetry
poetry add desktop-notifierInstalling desktop-notifier
Before you install
Low install friction with a pure-Python wheel. Maintenance is active with a recent commit on 2026-06-24. The package carries platform-specific runtime dependencies (dbus-fast on Linux, rubicon-objc on macOS, WinRT bindings on Windows) that are resolved automatically but may require system libraries on some platforms.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects.
Quickstart
pip install desktop-notifier
import asyncio
from desktop_notifier import DesktopNotifier
notifier = DesktopNotifier()
async def main():
await notifier.send(title="Hello", message="Test notification")
asyncio.run(main())
Requires Python 3.9 or later. On macOS 10.14+, the Python executable must be signed for notifications to work. Event loop integration may require additional setup on macOS (rubicon-objc CFRunLoop) or Gnome (gbulb).
Verify before relying
- Whether platform-specific system libraries (e.g., D-Bus on Linux) are automatically available or require manual installation.
- Behavior and compatibility with sandboxed or containerized Python environments.
- Whether unsupported notification features silently fail consistently across all platforms.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 11 — bidict, packaging, typing-extensions, dbus-fast, rubicon-objc, winrt-runtime, winrt-windows.applicationmodel.core, winrt-windows.data.xml.dom, winrt-windows.foundation, winrt-windows.foundation.collections, winrt-windows.ui.notifications |
| Maintenance | actively maintained — 371 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 114,310/month — #12,307 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: desktop_notifier-6.2.0-py3-none-any.whl
Keywords: desktop-notifier, notifications, Notification Center, push notifications, Toast notifications
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
notify_pySends cross-platform desktop notifications from…
permissive · top 15,000 on PyPI
notify2notify2 creates and displays desktop…
permissive · top 15,000 on PyPI
pystrayPystray creates a system tray icon with an…
copyleft · top 5,000 on PyPI
pyobjc-framework-UserNotificationsProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
dbus-nextA pure-Python DBus library for Linux desktop…
permissive · top 15,000 on PyPI
pyobjc-framework-NotificationCenterProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
Farama-NotificationsProvides a notification system that Farama…
permissive · top 5,000 on PyPI
pyobjc-framework-UserNotificationsUIProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
appriseApprise sends notifications to dozens of…
permissive · top 5,000 on PyPI
plyerPlyer provides a platform-independent Python…
permissive · top 15,000 on PyPI