Zulip in a Terminal
At present, there are a few alpha-quality implementations of a terminal client for Zulip:
Barnowl is a multi-protocol terminal client for various chat systems, written in Perl. Barnowl itself is very mature software, and the Zulip integration has been used for a few years, but it isn't integrated into the mainline branch and needs work on documentation.
Snipe is relatively new multi-protocol client for various chat systems, built on Python 3 and asyncio.
Zulip's web and mobile apps use the same REST API that we publish in our API documentation, as do all three of these terminal clients, so it should require only client-side work to build a high quality terminal-based app for Zulip.