EKG2 — расширяемый плагинами мультипротокольный Python / Ncurses (Curses) консольный клиент для обмена мгновенными сообщениями (IM-клиент) и чтения новостных лент (NNTP/RSS-агрегатор).
Система обмена мгновенными сообщениями (Instant messaging / IM) — службы и клиенты обмена сообщениями в реальном времени, по локальной сети или через Интернет. В зависимости от используемой IM-сети и протокола можно обмениваться текстовыми сообщениями, изображениями, звуковыми и видео сигналами, а также производить другие действия (передача файлов, совместное рисование, игры и пр). IM-службы могут применяться для для организации групповых текстовых чатов или видеоконференций.
EKG2 базируется на коде экспериментального GG-клиента EKG (автор Wojciech Kaniewski), написанного в начале 2003 года для работы в сети Gadu-Gadu (разработана в Польше и там же пользуется наибольшей популярностью) использующей для обмена сообщениями проприетарный протокол. Клиент был написан на основе информации полученной с помощью тестовых пакетов (передаваемых между клиентом и сервером сети Gadu-Gadu), а так же информации предоставленной пользователями, обратного инжиниринга оригинального GG-клиента не проводилось.
EKG2 помимо поддержки протокола Gadu-Gadu (реализуется с помощью библиотеки libgadu) поддерживает протоколы XMPP (ранее Jabber) и IRC / Internet Relay Chat (протокол для группового общения), а так же протоколы NNTP (Network News Transfer Protocol) и RSS (Rich Site Summary) для чтения новостных лент и участия в их обсуждениях (чат-комнатах). Имеющиеся у возможности и поддерживаемые протоколы можно расширить с помощью плагинов (Python, Perl и Ruby).
EKG2 имеет традиционный для многих консольных IM-клиентов интерфейс основанный на виртуальных "окнах", между которыми можно переключатся (есть два служебных окна, все остальные чаты, индивидуальные или коллективные), настройка и управление производится посредством ввода команд. Для более удобной работы с клиентом реализована автоподстановка команд, назначение и переназначение действий по нажатию клавиш и клавиатурных сочетаний, назначение синонимов (alias) для команд (командами или в конфигурационном файле ~/.ekg2/).
Лицензия: GNU General Public License version 2.0 (GPLv2)