back to home

dschep / ntfy

🖥️📱🔔 A utility for sending notifications, on demand and when commands finish.

4,947 stars
216 forks
101 issues
PythonShell

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing dschep/ntfy in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/dschep/ntfy)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

About brings notification to your shell. It can automatically provide desktop notifications when long running commands finish or it can send push notifications to your phone when a specific command finishes. Confused? This video demonstrates some of this functionality: Quickstart Install The install technique in the quickstart is the suggested method of installation. It can be installed in a virtualenv, but with some caveats: Linux notifications require for the virtualenv and OS X notifications don\'t work at all. **:penguin: NOTE:** Linux Desktop Notifications require Python DBUS bindings. See here for more info. Shell integration has support for **automatically** sending notifications when long running commands finish in bash and zsh. In bash it emulates zsh\'s preexec and precmd functionality with rcaloras/bash-preexec. To enable it add the following to your or : By default it will only send notifications for commands lasting longer than 10 seconds and if the terminal is focused. Terminal focus works on X11(Linux) and with Terminal.app and iTerm2 on MacOS. Both options can be configured via the and options. To avoid unnecessary notifications when running interactive programs, programs listed in don\'t generate notifications. For example: Extras has a few features that require extra dependencies. : - requires installing as • emoji support requires installing as • XMPP support requires installing as • Telegram support requires installing as • Instapush support requires installing as • Slack support requires installing as • Slack Incoming webhook - simpler slack implementation that doesn\'t have additional dependencies • Rocket.Chat support requires installing as To install multiple extras, separate with commas: e.g., . Configuring is configured with a YAML file stored at or in standard platform specific locations: • Linux - • macOS - • Windows - Backends The backends key specifies what backends to use by default. Each backend has its own configuration, stored in a key of its own name. For example: If you want mulitple configs for the same backend type, you can specify any name and then specify the backend with a backend key. For example: See the backends below for available backends and options. As of v2.6.0 also supports 3rd party backends Pushover - Required parameters: : - Optional parameters: : - • - • - • - use your own application token • - target a device, if omitted, notification is sent to all devices • - • Pushbullet - Required parameter: : - - Your Pushbullet access token, created at Optional parameters: : - - a device identifier, if omited, notification is sent to all devices • - send notification to pushbullet user with the specified email or send an email if they aren\'t a pushullet user Simplepush - Required parameter: : - - Your Simplepush key, created by installing the Android App (no registration required) at Optional parameters: : - - sets ringtone and vibration pattern for incoming notifications (can be defined in the simplepush app) XMPP - Requires parameters: : - • - Optional parameters : - (if not from jid) • - • Requires extras, install like this: . To verify the SSL certificates offered by a server: path_to_certs = \"path/to/ca/cert\" Without dnspython library installed, you will need to specify the server hostname if it doesn\'t match the jid. Specify port if other than 5222. NOTE: Ignored without specified hostname NOTE: Google Hangouts doesn\'t support XMPP since 2017 Telegram - Requires extras, install like this: . Requires to be installed as . This backend is configured the first time you will try to use it: . Pushjet - Required parameter: : - - The Pushjet service secret token, created with Optional parameters: : - • custom Pushjet API endpoint : (defaults to ) • - The importance level from 1(low) to 5(high) • Notifico - Required parameter: : - • The webhook link, created at : (choose service when creating the webhook) Slack - Requires extras, install like this: . Required parameter: : - - The Slack service secret token, either a legacy user token created at or a token obtained by creating an app at with scope and linking it to a workspace. • - The Slack channel or user to send notifications to. If you use the symbol the message is send to a Slack channel and if you use the symbol the message is send to a Slack user. Slack Incoming Webhook - \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~ Required parameter: \* - the URL of the incoming webhook \* • The Slack channel or user to send notifications to Instapush - Requires extras, install like this . Instapush does not support notification title. It sends template-driven notifications, so you have to setup you events on the dashboard first. The backend is called insta due to homonymy with the instapush python wrapper Required parameters: : - - The application id • - The application secret • - The instapush event to be used • - The array of trakers to use Note on trackers: Trackers are placeholders for events (a sort of notification template). If you defined more than one tracker in your event you\'ll have to provide more messages. At the moment, the only way to do so is to separate each message with a colon (:) character. You can also escape the separator character: Example: Prowl - Optional parameters: : - • - • Linux Desktop Notifications - Works via [dbus]{.title-ref}, works with most DEs like Gnome, KDE, XFCE and with libnotify. The following dependecies should be installed. You will need to install some font that supports emojis (in Debian [fonts-symbola]{.title-ref} or Gentoo [media-fonts/symbola]{.title-ref}). Optional parameters: : - - Specifies path to the notification icon, empty string for no icon. • - Specifies the urgency level (low, normal, critical). • - Skip the history (exp: the Gnome message tray) (true, false). • - Specifies the notificatio…