Zulip

Zulip is an open source chat and collaborative software created by Jeff Arnold, Waseem Daher, Jessica McKellar, and Tim Abbott in 2012. Today, it is one of the free and open source alternatives to Slack, with over 40,000 commits contributed by 660 people.

Overview
In Zulip, communication occurs in streams (which are like channels in IRC). Each stream can have several topics – Zulip features a unique threading model, in which each message also has a topic, along with the content. Zulip claims that this improves productivity by "making it easy to catch up after a day of meetings". Apart from this, Zulip offers standard features found in collaboration apps like message reactions, message search history, polls, private messaging, group messaging etc. Zulip streams can be private or public – only people invited to a private stream can view messages in it, while anyone within an organization can join a public stream. Messages in Zulip can be sent in plain-text or formatted using markdown, along with images, links, and file attachments. Zulip also offers support for native integrations with hundreds of services, which can extend its functionality.

Official client apps
Apart from the web interface, Zulip officially supports other clients, all of which are open sourced:
 * Mobile apps for iOS and Android.
 * A desktop client for Windows, OSX and Linux.
 * A terminal client for Linux, OSX and Windows (WSL).