{"id":21898323,"url":"https://github.com/aetherinox/ntfy-desktop","last_synced_at":"2025-04-15T18:32:46.903Z","repository":{"id":247307439,"uuid":"825493559","full_name":"Aetherinox/ntfy-desktop","owner":"Aetherinox","description":"Ntfy.sh desktop client for Windows, Linux, and MacOS with push notifications. Supports official ntfy.sh website and self-hosted instances.","archived":false,"fork":false,"pushed_at":"2024-11-13T00:55:31.000Z","size":1677,"stargazers_count":17,"open_issues_count":9,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-09T13:03:00.526Z","etag":null,"topics":["electron","javascript","javascript-application","nodejs","nodejs-application","ntfy","ntfy-sh","ntfysh","push-notifications","self-hosted","self-hosting"],"latest_commit_sha":null,"homepage":"https://ntfy.sh/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aetherinox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","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-07T23:44:45.000Z","updated_at":"2025-02-04T20:22:42.000Z","dependencies_parsed_at":"2024-07-19T15:35:31.191Z","dependency_job_id":"6e816a5c-f51e-4213-a090-27b50510f6fa","html_url":"https://github.com/Aetherinox/ntfy-desktop","commit_stats":null,"previous_names":["aetherinox/ntfy-electron","aetherinox/ntfy-desktop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aetherinox%2Fntfy-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aetherinox%2Fntfy-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aetherinox%2Fntfy-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aetherinox%2Fntfy-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aetherinox","download_url":"https://codeload.github.com/Aetherinox/ntfy-desktop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249129157,"owners_count":21217294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["electron","javascript","javascript-application","nodejs","nodejs-application","ntfy","ntfy-sh","ntfysh","push-notifications","self-hosted","self-hosting"],"created_at":"2024-11-28T14:25:47.835Z","updated_at":"2025-04-15T18:32:46.882Z","avatar_url":"https://github.com/Aetherinox.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/aetherinox"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch6\u003eDesktop Client\u003c/h6\u003e\n\u003ch1\u003e♾️ ntfy-electron ♾️\u003c/h1\u003e\n\n\u003cbr /\u003e\n\n\u003cp\u003eA ntfy.sh desktop client built with Electron which supports Windows, Linux, and MacOSX. This client rests in your taskbar tray and allows you to receive push notifications to your desktop without requiring you to leave your browser open.\u003c/p\u003e\n\n\u003cp float=\"left\"\u003e\n  \u003cimg style=\"padding-right:15px;\" src=\"https://github.com/user-attachments/assets/b6a34bc3-dbbf-4249-b3d2-d113a21cca66\" width=\"300\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/4f842360-bc94-46eb-8660-17f221fe745d\" width=\"300\" /\u003e \n\u003c/p\u003e\n\n\u003cp float=\"left\"\u003e\n  \u003cimg style=\"padding-right:15px;\" src=\"https://github.com/user-attachments/assets/ebe0c02c-336f-4e95-b0f9-24c5b853f0e4\" width=\"300\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/31c0a712-f596-44b1-a30d-fdbe579d9df6\" width=\"300\" /\u003e \n\u003c/p\u003e\n\n\u003cp float=\"left\"\u003e\n  \u003cimg style=\"padding-right:15px;\" src=\"https://github.com/user-attachments/assets/ce32d901-b35b-48e5-85b5-3cf82ae09b1e\" width=\"300\" /\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/a04f6222-9a29-40c3-a2d2-82bd8f6f4c09\" width=\"300\" /\u003e \n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[![Version][github-version-img]][github-version-uri]\n[![Build Status][github-build-img]][github-build-uri]\n[![Downloads][github-downloads-img]][github-downloads-uri]\n[![Size][github-size-img]][github-size-img]\n[![Last Commit][github-commit-img]][github-commit-img]\n[![Contributors][contribs-all-img]](#contributors-)\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  - [ntfy](#ntfy)\n- [Features](#features)\n- [Key Binds](#key-binds)\n- [CLI Arguments](#cli-arguments)\n- [Build](#build)\n  - [Linux](#linux)\n  - [Windows](#windows)\n  - [Contributors ✨](#contributors-)\n\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# About\nThis project 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\n\u003cbr /\u003e\n\n## 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---\n\n\u003cbr /\u003e\n\n# Features\n- Usable with ntfy.sh and self-hosted instances\n- Two modes for minimizing app, configure in settings\n  1. Close button exits app completely, sits in taskbar and tray\n  2. Close button sends app to tray. Right-click tray icon to quit / show app\n- Shortcut keybinds\n  - Option to disable\n- Receive push notifications from ntfy server to desktop\n  - Advanced setting to adjust polling rate\n  - Datetime format setting\n  - Optional persistent notifications\n  - Topic filtering\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# Key Binds\nThe following keybinds can be used within ntfy-electron:\n\n\u003cbr /\u003e\n\n| Key(s) | Description |\n| --- | --- |\n| `CTRL + R` | Refresh page |\n| `CTRL + Q` | Quit application |\n| `CTRL + M` | Minimize to tray |\n| `CTRL + =` | Zoom in |\n| `CTRL + -` | Zoom out |\n| `CTRL + 0` | Zoom reset |\n| `CTRL + SHIFT + I` | Developer tools |\n| `F12` | Developer tools |\n| `CTRL + G` | Show General settings window |\n| `CTRL + U` | Show URL settings window |\n| `CTRL + T` | Show API Token settings window |\n| `CTRL + SHIFT + T` | Show Topics settings window |\n| `CTRL + N` | Show Notifications settings window |\n\n\u003cbr /\u003e\n\n\u003e [!NOTE]\n\u003e Hotkeys are disabled by default. To enable hotkeys, select **Configure** in the top menu, and select **General**.\n\u003e \n\u003e Enable `Allow usage of hotkeys to navigate`\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# CLI Arguments\nThis client \n\n\u003cbr /\u003e\n\n| Argument | Description | Available as setting |\n| --- | --- | --- |\n| `--hidden` | Start app hidden in tray, suitable for auto-starting on login/boot | ✅ |\n| `--hotkey` | Start app with hotkeys enabled | ✅ |\n| `--quit` | Top-right close button will completely exit app instead of minimize to tray | ✅ |\n| `--dev` | Start app with developer tools in `App` menu | ✅ |\n\n\u003cbr /\u003e\n\nIf you are running ntfy-electron from node, you can pass arguments using the following example:\n```shell ignore\nnpm run start -- --hidden\n```\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n# Build\nTo build this app, run the following commands:\n\n## Linux\n```shell\ngit clone https://github.com/xdpirate/ntfy-electron.git\nnpm install\nnpm install -g electron-packager\nsudo apt install wine64\nsudo ln -s /usr/bin/wine /usr/bin/wine64\n```\n\n\u003cbr /\u003e\n\n## Windows\nTo test development on a Windows machine, run the following commands.\nA build script for windows will be available later.\n\n```shell\ngit clone https://github.com/xdpirate/ntfy-electron.git\nnpm install\nnpm install -g electron\n```\n\n\u003cbr /\u003e\n\nOnce you have finished modifying the code, you can test the application with:\n```shell ignore\nnpm run start\n```\n\n\u003cbr /\u003e\n\nWhen you are ready to build, run the build script:\n```shell ignore\nsudo chmod +x build.sh\n./build.sh\n```\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## Contributors ✨\nWe are always looking for contributors. If you feel that you can provide something useful to Gistr, then we'd love to review your suggestion. Before submitting your contribution, please review the following resources:\n\n- [Pull Request Procedure](.github/PULL_REQUEST_TEMPLATE.md)\n- [Contributor Policy](CONTRIBUTING.md)\n\n\u003cbr /\u003e\n\nWant to help but can't write code?\n- Review [active questions by our community](https://github.com/xdpirate/ntfy-electron/labels/help%20wanted) and answer the ones you know.\n\n\u003cbr /\u003e\n\nThe following people have helped keep this project going:\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![Contributors][contribs-all-img]](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE: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\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\u003ca href=\"https://gitlab.com/Aetherinox\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1757462?v=4\u0026s=40\" width=\"80px;\" alt=\"xdpirate\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003exdpirate\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/xdpirate/ntfy-electron/commits?author=xdpirate\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-xdpirate\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\u003ca href=\"https://gitlab.com/Aetherinox\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/118329232?v=4?s=40\" width=\"80px;\" alt=\"Aetherinox\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAetherinox\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/xdpirate/ntfy-electron/commits?author=Aetherinox\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- BADGE \u003e GENERAL --\u003e\n  [general-npmjs-uri]: https://npmjs.com\n  [general-nodejs-uri]: https://nodejs.org\n  [general-npmtrends-uri]: http://npmtrends.com/ntfy-electron\n\n\u003c!-- BADGE \u003e VERSION \u003e GITHUB --\u003e\n  [github-version-img]: https://img.shields.io/github/v/tag/xdpirate/ntfy-electron?logo=GitHub\u0026label=Version\u0026color=ba5225\n  [github-version-uri]: https://github.com/xdpirate/ntfy-electron/releases\n\n\u003c!-- BADGE \u003e VERSION \u003e NPMJS --\u003e\n  [npm-version-img]: https://img.shields.io/npm/v/ntfy-electron?logo=npm\u0026label=Version\u0026color=ba5225\n  [npm-version-uri]: https://npmjs.com/package/ntfy-electron\n\n\u003c!-- BADGE \u003e VERSION \u003e PYPI --\u003e\n  [pypi-version-img]: https://img.shields.io/pypi/v/ntfy-electron-plugin\n  [pypi-version-uri]: https://pypi.org/project/ntfy-electron-plugin/\n\n\u003c!-- BADGE \u003e LICENSE \u003e MIT --\u003e\n  [license-mit-img]: https://img.shields.io/badge/MIT-FFF?logo=creativecommons\u0026logoColor=FFFFFF\u0026label=License\u0026color=9d29a0\n  [license-mit-uri]: https://github.com/xdpirate/ntfy-electron/blob/main/LICENSE\n\n\u003c!-- BADGE \u003e GITHUB \u003e DOWNLOAD COUNT --\u003e\n  [github-downloads-img]: https://img.shields.io/github/downloads/xdpirate/ntfy-electron/total?logo=github\u0026logoColor=FFFFFF\u0026label=Downloads\u0026color=376892\n  [github-downloads-uri]: https://github.com/xdpirate/ntfy-electron/releases\n\n\u003c!-- BADGE \u003e NPMJS \u003e DOWNLOAD COUNT --\u003e\n  [npmjs-downloads-img]: https://img.shields.io/npm/dw/%40aetherinox%2Fmkdocs-link-embeds?logo=npm\u0026\u0026label=Downloads\u0026color=376892\n  [npmjs-downloads-uri]: https://npmjs.com/package/ntfy-electron\n\n\u003c!-- BADGE \u003e GITHUB \u003e DOWNLOAD SIZE --\u003e\n  [github-size-img]: https://img.shields.io/github/repo-size/xdpirate/ntfy-electron?logo=github\u0026label=Size\u0026color=59702a\n  [github-size-uri]: https://github.com/xdpirate/ntfy-electron/releases\n\n\u003c!-- BADGE \u003e NPMJS \u003e DOWNLOAD SIZE --\u003e\n  [npmjs-size-img]: https://img.shields.io/npm/unpacked-size/ntfy-electron/latest?logo=npm\u0026label=Size\u0026color=59702a\n  [npmjs-size-uri]: https://npmjs.com/package/ntfy-electron\n\n\u003c!-- BADGE \u003e CODECOV \u003e COVERAGE --\u003e\n  [codecov-coverage-img]: https://img.shields.io/codecov/c/github/xdpirate/ntfy-electron?token=MPAVASGIOG\u0026logo=codecov\u0026logoColor=FFFFFF\u0026label=Coverage\u0026color=354b9e\n  [codecov-coverage-uri]: https://codecov.io/github/xdpirate/ntfy-electron\n\n\u003c!-- BADGE \u003e ALL CONTRIBUTORS --\u003e\n  [contribs-all-img]: https://img.shields.io/github/all-contributors/xdpirate/ntfy-electron?logo=contributorcovenant\u0026color=de1f6f\u0026label=contributors\n  [contribs-all-uri]: https://github.com/all-contributors/all-contributors\n\n\u003c!-- BADGE \u003e GITHUB \u003e BUILD \u003e NPM --\u003e\n  [github-build-img]: https://img.shields.io/github/actions/workflow/status/xdpirate/ntfy-electron/npm-release.yml?logo=github\u0026logoColor=FFFFFF\u0026label=Build\u0026color=%23278b30\n  [github-build-uri]: https://github.com/xdpirate/ntfy-electron/actions/workflows/npm-release.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e BUILD \u003e Pypi --\u003e\n  [github-build-pypi-img]: https://img.shields.io/github/actions/workflow/status/xdpirate/ntfy-electron/release-pypi.yml?logo=github\u0026logoColor=FFFFFF\u0026label=Build\u0026color=%23278b30\n  [github-build-pypi-uri]: https://github.com/xdpirate/ntfy-electron/actions/workflows/pypi-release.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e TESTS --\u003e\n  [github-tests-img]: https://img.shields.io/github/actions/workflow/status/xdpirate/ntfy-electron/npm-tests.yml?logo=github\u0026label=Tests\u0026color=2c6488\n  [github-tests-uri]: https://github.com/xdpirate/ntfy-electron/actions/workflows/npm-tests.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e COMMIT --\u003e\n  [github-commit-img]: https://img.shields.io/github/last-commit/xdpirate/ntfy-electron?logo=conventionalcommits\u0026logoColor=FFFFFF\u0026label=Last%20Commit\u0026color=313131\n  [github-commit-uri]: https://github.com/xdpirate/ntfy-electron/commits/main/\n\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- markdownlint-restore --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faetherinox%2Fntfy-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faetherinox%2Fntfy-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faetherinox%2Fntfy-desktop/lists"}