[GH-ISSUE #112] Desktop client (Windows/Mac/Linux) #92

Closed
opened 2026-05-07 00:19:48 +02:00 by BreizhHardware · 50 comments

Originally created by @12nick12 on GitHub (Jan 20, 2022).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/112

Hi, I would love a Windows client with push support

Originally created by @12nick12 on GitHub (Jan 20, 2022). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/112 Hi, I would love a Windows client with push support
BreizhHardware 2026-05-07 00:19:48 +02:00
Author
Owner

@thefeiter commented on GitHub (Jan 20, 2022):

This should be doable with python. Maybe not as a final solution, but afaik there is a library for python to send notifications on Windows.

<!-- gh-comment-id:1017163420 --> @thefeiter commented on GitHub (Jan 20, 2022): This should be doable with python. Maybe not as a final solution, but afaik there is a library for python to send notifications on Windows.
Author
Owner

@binwiederhier commented on GitHub (Jan 20, 2022):

Is this client supposed to send notifications or receive them? If it's the former, i can probably just compile the CLI for Windows.

Can you be a little more specific?

<!-- gh-comment-id:1017444762 --> @binwiederhier commented on GitHub (Jan 20, 2022): Is this client supposed to send notifications or receive them? If it's the former, i can probably just compile the CLI for Windows. Can you be a little more specific?
Author
Owner

@12nick12 commented on GitHub (Jan 22, 2022):

receive notifications and send them via push on the Windows client.

<!-- gh-comment-id:1019032655 --> @12nick12 commented on GitHub (Jan 22, 2022): receive notifications and send them via push on the Windows client.
Author
Owner

@SMAW commented on GitHub (May 5, 2022):

Maybe a tutorial like this can help?
Or using electron at all

https://jojozhuang.github.io/tutorial/converting-web-app-to-desktop-app-with-electron/

<!-- gh-comment-id:1118485931 --> @SMAW commented on GitHub (May 5, 2022): Maybe a tutorial like this can help? Or using electron at all https://jojozhuang.github.io/tutorial/converting-web-app-to-desktop-app-with-electron/
Author
Owner

@c33s commented on GitHub (May 5, 2022):

i would love to subscribe to topics via a windows client. shouldn't it be possible to compile go for windows?

<!-- gh-comment-id:1119103265 --> @c33s commented on GitHub (May 5, 2022): i would love to subscribe to topics via a windows client. shouldn't it be possible to compile go for windows?
Author
Owner

@binwiederhier commented on GitHub (May 5, 2022):

There are two things:

  • The CLI (excluding the server) can likely be easily compiled for Windows and Mac, then you can subscribe like described here https://ntfy.sh/docs/subscribe/cli/
  • The web app (like this one: https://ntfy.sh/app) can be packaged into a desktop app as well, using electron or others. I played with this today and it's absolutely doable.

Q: Which one would take precedent for you guys?

<!-- gh-comment-id:1119107769 --> @binwiederhier commented on GitHub (May 5, 2022): There are two things: * The CLI (excluding the server) can likely be easily compiled for Windows and Mac, then you can subscribe like described here https://ntfy.sh/docs/subscribe/cli/ * The web app (like this one: https://ntfy.sh/app) can be packaged into a desktop app as well, using electron or others. I played with this today and it's absolutely doable. Q: Which one would take precedent for you guys?
Author
Owner

@binwiederhier commented on GitHub (May 6, 2022):

Note to self, also maybe look at https://github.com/tauri-apps/tauri, thanks @Laurenz (Matrix).

<!-- gh-comment-id:1119161271 --> @binwiederhier commented on GitHub (May 6, 2022): Note to self, also maybe look at https://github.com/tauri-apps/tauri, thanks `@Laurenz` (Matrix).
Author
Owner

@binwiederhier commented on GitHub (May 6, 2022):

(from this afternoon, WIP which does not work: https://github.com/binwiederhier/ntfy/pull/239)

<!-- gh-comment-id:1119169514 --> @binwiederhier commented on GitHub (May 6, 2022): (from this afternoon, WIP which does not work: https://github.com/binwiederhier/ntfy/pull/239)
Author
Owner

@arminus commented on GitHub (May 8, 2022):

Regarding the above question: What I'm looking for is an unobtrusive/low footprint systray thingy which tells me about new messages (I frequently forget to keep an ntfy browser tab open, yeah I know, can be pinned...).

Low footprint is kind of an issue with Electron, also not sure how well it would integrate with the systray and windows notification "requirement", so what I did yesterday was to prototype a small WPF app. I'm neither a .NET/WPF nor a C# expert so I'm not sure how far I will get with reasonable effort and energy but here goes a first proof of concept:

NtfyWindowsClient

There's plenty of things still to do, but the basics are there. The major thing at this point is really that I display the messages in a WebView2 component (for lack of WPF experience on how hot to make such a list look nice w/o HTML) and that defeats the entire purpose of keeping a low memory footprint. Maybe I'll just dump the messages into a RichTextBox instead. Also need to figure out how to browse from there to the system default browser and not Edge... etc. etc.

So... I'll probably be back in a while with this...

<!-- gh-comment-id:1120387337 --> @arminus commented on GitHub (May 8, 2022): Regarding the above question: What I'm looking for is an unobtrusive/low footprint systray thingy which tells me about new messages (I frequently forget to keep an ntfy browser tab open, yeah I know, can be pinned...). Low footprint is kind of an issue with Electron, also not sure how well it would integrate with the systray and windows notification "requirement", so what I did yesterday was to prototype a small WPF app. I'm neither a .NET/WPF nor a C# expert so I'm not sure how far I will get with reasonable effort and energy but here goes a first proof of concept: ![NtfyWindowsClient](https://user-images.githubusercontent.com/683680/167290752-4be6bf10-b3dc-4812-a16f-492fef07f7c6.png) There's plenty of things still to do, but the basics are there. The major thing at this point is really that I display the messages in a WebView2 component (for lack of WPF experience on how hot to make such a list look nice w/o HTML) and that defeats the entire purpose of keeping a low memory footprint. Maybe I'll just dump the messages into a RichTextBox instead. Also need to figure out how to browse from there to the system default browser and not Edge... etc. etc. So... I'll probably be back in a while with this...
Author
Owner

@binwiederhier commented on GitHub (May 8, 2022):

@arminus very cool. Keep it up. I would absolutely love to have a low memory footprint app like that, but having to build the web app, Android app, and iOS app all by myself I eont have time for more. So if you can bring this to a great state I'll happily accept the contribution!

I think I'll definitely do the CLI for Windows and the Electron desktop app for all platforms, because it is fairly low effort compared to writing it from scratch. It's just fighting with a little bit of build stuff.

<!-- gh-comment-id:1120421661 --> @binwiederhier commented on GitHub (May 8, 2022): @arminus very cool. Keep it up. I would absolutely love to have a low memory footprint app like that, but having to build the web app, Android app, and iOS app all by myself I eont have time for more. So if you can bring this to a great state I'll happily accept the contribution! I think I'll definitely do the CLI for Windows and the Electron desktop app for all platforms, because it is fairly low effort compared to writing it from scratch. It's just fighting with a little bit of build stuff.
Author
Owner

@c33s commented on GitHub (May 8, 2022):

i would also look for a low profile app which sits in the tray and simply fetches notifications.

i thought about doing a simple cron job which calls a bash/php script to fetch new notifications and then use notifu to show them via the OS notification system but this would be an ugly hack

<!-- gh-comment-id:1120430670 --> @c33s commented on GitHub (May 8, 2022): i would also look for a low profile app which sits in the tray and simply fetches notifications. i thought about doing a simple cron job which calls a bash/php script to fetch new notifications and then use [notifu][1] to show them via the OS notification system but this would be an ugly hack [1]: https://www.paralint.com/projects/notifu/
Author
Owner

@binwiederhier commented on GitHub (May 8, 2022):

The CLI can do that https://ntfy.sh/docs/subscribe/cli/#subscribe-to-topics, though it doesn't sit in the tray. I suppose I could add tray support to that, but what for...

This will likely be really easy because I just have to compile for Windows.

<!-- gh-comment-id:1120430986 --> @binwiederhier commented on GitHub (May 8, 2022): The CLI can do that https://ntfy.sh/docs/subscribe/cli/#subscribe-to-topics, though it doesn't sit in the tray. I suppose I could add tray support to that, but what for... This will likely be really easy because I just have to compile for Windows.
Author
Owner

@c33s commented on GitHub (May 8, 2022):

@binwiederhier thank you for this awesome app and service, i really like it.

would be awesome to have a windows version of the cli tool and being able to open it in background and send it directly to the tray.

my current php based solution (just download and setup notifu and adapt the constants to fit your needs):

ntfy.php

<?php

const TOPIC = 'test';
//const PROXY = 'proxy.example.com:8080';
const PROXY = null;
const LOGFILE = 'ntfy.log';
//const LOGFILE = null;
const NOTIFU_COMMAND = 'notifu';

$opts = [];
if (PROXY) {
    $opts= ['http' => ['proxy' => 'tcp://'.PROXY]];
}
$context = stream_context_create($opts);
$fp = fopen('https://ntfy.sh/'.TOPIC.'/json', 'rb', false, $context);
if (!$fp) {
    exit('cannot open stream');
}
while (!feof($fp)) {
    $json = fgets($fp, 2048);
    $data = json_decode($json, true);
    if (LOGFILE) {
        file_put_contents(LOGFILE, $json."\n" , FILE_APPEND | LOCK_EX);
    }
    if ($data['event'] === 'message') {
        $command = sprintf('%s /p "%s" /m "%s"',
            NOTIFU_COMMAND,
            $data['topic'],
            $data['message']
        );
        exec($command);
    }
    flush();
}
fclose($fp);

start it with

start /B php ntfy.php

stop/kill it with the task manager

grüße aus wien / greetings from vienna

<!-- gh-comment-id:1120437489 --> @c33s commented on GitHub (May 8, 2022): @binwiederhier thank you for this awesome app and service, i really like it. would be awesome to have a windows version of the cli tool and being able to open it in background and send it directly to the tray. my current php based solution (just download and setup [notifu][1] and adapt the constants to fit your needs): `ntfy.php` ```php <?php const TOPIC = 'test'; //const PROXY = 'proxy.example.com:8080'; const PROXY = null; const LOGFILE = 'ntfy.log'; //const LOGFILE = null; const NOTIFU_COMMAND = 'notifu'; $opts = []; if (PROXY) { $opts= ['http' => ['proxy' => 'tcp://'.PROXY]]; } $context = stream_context_create($opts); $fp = fopen('https://ntfy.sh/'.TOPIC.'/json', 'rb', false, $context); if (!$fp) { exit('cannot open stream'); } while (!feof($fp)) { $json = fgets($fp, 2048); $data = json_decode($json, true); if (LOGFILE) { file_put_contents(LOGFILE, $json."\n" , FILE_APPEND | LOCK_EX); } if ($data['event'] === 'message') { $command = sprintf('%s /p "%s" /m "%s"', NOTIFU_COMMAND, $data['topic'], $data['message'] ); exec($command); } flush(); } fclose($fp); ``` start it with ``` start /B php ntfy.php ``` stop/kill it with the task manager grüße aus wien / greetings from vienna [1]: https://www.paralint.com/projects/notifu/
Author
Owner

@binwiederhier commented on GitHub (May 9, 2022):

Well that was easy. Needs a little bit of work to make the "run a command on message" stuff work, but not more than an hour or so.

220509 11-00-40 Selection 001

220509 11-00-53 Selection 001

image

<!-- gh-comment-id:1121219798 --> @binwiederhier commented on GitHub (May 9, 2022): Well that was easy. Needs a little bit of work to make the "run a command on message" stuff work, but not more than an hour or so. ![220509 11-00-40 Selection 001](https://user-images.githubusercontent.com/664597/167438782-e363571f-14a0-469a-a70a-b34d87e80f7b.png) ![220509 11-00-53 Selection 001](https://user-images.githubusercontent.com/664597/167438789-06ae447d-b65a-472a-aee8-db363e37dd54.png) ![image](https://user-images.githubusercontent.com/664597/167438896-e359e14f-1f3e-41bb-84a7-b5999d7ec570.png)
Author
Owner

@binwiederhier commented on GitHub (May 9, 2022):

https://github.com/binwiederhier/ntfy/pull/245

<!-- gh-comment-id:1121221171 --> @binwiederhier commented on GitHub (May 9, 2022): https://github.com/binwiederhier/ntfy/pull/245
Author
Owner

@binwiederhier commented on GitHub (May 9, 2022):

So I got it running batch scripts via cmd /Q /C ... and it works nicely. What I'm unsure about is whether people would want PowerShell scripts instead. If there are no responses, I'll keep the cmd route.

(Note to self, run PS: https://gist.github.com/coolbrg/d1854cc771025efb4a30197820c2c612)

<!-- gh-comment-id:1121379049 --> @binwiederhier commented on GitHub (May 9, 2022): So I got it running batch scripts via `cmd /Q /C ...` and it works nicely. What I'm unsure about is whether people would want PowerShell scripts instead. If there are no responses, I'll keep the `cmd` route. (Note to self, run PS: https://gist.github.com/coolbrg/d1854cc771025efb4a30197820c2c612)
Author
Owner

@SMAW commented on GitHub (May 9, 2022):

Good work @binwiederhier !!

What I wanted to do and like to have is a PowerShell script, and when it receives something I get a toaster message (there is an module for that)

https://www.powershellgallery.com/packages/BurntToast/0.8.5 (1.0 is in preview)

https://www.youtube.com/watch?v=dfbe5Jp40tA (for maybe some extra info)

<!-- gh-comment-id:1121395349 --> @SMAW commented on GitHub (May 9, 2022): Good work @binwiederhier !! What I wanted to do and like to have is a PowerShell script, and when it receives something I get a toaster message (there is an module for that) https://www.powershellgallery.com/packages/BurntToast/0.8.5 (1.0 is in preview) https://www.youtube.com/watch?v=dfbe5Jp40tA (for maybe some extra info)
Author
Owner

@binwiederhier commented on GitHub (May 9, 2022):

I achieved the same thing with this simple batch script and notifu.

notifu /p "%NTFY_TITLE%" /m "%NTFY_MESSAGE%"
exit 0

Mainly I want to know if PS is really necessary. My gut says no, right now.

220509 14-14-33 Selection 001

<!-- gh-comment-id:1121418487 --> @binwiederhier commented on GitHub (May 9, 2022): I achieved the same thing with this simple batch script and [notifu](https://www.paralint.com/projects/notifu/). ``` notifu /p "%NTFY_TITLE%" /m "%NTFY_MESSAGE%" exit 0 ``` Mainly I want to know if PS is really necessary. My gut says no, right now. ![220509 14-14-33 Selection 001](https://user-images.githubusercontent.com/664597/167471758-f8712503-7950-4c3c-9ad1-8126e4a589f8.png)
Author
Owner

@binwiederhier commented on GitHub (May 9, 2022):

📢 Request for testing:

Got the yaml to work too, even with launching the calculator. Darn I wanted to do iOS, now I gotta finish and release this :-D
I think I'll just release the CLI like this for now though. If you wanna test it here it is: https://phil.nopaste.net/ntfy.exe?d=1&f=ntfy.exe&a=yKVxKcfQVc

The docs from https://ntfy.sh/docs/subscribe/cli/ largely apply.

This can be placed in %AppData%\ntfy\client.yml and then you can run ntfy sub --from-config to listen:

subscribe:
- topic: echo-this
  command: 'echo Message received: %message%'
- topic: alerts
  command: |
    notifu /m "%NTFY_MESSAGE%"
    exit 0
  if:
    priority: high,urgent
- topic: calc
  command: calc
<!-- gh-comment-id:1121549965 --> @binwiederhier commented on GitHub (May 9, 2022): :loudspeaker: **Request for testing:** Got the yaml to work too, even with launching the calculator. Darn I wanted to do iOS, now I gotta finish and release this :-D I think I'll just release the CLI like this for now though. If you wanna test it here it is: https://phil.nopaste.net/ntfy.exe?d=1&f=ntfy.exe&a=yKVxKcfQVc The docs from https://ntfy.sh/docs/subscribe/cli/ largely apply. This can be placed in `%AppData%\ntfy\client.yml` and then you can run `ntfy sub --from-config` to listen: ``` subscribe: - topic: echo-this command: 'echo Message received: %message%' - topic: alerts command: | notifu /m "%NTFY_MESSAGE%" exit 0 if: priority: high,urgent - topic: calc command: calc ```
Author
Owner

@c33s commented on GitHub (May 9, 2022):

awesome! will give it a try this week.

i personally prefer cmd over powershell.

<!-- gh-comment-id:1121571655 --> @c33s commented on GitHub (May 9, 2022): awesome! will give it a try this week. i personally prefer `cmd` over `powershell`.
Author
Owner

@binwiederhier commented on GitHub (May 11, 2022):

I've now got a Windows binary for amd64 and a macOS universal binary. The PR for it is pretty complete and I'll likely release this very soon. The documentation doesn't really highlight the support for macOS and Windows, but I think I want to keep it that way until I've got the Electron apps too.

https://github.com/binwiederhier/ntfy/pull/245/files

macOS https://phil.nopaste.net/X7FB6NaLWw?d=1&f=ntfy_v1.22.0-next_macOS_all.tar.gz&a=RKxf7O6Q7H

Windows https://phil.nopaste.net/cJEaaFmM7V?d=1&f=ntfy_v1.22.0-next_windows_x86_64.zip&a=zkczYLcVoD

<!-- gh-comment-id:1123106697 --> @binwiederhier commented on GitHub (May 11, 2022): I've now got a Windows binary for amd64 and a macOS universal binary. The PR for it is pretty complete and I'll likely release this very soon. The documentation doesn't really highlight the support for macOS and Windows, but I think I want to keep it that way until I've got the Electron apps too. https://github.com/binwiederhier/ntfy/pull/245/files **macOS** https://phil.nopaste.net/X7FB6NaLWw?d=1&f=ntfy_v1.22.0-next_macOS_all.tar.gz&a=RKxf7O6Q7H **Windows** https://phil.nopaste.net/cJEaaFmM7V?d=1&f=ntfy_v1.22.0-next_windows_x86_64.zip&a=zkczYLcVoD
Author
Owner

@arminus commented on GitHub (May 29, 2022):

FYI - I'm about to release an alpha version of my .NET/WPF client in about 2 weeks, it's basically ready, but I won't have much time to respond to issues until then, so I'll hold it for a while.

Memory consumption currently clocks in at about 60-70MB which is unfortunately a lot more than I had hoped for (most likely due to the .NET runtime), would be curious to see how that compares to an Electron based version. And currently it only listens, i.e. no sending of messages since that is not my main priority from Windows.

<!-- gh-comment-id:1140465934 --> @arminus commented on GitHub (May 29, 2022): FYI - I'm about to release an alpha version of my .NET/WPF client in about 2 weeks, it's basically ready, but I won't have much time to respond to issues until then, so I'll hold it for a while. Memory consumption currently clocks in at about 60-70MB which is unfortunately a lot more than I had hoped for (most likely due to the .NET runtime), would be curious to see how that compares to an Electron based version. And currently it only listens, i.e. no sending of messages since that is not my main priority from Windows.
Author
Owner

@binwiederhier commented on GitHub (May 29, 2022):

Very cool. I'd be happy to make a section in the docs or install instructions for third party clients like this. Is the code open source and available somewhere?

The CLI for Windows and macOS are released so you can compare it to that, but the Electron app I've shelved for s bit.

<!-- gh-comment-id:1140478277 --> @binwiederhier commented on GitHub (May 29, 2022): Very cool. I'd be happy to make a section in the docs or install instructions for third party clients like this. Is the code open source and available somewhere? The CLI for Windows and macOS are released so you can compare it to that, but the Electron app I've shelved for s bit.
Author
Owner

@arminus commented on GitHub (May 29, 2022):

It'll be on my github and open source, probably MIT licensed.

<!-- gh-comment-id:1140494994 --> @arminus commented on GitHub (May 29, 2022): It'll be on my github and open source, probably MIT licensed.
Author
Owner

@arminus commented on GitHub (Aug 6, 2022):

It's been a while and I'm afraid I have made no progress. The main issue is that the trade off between less memory consumption vs. effort required to implement something without an existing .NET HTML UI library (which are either memory hogs or have functional deficiencies) didn't quite work out in a way that I'm really happy.

Maybe I'll revisit this sometime in fall, but I'm not sure... Mostly just used ntfy in the browser UI in the last weeks.

<!-- gh-comment-id:1207238287 --> @arminus commented on GitHub (Aug 6, 2022): It's been a while and I'm afraid I have made no progress. The main issue is that the trade off between less memory consumption vs. effort required to implement something without an existing .NET HTML UI library (which are either memory hogs or have functional deficiencies) didn't quite work out in a way that I'm really happy. Maybe I'll revisit this sometime in fall, but I'm not sure... Mostly just used ntfy in the browser UI in the last weeks.
Author
Owner

@code-kungfu commented on GitHub (Jan 4, 2023):

Hello @binwiederhier

A couple of great Delphi developers wrote a nice wrapper for the API.
(https://github.com/hazzelnuts/ntfy-for-delphi)

Seeing this issue got me excited as I can help out!

Would you be willing to accept a Delphi FireMonkey multi platform application contribution - With source, of course (It is true native compiled applications for each target - Windows, macOS, Android, iOS and Linux, from a single code base) - This will allow a low memory footprint desktop app which integrates tightly into the target OS (Lower than both C# .NET and Electron - No external dependencies needs to be packaged)?
FireMonkey is a mature and stable multi platform framework.

There is a free community edition available of Delphi so anyone who want to use the code can do so right away 🙂

Kind regards
Glenn

<!-- gh-comment-id:1371531467 --> @code-kungfu commented on GitHub (Jan 4, 2023): Hello @binwiederhier A couple of great Delphi developers wrote a nice wrapper for the API. (https://github.com/hazzelnuts/ntfy-for-delphi) Seeing this issue got me excited as I can help out! Would you be willing to accept a Delphi FireMonkey multi platform application contribution - With source, of course (It is true native compiled applications for each target - Windows, macOS, Android, iOS and Linux, from a single code base) - This will allow a low memory footprint desktop app which integrates tightly into the target OS (Lower than both C# .NET and Electron - No external dependencies needs to be packaged)? FireMonkey is a mature and stable multi platform framework. There is a free community edition available of Delphi so anyone who want to use the code can do so right away 🙂 Kind regards Glenn
Author
Owner

@SMAW commented on GitHub (Jan 5, 2023):

Hello @binwiederhier

A couple of great Delphi developers wrote a nice wrapper for the API. (https://github.com/hazzelnuts/ntfy-for-delphi)

Seeing this issue got me excited as I can help out!

Would you be willing to accept a Delphi FireMokey multi platform application contribution - With source, of course (It is true native compiled applications for each target - Windows, macOS, Android, iOS and Linux, from a single code base) - This will allow a low memory footprint desktop app which integrates tightly into the target OS (Lower than both C# .NET and Electron - No external dependencies needs to be packaged)? FireMonkey is a mature and stable multi platform framework.

There is a free community edition available of Delphi so anyone who want to use the code can do so right away 🙂

Kind regards Glenn

Looking for this! but also no custom server and topics with credentials as far as I see?

<!-- gh-comment-id:1371899123 --> @SMAW commented on GitHub (Jan 5, 2023): > Hello @binwiederhier > > A couple of great Delphi developers wrote a nice wrapper for the API. (https://github.com/hazzelnuts/ntfy-for-delphi) > > Seeing this issue got me excited as I can help out! > > Would you be willing to accept a Delphi FireMokey multi platform application contribution - With source, of course (It is true native compiled applications for each target - Windows, macOS, Android, iOS and Linux, from a single code base) - This will allow a low memory footprint desktop app which integrates tightly into the target OS (Lower than both C# .NET and Electron - No external dependencies needs to be packaged)? FireMonkey is a mature and stable multi platform framework. > > There is a free community edition available of Delphi so anyone who want to use the code can do so right away 🙂 > > Kind regards Glenn Looking for this! but also no custom server and topics with credentials as far as I see?
Author
Owner

@code-kungfu commented on GitHub (Jan 5, 2023):

but also no custom server and topics with credentials as far as I see?

The wrapper is quite new, these features will be added next and thus in a demo application 🙂

<!-- gh-comment-id:1371986808 --> @code-kungfu commented on GitHub (Jan 5, 2023): > but also no custom server and topics with credentials as far as I see? The wrapper is quite new, these features will be added next and thus in a demo application 🙂
Author
Owner

@SMAW commented on GitHub (Jan 5, 2023):

but also no custom server and topics with credentials as far as I see?
The wrapper is quite new, these features will be added next and thus in a demo application 🙂

As far as I can see now I really like it! also that there is an real application like this : https://github.com/hazzelnuts/ntfy-for-delphi/tree/main/sample/vcl/subscriber and then a notification when a message received... I would be very happy to see this running on my machine

<!-- gh-comment-id:1371992150 --> @SMAW commented on GitHub (Jan 5, 2023): > > but also no custom server and topics with credentials as far as I see? > > The wrapper is quite new, these features will be added next and thus in a demo application 🙂 As far as I can see now I really like it! also that there is an real application like this : https://github.com/hazzelnuts/ntfy-for-delphi/tree/main/sample/vcl/subscriber and then a notification when a message received... I would be very happy to see this running on my machine
Author
Owner

@code-kungfu commented on GitHub (Jan 5, 2023):

also that there is an real application like this

Yes, the wrapper library ships with a simple, Windows-only (for now) demo.

and then a notification when a message received

Adding support for desktop notifications are straightforward.
The developers behind the wrapper are working on extending the library further, and also eliminating the need for OpenSSL dependencies.
I'll keep this thread updated once I know more 🙂

<!-- gh-comment-id:1372005540 --> @code-kungfu commented on GitHub (Jan 5, 2023): > also that there is an real application like this Yes, the wrapper library ships with a simple, Windows-only (for now) demo. > and then a notification when a message received Adding support for desktop notifications are straightforward. The developers behind the wrapper are working on extending the library further, and also eliminating the need for OpenSSL dependencies. I'll keep this thread updated once I know more 🙂
Author
Owner

@p-samuel commented on GitHub (Jan 5, 2023):

@SMAW, I'll provide a zip folder with the binaries for you just to have a demo. Maybe I can post today. It's a plug and play. Just run the executables and it's done. I'm currently working to remove the OpenSSL dependecy so that the binaries works without needing them.

@code-kungfu , thank you for informing the library in this issue.

<!-- gh-comment-id:1372106153 --> @p-samuel commented on GitHub (Jan 5, 2023): @SMAW, I'll provide a zip folder with the binaries for you just to have a demo. Maybe I can post today. It's a plug and play. Just run the executables and it's done. I'm currently working to remove the OpenSSL dependecy so that the binaries works without needing them. @code-kungfu , thank you for informing the library in this issue.
Author
Owner

@SMAW commented on GitHub (Jan 5, 2023):

@p-samuel
Would love to, but as said I have an private server with authentication on all topics... So think it won't work?

<!-- gh-comment-id:1372114196 --> @SMAW commented on GitHub (Jan 5, 2023): @p-samuel Would love to, but as said I have an private server with authentication on all topics... So think it won't work?
Author
Owner

@p-samuel commented on GitHub (Jan 5, 2023):

It works just fine. You only need to provide the credentials and the server host on the library. I'll add this fields in the main form's window so you can play with it.

<!-- gh-comment-id:1372116764 --> @p-samuel commented on GitHub (Jan 5, 2023): It works just fine. You only need to provide the credentials and the server host on the library. I'll add this fields in the main form's window so you can play with it.
Author
Owner

@p-samuel commented on GitHub (Jan 5, 2023):

It also works fine with multiple topics

<!-- gh-comment-id:1372117036 --> @p-samuel commented on GitHub (Jan 5, 2023): It also works fine with multiple topics
Author
Owner

@SMAW commented on GitHub (Jan 5, 2023):

Yeah would love to see the library, or can compile myself (even better if it isn't hard to do :) because of next versions) you can reach me on my mailadres in my profile!

<!-- gh-comment-id:1372120102 --> @SMAW commented on GitHub (Jan 5, 2023): Yeah would love to see the library, or can compile myself (even better if it isn't hard to do :) because of next versions) you can reach me on my mailadres in my profile!
Author
Owner

@code-kungfu commented on GitHub (Jan 5, 2023):

I'll provide a zip folder with the binaries for you just to have a demo.

Maybe it would be an idea to put the compiled demo under the release section of the Delphi wrapper library @p-samuel?
Then it is readily available for anyone to test 🙂

or can compile myself (even better if it isn't hard to do :)

I can write up a quick guide on how to build the library and demo application with the free Delphi Community Edition if you'd like @SMAW?

<!-- gh-comment-id:1372162554 --> @code-kungfu commented on GitHub (Jan 5, 2023): > I'll provide a zip folder with the binaries for you just to have a demo. Maybe it would be an idea to put the compiled demo under the release section of the Delphi wrapper library @p-samuel? Then it is readily available for anyone to test 🙂 > or can compile myself (even better if it isn't hard to do :) I can write up a quick guide on how to build the library and demo application with the free Delphi Community Edition if you'd like @SMAW?
Author
Owner

@p-samuel commented on GitHub (Jan 5, 2023):

@code-kungfu, alright! Good idea. I'll move to do it. Thank you again glenn.

<!-- gh-comment-id:1372164707 --> @p-samuel commented on GitHub (Jan 5, 2023): @code-kungfu, alright! Good idea. I'll move to do it. Thank you again glenn.
Author
Owner

@SMAW commented on GitHub (Jan 5, 2023):

I'll provide a zip folder with the binaries for you just to have a demo.

Maybe it would be an idea to put the compiled demo under the release section of the Delphi wrapper library @p-samuel? Then it is readily available for anyone to test 🙂

or can compile myself (even better if it isn't hard to do :)

I an write up a quick guide on how to build the library and demo application with the free Delphi Community Edition if you'd like @SMAW?

@code-kungfu
Yeah would love that.....

<!-- gh-comment-id:1372172284 --> @SMAW commented on GitHub (Jan 5, 2023): > > I'll provide a zip folder with the binaries for you just to have a demo. > > Maybe it would be an idea to put the compiled demo under the release section of the Delphi wrapper library @p-samuel? Then it is readily available for anyone to test 🙂 > > > or can compile myself (even better if it isn't hard to do :) > > I an write up a quick guide on how to build the library and demo application with the free Delphi Community Edition if you'd like @SMAW? @code-kungfu Yeah would love that.....
Author
Owner

@bravery-only commented on GitHub (Jan 8, 2023):

Regarding the above question: What I'm looking for is an unobtrusive/low footprint systray thingy which tells me about new messages (I frequently forget to keep an ntfy browser tab open, yeah I know, can be pinned...).

Low footprint is kind of an issue with Electron, also not sure how well it would integrate with the systray and windows notification "requirement", so what I did yesterday was to prototype a small WPF app. I'm neither a .NET/WPF nor a C# expert so I'm not sure how far I will get with reasonable effort and energy but here goes a first proof of concept:

NtfyWindowsClient

There's plenty of things still to do, but the basics are there. The major thing at this point is really that I display the messages in a WebView2 component (for lack of WPF experience on how hot to make such a list look nice w/o HTML) and that defeats the entire purpose of keeping a low memory footprint. Maybe I'll just dump the messages into a RichTextBox instead. Also need to figure out how to browse from there to the system default browser and not Edge... etc. etc.

So... I'll probably be back in a while with this...

Can you share it so that everyone can use it?

<!-- gh-comment-id:1374928244 --> @bravery-only commented on GitHub (Jan 8, 2023): > Regarding the above question: What I'm looking for is an unobtrusive/low footprint systray thingy which tells me about new messages (I frequently forget to keep an ntfy browser tab open, yeah I know, can be pinned...). > > Low footprint is kind of an issue with Electron, also not sure how well it would integrate with the systray and windows notification "requirement", so what I did yesterday was to prototype a small WPF app. I'm neither a .NET/WPF nor a C# expert so I'm not sure how far I will get with reasonable effort and energy but here goes a first proof of concept: > > ![NtfyWindowsClient](https://user-images.githubusercontent.com/683680/167290752-4be6bf10-b3dc-4812-a16f-492fef07f7c6.png) > > There's plenty of things still to do, but the basics are there. The major thing at this point is really that I display the messages in a WebView2 component (for lack of WPF experience on how hot to make such a list look nice w/o HTML) and that defeats the entire purpose of keeping a low memory footprint. Maybe I'll just dump the messages into a RichTextBox instead. Also need to figure out how to browse from there to the system default browser and not Edge... etc. etc. > > So... I'll probably be back in a while with this... Can you share it so that everyone can use it?
Author
Owner

@binwiederhier commented on GitHub (Jan 8, 2023):

Check out the projects listed here: https://docs.ntfy.sh/integrations/

<!-- gh-comment-id:1374931933 --> @binwiederhier commented on GitHub (Jan 8, 2023): Check out the projects listed here: https://docs.ntfy.sh/integrations/
Author
Owner

@p-samuel commented on GitHub (Jan 9, 2023):

@SMAW, and participants

As promised, a new release was made with credentials and other functionalities.

Regards

https://github.com/hazzelnuts/ntfy-for-delphi/releases/tag/v1.0.1

<!-- gh-comment-id:1374979019 --> @p-samuel commented on GitHub (Jan 9, 2023): @SMAW, and participants As promised, a new release was made with credentials and other functionalities. Regards https://github.com/hazzelnuts/ntfy-for-delphi/releases/tag/v1.0.1
Author
Owner

@xdpirate commented on GitHub (Apr 28, 2023):

I made a simple electron wrapper around the web app - it might be of interest to some of you:

https://github.com/xdpirate/ntfy-electron

<!-- gh-comment-id:1527822987 --> @xdpirate commented on GitHub (Apr 28, 2023): I made a simple electron wrapper around the web app - it might be of interest to some of you: https://github.com/xdpirate/ntfy-electron
Author
Owner

@arminus commented on GitHub (May 12, 2023):

Update from my side: I've revisited this but more from a "manual push" perspective (in my quest to find a self-hosted pushbullet replacement).

So I've added send/push capability to my WPF C# client, still undecided what to do with the subscription listener part and message display. It's still in, but lately, I've come to just using a sticky tab and the web client for incoming messages on my Windows box since the "always running" requirement for a WPF C# subscriber client met some constraints regarding low memory footprint vs. HTML rendering and issues with hibernation/restart so I didn't feel confident to share that.

Long story short, my impression is that the receiver/subscription side is handled pretty well in the "ntfy eco system" but the sender side is mostly geared for automated/scripted senders, less for manual pushers (-> "pushbullet scenario").

So if there's interest, I'll probably remove the less stable subscription part in the WPF client and just release the sender part - which is of course a less capable duplication of the push function in the web client - so, huh. But: At least startup is fast ;-) (also compared to other approaches like electron or other multiplatform frameworks, briefly played around with the python client lib and some python UI libs)

Side note: The other kind of manual push client is my attempt over in https://github.com/binwiederhier/ntfy/issues/98

<!-- gh-comment-id:1545258054 --> @arminus commented on GitHub (May 12, 2023): Update from my side: I've revisited this but more from a "manual push" perspective (in my quest to find a self-hosted pushbullet replacement). So I've added send/push capability to my WPF C# client, still undecided what to do with the subscription listener part and message display. It's still in, but lately, I've come to just using a sticky tab and the web client for incoming messages on my Windows box since the "always running" requirement for a WPF C# subscriber client met some constraints regarding low memory footprint vs. HTML rendering and issues with hibernation/restart so I didn't feel confident to share that. Long story short, my impression is that the receiver/subscription side is handled pretty well in the "ntfy eco system" but the sender side is mostly geared for automated/scripted senders, less for manual pushers (-> "pushbullet scenario"). So if there's interest, I'll probably remove the less stable subscription part in the WPF client and just release the sender part - which is of course a less capable duplication of the push function in the web client - so, huh. But: At least startup is fast ;-) (also compared to other approaches like electron or other multiplatform frameworks, briefly played around with the python client lib and some python UI libs) Side note: The other kind of manual push client is my attempt over in https://github.com/binwiederhier/ntfy/issues/98
Author
Owner

@nimbleghost commented on GitHub (May 29, 2023):

Related: Implementing web push in #751 (related #346, #199) involved implementing a web manifest that enables an installable desktop app (PWA) using Chrome/Edge, and installable mobile app using Chrome Android/Safari iOS. This probably covers some cases but not all described here.

<!-- gh-comment-id:1567466104 --> @nimbleghost commented on GitHub (May 29, 2023): Related: Implementing web push in #751 (related #346, #199) involved implementing a web manifest that enables an installable desktop app (PWA) using Chrome/Edge, and installable mobile app using Chrome Android/Safari iOS. This probably covers _some_ cases but not all described here.
Author
Owner

@nimbleghost commented on GitHub (Jun 28, 2023):

Look here for the desktop PWA: https://docs.ntfy.sh/subscribe/pwa/

<!-- gh-comment-id:1612000543 --> @nimbleghost commented on GitHub (Jun 28, 2023): Look here for the desktop PWA: https://docs.ntfy.sh/subscribe/pwa/
Author
Owner

@binwiederhier commented on GitHub (Jun 28, 2023):

I don't think there is a reason anymore to do a separate desktop app for ntfy, so I'm going to close this, I think.

<!-- gh-comment-id:1612021738 --> @binwiederhier commented on GitHub (Jun 28, 2023): I don't think there is a reason anymore to do a separate desktop app for ntfy, so I'm going to close this, I think.
Author
Owner

@code-kungfu commented on GitHub (Jun 28, 2023):

@binwiederhier I think it is important with a fully native compiled application besides a PWA and would kindly ask you to reconsider opening this issue or add the native compiled example from @p-samuel to the docs section.

<!-- gh-comment-id:1612056089 --> @code-kungfu commented on GitHub (Jun 28, 2023): @binwiederhier I think it is important with a fully native compiled application besides a PWA and would kindly ask you to reconsider opening this issue or add the native compiled example from @p-samuel to the docs section.
Author
Owner

@binwiederhier commented on GitHub (Jun 29, 2023):

@code-kungfu I am happy to re-open it, but I do not personally intend to work on a desktop app any time soon. I view the ntfy issues as a TODO list for myself and/or contributors, and if I don't intend to do something then I it makes no sense to have a ticket for it.

As for the native compiled app, where do you want me to add it? All the known third-party apps already are listed in the integrations page.

<!-- gh-comment-id:1612261826 --> @binwiederhier commented on GitHub (Jun 29, 2023): @code-kungfu I am happy to re-open it, but I do not personally intend to work on a desktop app any time soon. I view the ntfy issues as a TODO list for myself and/or contributors, and if I don't intend to do something then I it makes no sense to have a ticket for it. As for the native compiled app, where do you want me to add it? All the known third-party apps already are listed in the integrations page.
Author
Owner

@ThinkSalat commented on GitHub (Jul 31, 2023):

I made a simple electron wrapper around the web app - it might be of interest to some of you:

https://github.com/xdpirate/ntfy-electron

Very nice thank you. It doesn't show any notifications though, is there something I have to do get desktop notifications?

<!-- gh-comment-id:1658924479 --> @ThinkSalat commented on GitHub (Jul 31, 2023): > I made a simple electron wrapper around the web app - it might be of interest to some of you: > > https://github.com/xdpirate/ntfy-electron Very nice thank you. It doesn't show any notifications though, is there something I have to do get desktop notifications?
Author
Owner

@Aetherinox commented on GitHub (Jun 26, 2025):

I also have Ntfy Desktop https://github.com/Aetherinox/ntfy-desktop

It includes windows push notifications, as well as Linux and MacOS with support for multiple APIs to show them properly.

<!-- gh-comment-id:3008896809 --> @Aetherinox commented on GitHub (Jun 26, 2025): I also have Ntfy Desktop https://github.com/Aetherinox/ntfy-desktop It includes windows push notifications, as well as Linux and MacOS with support for multiple APIs to show them properly.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#92
No description provided.