A ReadyAPI plugin is a single JAR file containing all the plugin functionality and all needed third-party libraries.
Functionally, a plugin can contain any combination of the following:
Actions are features used by an application user. Typically, they are accessed through menus and toolbars.
Listeners wait for events to occur and perform their function at that time.
Factories add general functionality to a testing project environment. This includes objects in a user interface, testing objects in a project, and any specific behavior you may want in your projects.
User interface objects include Editors, for example, to edit requests and responses, and Inspectors that display information, e.g., about messages.
Testing objects, such as test steps and assertions, are another typical case where a plugin might be of interest.
Any specific behavior in your API that needs special handling may also be a good case for developing a plugin.