12 ms·
Signald: Unofficial daemon for interacting with Signal
- cookguyruffles 5y agoIt is a little frivolous, but "signaldctl" is the most horridly awkward naming for the command line tool. The letters "ctl" are in a terrible location on the keyboard for smooth typing, but ignoring that, it doesn't even fit in typical naming where "signald" would have a "signalctl" binary to control it Of course you can't really use "signal" because that's the name of the official product, but it still feels like there are better alternatives than the handful that was chosen (Apologies for pulling a HN classic and being the only comment on the thread complaining about something dumb. At least it wasn't a comment on the web page type face!)
- finnn 5y agosignald author here, open to suggestions on that name. As you've noticed, I try to avoid using the word "signal". I do agree that the current name is pretty awkward. edit: the name for signaldctl. I'm not looking to rename signald at this time
- imposterr 5y agoNot that I particularly think there's anything wrong with signaldctl, but for other apps that employ a daemon/control model, I've always found <service_name>d and <service_name>-cli combo to be good naming scheme. So signald and signal-cli in this case.
- finnn 5y agowell "signal-cli" is already in use by https://github.com/AsamK/signal-cli https://github.com/AsamK/signal-cli (which signald is a fork of)
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- CameronNemo 5y agoI would assume that has something to do with the Matrix protocol.
- gaius_baltar 5y agoSorry for "invading" an unrelated reply, but thanks for your work! I discovered signald an hour ago and I'm really happy about it. I'm pretty sure that's the way for a better desktop experience with Signal, but I still need to test a few clients. Even before that, with signaldctl and the Python libs alone I already have a way of sending notifications, etc.
- finnn 5y ago:)
- deleted 5y ago[deleted]
- exikyut 5y agoIt's fine. You're borrowing from the systemd/systemctl pattern. That would suggest signald/signalctl, but signaldctl works too. This being said, looking one level up the "bigger picture" chain "signalprotocold" comes to mind - but then "signalprotocoldctl" would give me a small headache :), and I don't know a good solution there. "spdctl" sounds it would be for a DIMM EEPROM configuration (???), "sigprotoctl" sounds nice if somewhat random, and... ugh, naming things is hard.
- InvaderFizz 5y agoWell, how about beacon. It also happens that most tlds with beacond are available. Cursory search on GitHub says you would be pretty alone in your use of beancond as well.
- stock_toaster 5y agolangis (signal backwards).
- neltnerb 5y agoI'll assume it's a terrible idea, whisperd and whisperclient are probably too on the nose. Beacon is pretty great =)
- opan 5y agoNot everyone uses qwerty (or the same layout in general), so complaining about how hard it is to type a certain string of letters doesn't seem like the job of an individual program to fix. It is a very rare and interesting complaint, however. By the way, is your issue with the t? I think c and l should actually not be too bad to hit, even on qwerty. They're not in the middle two columns, and they don't use your pinkies. With Workman, c is moved over one to the right, t is where f is in qwerty, and l is where m is in qwerty. So, t doesn't need me to stretch, and all of them become keys pressed with my index fingers, but since you may not like where qwerty c is already, I wonder if this would even be an improvement to you. It does put c and t much closer together, but both are still pressed with the left hand, and then l with the right. Not sure if hand alternation is part of what you had in mind.
- cookguyruffles 5y agoYup, it's the t :) It knocks me out of touchtype mode (or at least makes it awkward to keep going) I think just due to the sheer distance from both finger locations. A left-hand stroke from c -> t is awkward, using right hand for it seems even worse
- CameronNemo 5y agoWhy does this need to be a daemon? What does this offer that other signal clients do not?
- finnn 5y agoThis is a tool to build Signal clients with. It handles the Signal-specific stuff, clients can communicate with via a unix socket.
- CameronNemo 5y agoRight but you can already communicate with the official signal server using a socket.
- pseudalopex 5y agoDo you mean using a network socket after you reimplement the Signal protocol? Or do you think signal-cli is official?
- askvictor 5y agoDaemon presumably to handle receiving messages and triggering actions based on that. Do other signal clients allow CLI usage, or integrating with other software? (I'm genuinely not sure)
- CameronNemo 5y agoThere is a CLI client. Notifications/subscriptions may not be available. I think someone mentioned later in the thread that signald is a fork of signal-cli. https://github.com/AsamK/signal-cli https://github.com/AsamK/signal-cli
- finnn 5y agosignald also comes with a cli called signaldctl: https://signald.org/signaldctl/ https://signald.org/signaldctl/
- saurik 5y ago1) I would expect "signald" to be the server that clients connect to (as in, the thing provided by signal) and "signalcd" to be a client that is in the form of a daemon (akin to dhcpd vs. dhcpcd). 2) You can't use either of these names as Signal owns a trademark on their name (and even cares, as they should, particularly for a security product) and this looks like an official product in a way you can't disclaim away: come up with your own name for your daemon and then "support" signal or be "for" signal. https://signal.org/legal/ https://signal.org/legal/ > Signal’s Rights. We own all copyrights, trademarks, domains, logos, trade dress, trade secrets, patents, and other intellectual property rights associated with our Services. You may not use our copyrights, trademarks, domains, logos, trade dress, patents, and other intellectual property rights unless you have our written permission. To report copyright, trademark, or other intellectual property infringement, please contact abuse@signal.org.
- eugeniub 5y ago"Twitteriffic" and "Tweetbot" exist as accepted third-party Twitter-related apps, despite the fact that Twitter owns the "Twitter" and "Tweet" trademarks.
- lgats 5y agoTrademark for ‘Signal’ is still pending in the US https://uspto.report/company/Signal-Technology-Foundation https://uspto.report/company/Signal-Technology-Foundation Even with a granted trademark, it would be up to the company to enforce it. Simply stating “you can’t use our name” is much different from perusing open source projects in court or sending them cease and desist letters.
- abstract_put 5y agoI've been using this as the data source for a Matrix bridge for the better part of a year now. I'm thrilled with it so far! The only worry I have is Signals hostility towards analogous projects, but for the meantime it works for me as this is helping me wean off Signal. Maybe one day regular people will use Matrix...
- gaius_baltar 5y ago> The only worry I have is Signals hostility towards analogous projects Moxie certainly know that, but he can't actually prevent third-party clients. Not even Microsoft, ICQ and AOL succeeded on this when we were using Pidgin (and Licq and Gaim before that) to talk in MSN Messenger, ICQ and AIM.
- sarakayakomzin 5y agobig difference between using the name Signal and writing a third party client.
- abstract_put 5y agoYeah, it creates an adversarial relationship which isn't particularly pleasant. E.g. they have no incentive to build functionality to help integrate, nor do they have the same incentive to provide stable integration points. In fact, it sounds like stable integration points are borderline actively dissuaded as they would limit agility of Signal and relegate it to irrelevance. As much as I disagree with the underlying values, I haven't carved out 40 million monthly active users from a crowded space, so maybe it really is the best chance.
- Macha 5y agoAnd yet whatsapp, discord and slack are all doing pretty well at it.
- arsome 5y agoI can't speak to the others but judging by the amount of spam I get on Discord, they certainly aren't.
- leshokunin 5y agoThis is really interesting. I’ve been wanting to push messages to signal via a webhook or something similar, and couldn’t find a way. I’ll have to try it!
- Canada 5y agoThis works very well, recommend it if you need to programmatically send yourself stuff via Signal.
- GekkePrutser 5y agoI wonder if this could be used for a better matrix bridge. The current one is super heavy because it's basically the full desktop client with a bunch of hooks to extract the information.
- finnn 5y agothe signal matrix bridge currently listed on matrix.org (https://github.com/tulir/mautrix-signal https://github.com/tulir/mautrix-signal) uses signald
- GekkePrutser 5y agoYes sorry someone else also pointed this out. It worked with a moved desktop client before which is why I stopped using it. I'll try it again thanks!
- elliebike 5y agoHopefully this works well! Honestly the multi-device support is a big barrier to my adoption of Signal. Currently I use Telegram across several devices, and the messages just "sync" near instantly. With Signal you see them appear one-by-one, which is painful in a large + busy group chat. Obviously Signal has technical issues to overcome that Telegram does not, but the UX issue is still there
- eloeffler 5y agoTelegram doesn't have encrypted groups, though. So it's a bit of a different use case. I share your pain when syncing Signal but Telegram is no option in regard to true privacy.
- gaius_baltar 5y agoNot only that, but Telegram can't even sync secret chats between devices (the kind of that that can be a bit safer, but uses some strange crypto).
- hiq 5y ago> With Signal you see them appear one-by-one, which is painful in a large + busy group chat. How much delay are we talking about? In my experience we're talking maybe seconds, definitely less than 5s (depends on your connection of course). And since you only use one client at a time in theory (?), this shouldn't matter. Or are you talking about the initial sync when you start your Signal client after a long period offline? This has improved recently for Signal-Desktop.
- StavrosK 5y agoI've been using this for a while (and even wrote the python library for it), it has worked quite well. My only feedback is that the release process was a bit too fast, frequently changing and breaking things without much API stability, to the point where I couldn't keep up with upstream changes and just stopped upgrading my personal instance and the library. Hopefully that's gotten better nowadays, with a more solid versioning scheme. Judging from the site and documentation, signald more mature, which is a good sign. I've never had an issue with the daemon itself, it's been working fine for years now. All in all, an excellent and extremely useful project.
- sequoia 5y agoIt would be nice if the linked page contained some brief explanation of what this is.
- ironMonkey 5y agoTo all the humans mulling to play with this library, note that the signal-service-java[0] dependency signald relies upon isn't an officially shipped one. It's a fork with backported features. To me, it makes the library 2-times unofficial as it relies upon an unofficial library itself. The official implementation[1] hasn't been updated for around 1,5 years. [0]: https://git.callpipe.com/finn/signald/-/blob/master/build.gradle#L36 https://git.callpipe.com/finn/signald/-/blob/master/build.gr... [1]: https://github.com/signalapp/libsignal-service-java https://github.com/signalapp/libsignal-service-java
- Tepix 5y agoThis is neat. I looked at the install instructions ("from source") and i while there were instructions, there was no download link for the tarball and no link to the git repository. Turns out you have to click on the "gitlab" widget that shows the number of stars on the start page to get to the gitlab repository at https://gitlab.com/signald/signald https://gitlab.com/signald/signald
- qshaman 5y agoyou should have add the flags for the new APIs, for example if I want to add a new device, now it should be: signaldctl --premined --pump-dump MOB --add-device