Psi (instant messaging client)

Psi is a free instant messaging client for the XMPP protocol (including such services as Google Talk ) which uses the Qt toolkit. It runs on Linux (and other Unix-like operating systems), Windows, macOS and OS/2 (including eComStation and ArcaOS).

User interface of program is very flexible in customization. For example, there are "multi windows" and "all in one" modes, support of different iconsets and themes.

Ready-to-install deb and RPM packages are available for many Linux distributions. Successful ports of Psi were reported for Haiku, FreeBSD and Sun Solaris operating systems.

Due to Psi's free/open-source nature, several forks have appeared, which occasionally contain features that may appear in future official Psi versions.

Project name
'Psi' is the twenty-third letter of the Greek alphabet (Ψ), which is used as the software's logo.

Mission statement
The goal of the Psi project is to create a powerful, yet easy-to-use XMPP client that tries to strictly adhere to the XMPP drafts and XMPP XEPs. This means that in most cases, Psi will not implement a feature unless there is an accepted standard for it in the XMPP community. Doing so ensures that Psi will be compatible, stable, and predictable.

History
The application was created by Justin Karneges and it began as a side project. At various points during its existence Karneges was paid to develop the codebase, during which Psi flourished. Typically however, the release cycle of Psi is relatively slow, but the client has always been seen by its fans as a very stable and powerful instant messaging client. Karneges left the project in late 2004 to pursue other endeavors. In 2002 Michail Pishchagin started hacking Qt code which later became libpsi library. Pishchagin joined the team in March 2003 and he is responsible for many large chunks in Psi code.

In November 2004, maintenance was taken over by Kevin Smith, a long-time contributor to the project. In 2009, Smith handed maintenance back to Karneges, who also maintains Iris, the Qt/C++ XMPP library upon which Psi is based.

Remko Tronçon started writing his custom patches for Psi in 2003, and became an official developer in May 2005.

In 2009 a Psi fork named Psi+ was started. Project purposes are: implementation of new features, writing of patches and plugins for transferring them to upstream. As of 2017 all active Psi+ developers have become official Psi developers, and now Psi+ is just a development branch of Psi with rolling release development model.

Users who wants to receive new features and bug fixes very quickly may use Psi+ on daily basis. Users who do not care about new trends and prefer constancy may choose Psi as it uses classical development model and its releases are quite rare.

Features
Because XMPP allows gateways to other services, which many servers support, it can also connect to Yahoo!, AIM, Gadu-Gadu, ICQ and Microsoft networks. Other services available using gateway servers include RSS and Atom news feeds, sending SMS messages to cellular networks and weather reports.

As of 2012, Psi has language packs for 20 languages, with more being created.

Emoticon packs are supported using the jisp format. Many jisp emoticon packs are available, including ones from AIM, iChat, and Trillian.

Psi supports file transfers between other XMPP clients, and it is possible to send to or receive files from other IM networks, if the user's servers support this. Psi supports Contact Is Typing Notification (which works with Yahoo!, MSN, and AIM contacts). Version 0.10, released in January 2006, brought automatically resizing contact list and composing window in chat dialogs, tabbed chats, support for Growl messaging system on Mac OS X, window transparency and many other changes.

Support of audio and video calls in Psi via Jingle is implemented via officially supported plugin PsiMedia.

Encryption
Security is also a major consideration, and Psi provides it for both client-to-server (TLS) and client-to-client (OpenPGP, OTR, and OMEMO ) via appropriate plugins. Encryption of messages in group chats is supported only via OMEMO plugin.