{"id":21898338,"url":"https://github.com/aetherinox/ntfy-toast","last_synced_at":"2026-01-29T15:34:29.037Z","repository":{"id":247712719,"uuid":"826619823","full_name":"aetherinox/ntfy-toast","owner":"aetherinox","description":"Notification system forked from SnoreToast which is utilized in applications such as KeeWeb and ntfy-desktop.","archived":false,"fork":false,"pushed_at":"2025-06-22T05:42:19.000Z","size":279,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T06:29:22.509Z","etag":null,"topics":["keepweb","node-notification","node-notifier","notifications","ntfy","ntfy-desktop","ntfy-gui","ntfy-sh","ntfy-toast","ntfysh","push-notifications","snoretoast","toast"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aetherinox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING.LGPL-3","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://buymeacoffee.com/aetherinox"],"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null}},"created_at":"2024-07-10T04:07:26.000Z","updated_at":"2025-06-22T05:41:29.000Z","dependencies_parsed_at":"2024-07-10T07:34:19.025Z","dependency_job_id":"a2826f4c-e314-44e2-8435-6becfe44c535","html_url":"https://github.com/aetherinox/ntfy-toast","commit_stats":null,"previous_names":["aetherinox/ntfy-toast"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aetherinox/ntfy-toast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aetherinox%2Fntfy-toast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aetherinox%2Fntfy-toast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aetherinox%2Fntfy-toast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aetherinox%2Fntfy-toast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aetherinox","download_url":"https://codeload.github.com/aetherinox/ntfy-toast/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aetherinox%2Fntfy-toast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28880257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keepweb","node-notification","node-notifier","notifications","ntfy","ntfy-desktop","ntfy-gui","ntfy-sh","ntfy-toast","ntfysh","push-notifications","snoretoast","toast"],"created_at":"2024-11-28T14:26:03.923Z","updated_at":"2026-01-29T15:34:29.016Z","avatar_url":"https://github.com/aetherinox.png","language":"C++","funding_links":["https://buymeacoffee.com/aetherinox"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003e♾️ NtfyToast ♾️\u003c/h1\u003e\n\u003cbr /\u003e\n\n\u003cp\u003e\n\nNtfyToast is a forked verison of [SnoreToast](https://github.com/KDE/snoretoast) which has been modified to fit a certain list of criteria, including notifications that do not time out.\n\n\u003cbr /\u003e\n\nThis library is packaged with [ntfy-desktop](https://github.com/Aetherinox/ntfy-desktop)\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003cimg src=\"https://github.com/Aetherinox/ntfy-desktop/assets/118329232/cd7dca36-e0cc-43dc-a4c9-c09e084b3cd0\" width=\"630\"\u003e\n\n\u003cbr /\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[![Version][badge-version-gh]][link-version-gh] [![Build Status][badge-build]][link-build] [![Downloads][badge-downloads-gh]][link-downloads-gh] [![Size][badge-size-gh]][badge-size-gh] [![Last Commit][badge-commit]][badge-commit]\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n- [About](#about)\n  - [What is ntfy?](#what-is-ntfy)\n  - [What is ntfy-desktop](#what-is-ntfy-desktop)\n  - [What is ntfy-toast](#what-is-ntfy-toast)\n- [Features](#features)\n- [Usage](#usage)\n- [CLI Arguments](#cli-arguments)\n  - [Customizing App Name](#customizing-app-name)\n    - [Create App Shortcut](#create-app-shortcut)\n    - [Call App](#call-app)\n- [Build](#build)\n\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# About\nNtfyToast is a command line application capable of creating Windows Toast notifications on Windows 8 or later.  This app is part of a family of applications called `Ntfy` or Notify.\n\n\u003cbr /\u003e\n\n\n## What is ntfy?\n[ntfy.sh](https://ntfy/) (pronounced \"notify\") is a simple HTTP-based pub-sub notification service. With ntfy, you can send notifications to your phone or desktop via scripts from any computer, without having to sign up or pay any fees. If you'd like to run your own instance of the service, you can easily do so since ntfy is open source.\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![View](https://img.shields.io/badge/%20-%20View%20Project%20Repo-%20%23de2343?style=for-the-badge\u0026logo=github\u0026logoColor=FFFFFF)](https://github.com/binwiederhier/ntfy)\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n## What is ntfy-desktop\n[NtfyDesktop](https://github.com/Aetherinox/ntfy-desktop) allows you to access the official free / paid notification service [ntfy.sh](https://ntfy.sh/), or your own self-hosted version of ntfy from within a desktop application which utilizes Electron as the wrapper.\n\nThis version of ntfy-desktop is based on the package ntfy-electron created by xdpirate, however, this version brings some changes in functionality, as well as some additional edits that I personally needed.\n\n\u003cdiv align=\"center\"\u003e\n\n[![View](https://img.shields.io/badge/%20-%20View%20Project%20Repo-%20%23de2343?style=for-the-badge\u0026logo=github\u0026logoColor=FFFFFF)](https://github.com/Aetherinox/ntfy-desktop)\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n## What is ntfy-toast\n[NtfyToast](https://github.com/Aetherinox/ntfy-toast) _(the app in this repo)_ is a notification system for Windows 10/11 which is used within [ntfy-desktop](https://github.com/Aetherinox/ntfy-desktop) to display notifications for users.\n\nIt is based on [SnoreToast](https://github.com/KDE/snoretoast), but has been updated with numerous features.\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# Features\n- Single binary file which works with x32 and x64 bit operating systems\n- New `-persistent` option which allows a notification to stay on a user's screen indefinitely until the user closes it.\n- Many small bug fixes\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# Usage\nWhen using the command-line to show notifications, you can push a notification by opening Command Prompt and running:\n\n```shell\ncd X:\\path\\to\\ntfytoast\n```\n\n\u003cbr /\u003e\n\nThen push a notification with:\n```shell ignore\nntfytoast.exe -t \"Title\" -m \"Message\"\n```\n\n\u003cbr /\u003e\n\nTo make a notification stay on screen until the user dismisses it, add `-persistent`.\n```shell ignore\nntfytoast.exe -t \"Title\" -m \"Message\" -persistent\n```\n\n\u003cbr /\u003e\n\nTo make a notifiation stay on-screen for `25 seconds`, use `-d long`\n```shell ignore\nntfytoast.exe -t \"Title\" -m \"Message\" -d long\n```\n\n\u003cbr /\u003e\n\nTo make a notifiation stay on-screen for `7 seconds`, use `-d short`\n```shell ignore\nntfytoast.exe -t \"Title\" -m \"Message\" -d short\n```\n\n\u003cbr /\u003e\n\nOther available options are listed below within the section [CLI Arguments](#cli-arguments).\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# CLI Arguments\n\n| Argument | Type | Description |\n| --- | --- | --- |\n| `-t` | `\u003ctitle string\u003e` | Title / first line of text in notification |\n| `-m` | `\u003cmessage string\u003e` | Message displayed in notification |\n| `-b` | `\u003cbtn1;btn2 string\u003e` | Buttons \u003cbr /\u003e List multiple buttons separated by `;` |\n| `-tb` |  | Textbox on the bottom line, only if buttons are not specified |\n| `-p` | `\u003cimage URI\u003e` | Picture / image, local files only |\n| `-id` | `\u003cid\u003e` | sets id for a notification to be able to close it later |\n| `-s` | `\u003csound URI\u003e` | Sound when notification opened \u003cbr /\u003e\u003cbr /\u003e [Possible options](http://msdn.microsoft.com/en-us/library/windows/apps/hh761492.aspx) |\n| `-silent` |  | Disable playing sound when notification appears |\n| `-persistent` |  | Force notification to stay on screen |\n| `-d` | `short, long` | How long a notification stays on screen. \u003cbr /\u003e\u003cbr /\u003e Only works if `-persistent` not specified. \u003cbr /\u003e\u003cbr /\u003e Can only pick two options: \u003cbr /\u003e- `short` (7 seconds) \u003cbr /\u003e - `long` (25 seconds) |\n| `-appID` | `\u003cApp.ID\u003e` | Don't create a shortcut but use the provided app id |\n| `-pid` | `\u003cpid\u003e` | Query the appid for the process \u003cpid\u003e, use -appID as fallback. (Only relevant for applications that might be packaged for the store |\n| `-pipeName` | `\u003c\\.\\pipe\\pipeName\\\u003e` | Name pipe which is used for callbacks |\n| `-application` | `\u003cC:\\foo\\bar.exe\u003e` | App to start if the pipe does not exist |\n| `-close` | `\u003cid\u003e` | Close an existing notification |\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## Customizing App Name\nWindows Toast notifications will show the name of the application calling the notification at the top of each popup. Out-of-box, the application name will be NtfyToast.\n\nIf you wish to brand notifications with your own application name, then there are a few steps you must complete.\n\n\u003cbr /\u003e\n\n### Create App Shortcut\nYou must create a windows shortcut (.lnk) within your windows Start Menu. This is a requirement by Microsoft.\n\nNtfyToast includes a command which will help you create the shortcut link automatically. To do this, open Command Prompt and run the command:\n\n```shell\nntfytoast.exe -install \"MyApp\\MyApp.lnk\" \"C:\\path\\to\\myApp.exe\" \"My.APP_ID\"\n```\n\n\u003cbr /\u003e\n\n| Argument | Description |\n| --- | --- |\n| `\"MyApp\\MyApp.lnk\"` | Where the lnk shortcut will be placed.  \u003cbr /\u003e \u003cbr /\u003e `C:\\Users\\USER\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\MyApp\\MyApp.lnk` |\n| `\"C:\\path\\to\\myApp.exe\"` | Path to the executable you want to show the name for at the top of notifications |\n| `\"My.APP_ID\"` | Your .exe app id |\n\n\u003cbr /\u003e\n\nTo get the appID for the application you want to use, you can open Powershell and run the command:\n\n```powershell\nget-StartApps | Where-Object {$_.Name -like '*YourAppName*'}\n```\n\n\u003cbr /\u003e\n\nIn our example, we can run\n```powershell\nget-StartApps | Where-Object {$_.Name -like '*Ntfytoast*'}\n```\n\n\u003cbr /\u003e\n\nWhich returns the following:\n```console\nName      AppID\n----      -----\nntfytoast com.ntfytoast.id\n```\n\n\u003cbr /\u003e\n\nThis means that if I wanted to use NtfyToast as the app which sends notifications, my final command would be:\n\n```\nntfytoast.exe -install \"Ntfytoast\\Ntfytoast.lnk\" \"C:\\path\\to\\ntfytoast.exe\" \"com.ntfytoast.id\"\n```\n\n\u003cbr /\u003e\n\nWhen the `.lnk` is created, it will be placed in:\n```\nC:\\Users\\USER\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\n```\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/Aetherinox/ntfy-toast/assets/118329232/ea9da9f3-4c8c-4fe5-9714-d4e83901f301\" width=\"380px\"\u003e\n\n\u003c/div\u003e\n\n\n\u003cbr /\u003e\n\n### Call App\nNow that you have your app shortcut created, you can simply call the app every time you want to send a notification using `-appID`. Remember to use your own app's id.\n\n```\nntfytoast.exe -t \"Notification\" -m \"This is a test message\" -appID \"com.ntfytoast.id\"\n```\n\n\u003cbr /\u003e\n\nIf you do not specify `-appID \u003cyour.app.id\u003e`, then NtfyToast will be used as the default.\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# Build\nThese instructions are only for people who wish to make changes to the NtfyToast source code / commit changes to the repo via pull requests. If you have no interest in editing the source code, then you can skip this section.\n\n\u003cbr /\u003e\n\nThe easiest way to build this package is to download the source and place it somewhere on your system. Then install Visual Studio and launch the application. \n\nGo to **File** -\u003e **Open** -\u003e **Folder**.\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/Aetherinox/ntfy-desktop/assets/118329232/9f91613f-5104-4c30-a623-5ea632a12ed9\" width=\"630\"\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nSelect the folder where you downloaded NtfyToast and open it. After a few moments, a few new folders will be created in your project directory:\n\n- 📁 .vs\n- 📁 out\n\n\u003cbr /\u003e\n\nYou can now start writing your code. Once you are finished, you need to build the application in Visual Studio.\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/Aetherinox/ntfy-desktop/assets/118329232/4a045304-7296-4488-8317-b72772aa97fb\" width=\"330\"\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nYour binary will be built and placed inside:\n- `project-folder/out/build/x64-Debug/bin/ntfytoast.exe`\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- BADGE \u003e GENERAL --\u003e\n[link-general-npm]: https://npmjs.com\n[link-general-nodejs]: https://nodejs.org\n[link-npmtrends]: http://npmtrends.com/ntfy-toast\n\u003c!-- BADGE \u003e VERSION \u003e GITHUB --\u003e\n[badge-version-gh]: https://img.shields.io/github/v/tag/Aetherinox/ntfy-toast?logo=GitHub\u0026label=Version\u0026color=ba5225\n[link-version-gh]: https://github.com/Aetherinox/ntfy-toast/releases\n\u003c!-- BADGE \u003e VERSION \u003e NPMJS --\u003e\n[badge-version-npm]: https://img.shields.io/npm/v/ntfy-toast?logo=npm\u0026label=Version\u0026color=ba5225\n[link-version-npm]: https://npmjs.com/package/ntfy-toast\n\u003c!-- BADGE \u003e LICENSE --\u003e\n[badge-license-mit]: https://img.shields.io/badge/MIT-FFF?logo=creativecommons\u0026logoColor=FFFFFF\u0026label=License\u0026color=9d29a0\n[link-license-mit]: https://github.com/Aetherinox/ntfy-toast/blob/main/LICENSE\n\u003c!-- BADGE \u003e BUILD --\u003e\n[badge-build]: https://img.shields.io/github/actions/workflow/status/Aetherinox/ntfy-toast/release-npm.yml?logo=github\u0026logoColor=FFFFFF\u0026label=Build\u0026color=%23278b30\n[link-build]: https://github.com/Aetherinox/ntfy-toast/actions/workflows/release-npm.yml\n\u003c!-- BADGE \u003e DOWNLOAD COUNT --\u003e\n[badge-downloads-gh]: https://img.shields.io/github/downloads/Aetherinox/ntfy-toast/total?logo=github\u0026logoColor=FFFFFF\u0026label=Downloads\u0026color=376892\n[link-downloads-gh]: https://github.com/Aetherinox/ntfy-toast/releases\n[badge-downloads-npm]: https://img.shields.io/npm/dw/%40aetherinox%2Fmarked-alert-fa?logo=npm\u0026\u0026label=Downloads\u0026color=376892\n[link-downloads-npm]: https://npmjs.com/package/ntfy-toast\n\u003c!-- BADGE \u003e DOWNLOAD SIZE --\u003e\n[badge-size-gh]: https://img.shields.io/github/repo-size/Aetherinox/ntfy-toast?logo=github\u0026label=Size\u0026color=59702a\n[link-size-gh]: https://github.com/Aetherinox/ntfy-toast/releases\n[badge-size-npm]: https://img.shields.io/npm/unpacked-size/ntfy-toast/latest?logo=npm\u0026label=Size\u0026color=59702a\n[link-size-npm]: https://npmjs.com/package/ntfy-toast\n\u003c!-- BADGE \u003e COVERAGE --\u003e\n[badge-coverage]: https://img.shields.io/codecov/c/github/Aetherinox/ntfy-toast?token=MPAVASGIOG\u0026logo=codecov\u0026logoColor=FFFFFF\u0026label=Coverage\u0026color=354b9e\n[link-coverage]: https://codecov.io/github/Aetherinox/ntfy-toast\n\u003c!-- BADGE \u003e ALL CONTRIBUTORS --\u003e\n[badge-all-contributors]: https://img.shields.io/github/all-contributors/Aetherinox/ntfy-toast?logo=contributorcovenant\u0026color=de1f6f\u0026label=contributors\n[link-all-contributors]: https://github.com/all-contributors/all-contributors\n[badge-tests]: https://img.shields.io/github/actions/workflow/status/Aetherinox/marked-alert-fa/npm-tests.yml?logo=github\u0026label=Tests\u0026color=2c6488\n[link-tests]: https://github.com/Aetherinox/ntfy-toast/actions/workflows/tests.yml\n[badge-commit]: https://img.shields.io/github/last-commit/Aetherinox/ntfy-toast?logo=conventionalcommits\u0026logoColor=FFFFFF\u0026label=Last%20Commit\u0026color=313131\n[link-commit]: https://github.com/Aetherinox/ntfy-toast/commits/main/\n\u003c!-- prettier-ignore-end --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faetherinox%2Fntfy-toast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faetherinox%2Fntfy-toast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faetherinox%2Fntfy-toast/lists"}