Can someone shed some light on the landscape here? I thought there were only 2 possible ways to use Signal; the mobile apps and the desktop. Is this CLI app somehow talking to them? If anyone can make a client, then what's stopping someone from building better mobile apps and indeed a web client!? Other than of course the sheer effort that's involved obviously.
This uses signal-cli[0] (communication happens over D-Bus) and signal-cli in turn uses a patched version of libsignal-service-java[1]. The latter might be used in some of the clients provided by Signal (not sure) but the signal-cli + libsignal-service-java combo talks to Signal servers instead of any apps running locally.

Nothing is stopping you from building a web client for yourself.

[0]: https://github.com/AsamK/signal-cli [1]: https://github.com/signalapp/libsignal-service-java