Third-party software created to add a new feature to an application, such as Premiere or After Effects.

In computing, a plug-in (or plugin, add-in, addin, add-on, or addon) is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.

Web browsers have historically allowed executables as plug-ins, though they are now mostly deprecated, which are a different type of software module than browser extensions. Two plug-in examples are the Adobe Flash Player for playing Adobe Flash content and a Java virtual machine for running applets.

A theme or skin is a preset package containing additional or changed graphical appearance details, achieved by the use of a graphical user interface (GUI) that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users to customize the look and feel of a piece of computer software or an operating system front-end GUI (and window managers).

Applications support plug-ins for many reasons. Some of the main reasons include:

  • to enable third-party developers to create abilities which extend an application
  • to support easily adding new features
  • to reduce the size of an application
  • to separate source code from an application because of incompatible software licenses.

Types of applications and why they use plug-ins:

  • Audio editors use plug-ins to generate, process or analyze sound. Ardour and Audacity are examples of such editors.
  • Digital audio workstations (DAWs) use plug-ins to generate sound or process it. Examples include Logic Pro X and Pro Tools.
  • Email clients use plug-ins to decrypt and encrypt email. Pretty Good Privacy is an example of such plug-ins.
  • Video game console emulators often use plug-ins to modularize the separate subsystems of the devices they seek to emulate. For example, the PCSX2 emulator makes use of video, audio, optical, etc. plug-ins for those respective components of the PlayStation 2.
  • Graphics software use plug-ins to support file formats and process images. (c.f. Photoshop plugin)
  • Media players use plug-ins to support file formats and apply filters. foobar2000, GStreamer, Quintessential, VST, Winamp, XMMS are examples of such media players.
  • Packet sniffers use plug-ins to decode packet formats. OmniPeek is an example of such packet sniffers.
  • Remote sensing applications use plug-ins to process data from different sensor types; e.g., Opticks.
  • Text editors and Integrated development environments use plug-ins to support programming languages or enhance the development process e.g., Visual Studio, RAD Studio, Eclipse, IntelliJ IDEA, jEdit, and MonoDevelop support plug-ins. Visual Studio itself can be plugged into other applications via Visual Studio Tools for Office and Visual Studio Tools for Applications.
  • Web browsers have historically used executables as plug-ins, though they are now mostly deprecated. Examples include Adobe Flash Player, Java SE, QuickTime, Microsoft Silverlight, and Unity. (Contrast this with browser extensions, which are a separate type of installable module still widely in use.)


The host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.

Programmers typically implement plug-in functionality using shared libraries, which get dynamically loaded at run time, installed in a place prescribed by the host application. HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps. Programs may also implement plugins by loading a directory of simple script files written in a scripting language like Python or Lua.

also known as
  • Add-on
Adapted from content published on
Last modified on December 14, 2019, 8:59 pm is a service provided by Codecide, a company located in Chicago, IL USA.