# Psi (Instant Messenger)

Psi (gesprochen [ˈsaɪ]) ist ein Instant-Messaging-Programm für das Extensible Messaging and Presence Protocol (XMPP).

## Leitlinien

Ziel des Psi-Projektes ist es, einen leistungsstarken XMPP-Client anzubieten. So wird bei der Programmierarbeit versucht, sich genau an die XMPP-Vorlagen und XEPs zu halten. Dies bedeutet, dass das Psi-Team keine Merkmale implementiert, solange sie nicht von der XMPP-Gemeinde als Standard akzeptiert wurden. Somit soll sichergestellt werden, dass Psi kompatibel und stabil bleibt.

## Merkmale

Psi ist ein leistungsstarker XMPP-Client, der sich strikt an die Standards der XMPP Standards Foundation hält.
Mit Einstellungsprofilen können (auch an einem Rechner, auf einem [Betriebssystem-]Benutzerkonto) für mehrere Benutzer separate Einstellungen gespeichert werden. Die Unterstützung von ID-Priorisierung erleichtert die gleichzeitige Nutzung eines Kontos von mehreren Rechnern aus.

### Datenübertragung

Psi bietet umfangreiche Präsenzbenachrichtigung, die zum Beispiel auch ermittelt und überträgt, ob der Benutzer gerade tippt oder nicht (englisch „typing notification“).
Psi kann auch Vollduplex-Audioverbindungen herstellen (IP-Telefonie) und zwischen XMPP-Nutzern (unverschlüsselt) Dateien übertragen.
Psi erlaubt Ende-zu-Ende-Verschlüsselung von Textnachrichten nach dem OpenPGP-Standard sowie Punkt-zu-Punkt-Verschlüsselung mit TLS.

### Benutzeroberfläche

Psi bietet eine graphische Benutzeroberfläche, bei der auch Fenster transparent geschaltet werden können. Mehrere offene Chat-Sitzungen können über ein Registerkarten-System unter eigenen Karteireitern in einem gemeinsamen Fenster dargestellt werden. Die Oberfläche wurde in zahlreiche Sprachen übersetzt (Sprachpakete für zum Beispiel Deutsch, Chinesisch, Französisch, Italienisch und Spanisch). Zahlreiche im populären jisp-Format (genutzt von AIM, iChat, Trillian, …) verfügbare Emoticon-Pakete (Smileys) können genutzt werden.

## Verfügbarkeit

Es ist als freie Software auch im Quelltext unter den Bedingungen von Version 2 oder höher der GNU General Public License (GPL) erhältlich, mit der zusätzlichen Erlaubnis für das Binden mit den Qt- (auch der kommerziellen Variante) und OpenSSL-Bibliotheken, ohne deren Quelltext beilegen zu müssen.
Psi läuft unter Linux, Windows, macOS und eComStation. Installationspakete (RPM, deb) sind für viele Linux-Distributionen verfügbar. Portierungen gibt es auch für FreeBSD- und Solaris-Betriebssysteme. Es ist in den meisten populären Linux-Distributionen direkt aus den Standard-Paketquellen installierbar.

## Technik

Psi ist in der Programmiersprache C++ geschrieben und hat eine auf der Qt-Bibliothek basierende grafische Benutzeroberfläche. Die in der Programmbibliothek Iris gekapselte XMPP-Funktionalität wird in einem eigenen Unterprojekt eines gemeinsamen Mutterprojektes (das „Delta XMPP Project“) entwickelt. Die Telefonie-Funktionalität nutzt die Protokollerweiterung Jingle und überträgt das Sprachsignal mittels des Sprachcodecs Speex.
Für die Punkt-zu-Punkt-Verschlüsselung zu Kommunikations-Servern wird die TLS-Implementierung des OpenSSL-Projektes verwendet, für die OpenPGP-End-zu-End-Verschlüsselung von Textnachrichten kann GnuPG eingebunden werden. Darüber hinaus existiert für Psi ein Plugin für Off-the-Record Messaging (OTR). Auch in Psi+ kann OTR (unter Windows und Linux) verwendet werden.

## Geschichte

Das Projekt wurde 2001 von Justin Karneges initiiert. Die Programmierung des Basiscodes konnte Karneges zwischenzeitlich vergütet werden – so entwickelte sich Psi sehr gut. Dennoch verläuft die Freigabe der Veröffentlichungen relativ langsam. Justin Karneges verließ das Projekt Ende 2004. Die Pflege des Projekts lag seitdem in den Händen von Kevin Smith. Anfang 2009 hat Smith das Zepter wieder an Karneges zurückgegeben, der der in letzter Zeit etwas schleichenden Entwicklung wieder neuen Wind einhaucht. Das Kernteam besteht darüber hinaus aus Michail Pishchagin, Hal Rottenberg und Remko Tronçon. Von der Mitte Oktober 2007 erschienenen Entwicklungsversion 0.11 wurde das Jabbin-Projekt abgespalten, das Unterstützung für IP-Telefonie über XMPP bei freier Software einführte. Psi übernahm diese Funktionalität in der Ende Juni 2009 freigegebenen Version 0.13, an der seit Ende 2005 gearbeitet wurde, nachdem die von der Funktion genutzte Protokollerweiterung Jingle standardisiert wurde. Eine Abspaltung von PSI ist das Projekt „Psi+“.

## Namensgebung

„Psi“ ist die Abkürzung von psynergy, einer Wortschöpfung aus psychic (übersinnlich) und energy (Energie). Psi ist ebenfalls ein griechischer Buchstabe (Ψ), dieser ist das Logo des Messengers.