Pidgin (software)
| Company type | Free software |
|---|---|
| Industry | Instant messaging software |
| Founded | December 31, 1998 |
| Founder | Mark Spencer |
Area served | Worldwide |
| Products | Instant messaging client |
| Owner | Open source community |
| Website | pidgin |
Pidgin (previously known as Gaim) is a free, open-source instant messaging client compatible with multiple platforms, developed atop the libpurple library. It accommodates a wide range of messaging protocols, allowing users to connect to various services through a unified interface, spanning both widely used and older protocols (from AIM through to Discord). This integration streamlines communication across different devices and operating systems without requiring individual applications for each protocol.
By 2007, Pidgin had amassed a user base exceeding three million. One of its key strengths is the Off-the-Record Messaging (OTR) plugin, which delivers end-to-end encryption to bolster user confidentiality. Because of this emphasis on security, Pidgin is incorporated into privacy-focused distributions such as Tails.
History
Initially created by Mark Spencer, then a sophomore at Auburn University, the software was designed as a Linux equivalent of AOL's IM client AOL Instant Messenger, utilizing the GTK+ toolkit. The earliest known release dates back to December 31, 1998. Originally called GAIM (an acronym for GTK+ AOL Instant Messenger), it was developed based on publicly available AOL protocol documentation with some cooperation from AOL engineers. Soon after launch, support for additional instant messaging protocols was incorporated.
Due to trademark concerns raised by AOL, the program was renamed to the lowercase form gaim. Since AOL held the trademark for "AIM," the GAIM development team became involved in a prolonged but discreet legal dispute.
Following an agreement with AOL on April 6, 2007, the project underwent rebranding: Gaim was changed to Pidgin, libgaim became libpurple, and the command-line client gaim-text was renamed Finch. The term Pidgin alludes to "pidgin" languages, symbolizing cross-protocol communication, while "purple" serves as the internal designation for IM protocol plugins.
Legal complications caused delays in releasing version 2.0, initially planned for April 2007, due to issues involving configuration directories. Eventually, Pidgin 2.0.0 launched on May 3, 2007, introducing interface enhancements such as updated icons.
On July 6, 2015, Pidgin achieved a flawless rating on the Electronic Frontier Foundation’s secure messaging scorecard by meeting criteria including encryption during transmission, end-to-end encryption, identity verification, forward secrecy, open-source availability, documented security design, and recent independent security audits.
After prolonged development efforts, Pidgin 3.0.0 Experimental 1 (versioned 2.90) was released on December 31, 2024. This initial experimental release supported IRC with intentions to incorporate additional protocols later. A subsequent preview version 2.91 followed in April 2025.
Features
Pidgin offers a graphical interface built on top of libpurple using the GTK+ toolkit. Libpurple itself supports a wide variety of instant messaging protocols.
The software operates across multiple platforms including Windows and numerous Unix-like systems such as Linux, various BSD variants, and AmigaOS. It comes pre-installed in several operating systems like Tails, Trisquel, and Xubuntu.
Extensibility
Pidgin is engineered with extensibility in mind, enabling the use of plugins frequently created by external developers. These add-ons extend protocol compatibility—crucial for proprietary platforms like Skype or Discord—and improve functionality, exemplified by the "Off-the-Record Messaging" (OTR) plugin, which delivers end-to-end encryption capabilities.
Its TLS encryption framework is modular, permitting the replacement of different TLS libraries. By default, GnuTLS is utilized, though NSS is also supported. On certain operating systems such as OpenBSD, the default libraries are OpenSSL or LibreSSL.
Contact Management
Pidgin merges contacts from various protocols into unified entries, allowing aliases and organization into groups. It also features automated scripts named Buddy Pounces that trigger user engagement based on status updates.
File Transfer Capabilities
The application facilitates file transfers across multiple protocols, including direct peer-to-peer exchanges via XMPP.
Voice and Video Communication
Starting with version 2.6 (released August 2009), Pidgin introduced voice and video calling through integration with Farstream. As of 2015, call initiation remains restricted to the XMPP protocol.
Additional Features
Other functionalities encompass theme customization, emoticon support, spell checking, and integration with system notification areas.
Supported Protocols
The following protocols are natively supported by Pidgin 2.14.12 without requiring additional extensions or plugins:
- Gadu-Gadu
- IRC
- Novell GroupWise (scheduled for discontinuation in version 3.0)
- SIMPLE
- XMPP
- Zephyr (also planned to be dropped in version 3.0)
Certain XMPP servers provide transports that allow access to non-XMPP networks without needing extra client-side software. This capability broadens Pidgin’s connectivity to otherwise unsupported services such as SMS and email.
Support for further protocols—including Discord, Telegram, Microsoft OCS/LCS (extended SIP/SIMPLE), Facebook Messenger, QQ, WhatsApp, and Signal—is available through third-party plugins.
Plugin Ecosystem
Numerous third-party plugins enable extended features within Pidgin, including:
- Text communication on Discord via purple-discord
- Chatting on Facebook through purple-facebook
- Access to Google Chat using purple-googlechat
- Microblogging platforms such as (GNU social, Twitter)
- Integration with Slack (software) via slack-libpurple
- Messaging on Telegram (software) through tdlib-purple
- End-to-end encryption provided by the Off-the-Record Messaging (OTR) plugin
- Insertion of mathematical expressions formatted in LaTeX during conversations
- Notification systems including popups, alerts from Snarl, or laptop LED indicators
- Displaying media player status to contacts
- Embedded video playback within chats for content from sites like YouTube and Vimeo
Criticisms
- The libpurple codebase has faced scrutiny due to multiple security vulnerabilities; Wired notably highlighted these issues in 2015. Security assessments dating back to 2011 also identified weaknesses in OTR plugins relying on libpurple.
- With version 2.4, the option to manually resize the chat input area was removed, leading to a fork named Carrier (initially called Funpidgin).
- Passwords are stored unencrypted in plain text files accessible to any process or user with file permissions. The upcoming version 3.0 aims to implement secure password management through system keyrings such as KWallet, GNOME Keyring, macOS Keychain, and Windows winCred API.
- There is no capability to pause or resume file transfers, including those conducted over IRC channels.
- The contact list does not support disabling group-based sorting, which restricts user customization preferences.
Additional prominent software utilizing libpurple
- Adium along with the now-defunct Proteus (both designed for macOS)
- Meebo (a web-based service, no longer operational)
- Telepathy Haze (a Tube implementation supporting certain protocols within the Telepathy framework)
- QuteCom (a discontinued, cross-platform application centered on VoIP and video communication)
- Instantbird (a cross-platform client, based on Mozilla's Gecko engine, now discontinued)
Both BitlBee and Minbif function as IRCd-style gateways to various instant messaging networks and can be compiled with libpurple to extend their capabilities.