Signal works pretty well for me. I mostly use it on my phone, but occasionally on my desktop, but never had sync issues.

Matrix.org + Riot.im are a pretty solid combination. Plus, you can bridge to IRC.

Last I checked there was no Signal client for most Linux or BSD distros. IIRC they did something silly like a Debian-only package or something.

But as many others have stated, its inability to work without exchanging phone numbers is a show stopper for many uses cases. Especially now that my country requires SIM registration with valid IDs.

There's even a cli client that someone has written: https://github.com/AsamK/signal-cli