skillfed

desktop-notifier

Python library for cross-platform desktop notifications

desktop-notifier v6.2.0 114.3K downloads/30d#12,307 on PyPI153
Permissive license MIT Active released

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-notifier

uv

uv add desktop-notifier

poetry

poetry add desktop-notifier

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: CommunicationsTopic :: Desktop EnvironmentTopic :: Desktop Environment :: GnomeTopic :: Desktop Environment :: K Desktop Environment (KDE)Topic :: Software Development :: Libraries :: Python Modules

Tags

desktop notifications pythoncross-platform notification librarysystem tray notificationsnotification center integrationasync desktop alertsnotification callbacksplatform-agnostic notifications
async-firstcross-platformdesktop-integration

More Python Modules packages