Show HN: Cordless, a Discord terminal client written in Go
github.com
github.com
(Obligatory disclaimer: I don't work for Discord, I just use it heavily and make a bunch of proper bots for it)
It's not very good because:
- notifications work badly for me (notifying a lot more than I'd like, I briefly tried to get it to only notify me when someone called me specifically, but I can't couldn't find a way that wouldn't involve going through all the channels
- it's slow and uses too much memory for my puny little pc
- it's hard to keep track of the last read message and current latest message. It requires clicks and it's clunky to use.
- this is a personal one, I find the interface really ugly and I value beauty in my UIs
If there was a server I was incredibly excited about I could put up with it. But given my mild interest, I end up never logging in. If there was a terminal UI that I could leave running in the background, not taking too many resources, I'd definitely leave it on a tab and interact on topics I found interesting, just like I do currently with IRC.
It's all so bad. Wasted UI space. Takes up my entire screen. Sys req is way out of proportion for a chat client. Weird UI prompts.
You can collapse the channel list if the channels are grouped together.
They also recently added server folders so you can collapse the server list.
>Wasted UI space. Takes up my entire screen.
You don't have to use it in full screen... just resize the window...
Why is that in a 80x24 terminal I have everything on screen while typical Electron applications require one workspace per application otherwise the crucial data becomes ugly? Just let us resize bits or make them collapsible or something.
Using a centralized service like Discord where you are the product, where the protocol is intentionally and legally enfoced as proprietary, is a real bad idea.
Parent complains that Discord 'servers' are misnamed because they are not literally individual servers. I asked them if they have a similar gripe with IRC, because IRC 'channels' are named that after radio/tv channels, but they are not literally radio channels.
https://twitter.com/discordapp/status/846597021431713792
https://twitter.com/discordapp/status/972529263269371904?lan...
https://twitter.com/discordapp/status/908000828690182145?lan...
I don't think they will send the banhammer down on you unless you use it for spamming or "self-botting" but it still seems a bit risky
Ripcord seems to have survived this long without incident for its users, for example
But they might start cracking down if a certain % of people start using other clients
The official client uses the exact same API as bot accounts, with the exception of a few endpoints being restricted to certain account types. Any form of "use a user account via API endpoints" outside of OAuth is discouraged, to say the least, although in general they won't actively hunt down people who do so.
I hope we can get people to move to something open.
They should spend more time focusing on building their own best-in-class clients themselves. If they're not able to accomplish that for the vast majority of their users it's a sign of a bigger problem than some monetization optimization strategy which will only push people away.
The valuable power users have multiple clients anyway and bring in more regular users (who just use the standard clients) than they're worth individually.
In the case of Discord specifically, iirc there has been issues in the past with abusive behaviour coming from people automating their own accounts (spambots etc.), which was one of the main reasons it was prohibited.
Imagine one of those clients becomes really, really good - so much so that it becomes the default way to use the service. The client starts adding features only available in that client. Then the client introduces its own competing service, inside the same client.
The service just becomes a dumb pipe, with all the real value in the client. This is why we want protocols, rather than services, to decouple the client from the service provider.
They send a tracking request for every single thing you do in their client. Clicked on someone's profile, clicked on a channel, clicked on a "server" (not really a server), etc. The URL was named "/track" before but they renamed it to "/events" recently (but it's still a POST with no response).
Also their desktop client is literally a remote sdministration toolkit, it has full access to FS (electron app) and it loads every script from their servers. They can just add something like require('fs').readFileSync(process.env.HOME + '/.ssh/id_rsa').toString() and send this to their servers, and you won't even notice that (since it doesn't require an update on client because the client is just a browser with full permissions that loads obfuscated code from their servers every time you launch it).
The reasons why they default to lock in are obvious, what I’m saying is that it ultimately benefits their business or has a neutral effect as the type of users to use a 3rd party client isn’t and is probably still using multiple clients (mobile/desktop) and still buys the subscription services.
Discord will always make the most popular client. It’s just how this stuff works. Just like Twitter 95%+ of people go to discord to download the clients. It’s the niche ones on the side that end up getting banned.
It’s not like the advanced features of a freemium model couldn’t be replicated in the client or in Twitters case they can still send ads in the API stream. If the client doesn’t show the ads + is very popular (a key part of the equation) then you can cut them off.
All that makes using bridges unreliable as you don't know if your messages was received by the other end.
I'm using Ripcord [2] because it is written in Qt, cross-platform, and works for both Discord and Slack. It also has voice chat support. It is not FOSS though, not feature complete either, and against ToS of Discord and Slack.
I've been using it for the past few weeks due to a problem with the Discord electron client spinning up my fans. Using Discord in the terminal fixes the problem (and scores major geek points!)
The main developer of Cordless is super nice. Each issue I've filed has been an absolute pleasure to discuss.