# Plugins

Starting from the 0.7.5 version, poezio supports plugins. Here is a quick howto and a plugin index.

## Setting up plugins

Poezio seeks the plugins in the `~/.local/share/poezio/plugins/` dir (more generally, the `$XDG_DATA_HOME/poezio/plugins/` dir), but that can be changed by setting the plugins_dir option to the directory where you want to put your plugins.

By default, poezio will also seek the plugins in `../plugins`, in the source directory, in order to always load the latest versions. You should put a plugin in `$XDG_DATA_HOME/poezio/plugins` only if you have a custom version (that will override the one in `../plugins`), or if it is a plugin you made.

## Plugin autoload

Use the plugins_autoload optionto select which plugins should be loaded on startup. The value is a list of plugin names separated by colons, e.g.

    plugins_autoload = gpg:tell:exec

## Manual plugin load

Plugins can of course be loaded with the command /load and unloaded with the command /unload.

## Plugin configuration

Most plugins will manage their configuration internally, and you do not (and should not) have to edit it, but some (e.g. mpd_client or gpg) require manual editing (the /set command can be used, but it is not pleasant to set multiple values with it).

The plugin configuration directory is located in `~/.config/poezio/plugins/` (or `$XDG_CONFIG_HOME/poezio/plugins/`) and the file related to a specific plugin is named `plugin_name.cfg`. The configuration options should usually be inside a section named after the plugin (sections are delimited with `[]`).

    [plugin_name]
    key = value
    other_key = other_value

## Plugin index

Admin

  Documentation

  Creates convenient aliases for MUC administration.

Alias

  Documentation

  Allows you to create your own aliases.

Amsg

  Documentation

  Allows a message to be broadcasted on all the rooms your are in. Caution: do not overuse.

Autocorrect

  Documentation

  Add new ways to correct messages.

Close all

  Documentation

  Close all tabs except MUCs and the roster.

Cyber

  Documentation

  Add a cybertouch to your messages.

Day Change

  Documentation

  Logs the day change inside the buffers, to keep track of the days when backlogging.

Display corrections

  Documentation

  Lists old versions of a corrected message.

Double

  Documentation

  Double the first word of each sentence.

Exec

  Documentation

  Runs a system command an optionally sends the output as a message.

Figlet

  Documentation

  Ascii-art writing (requires the `figlet` package on your system).

GPG

  Documentation

  Allows encrypted exchanges and presence signing using GnuPG.

IQ Show

  Documentation

  Shows the received IQs, for debugging purposes.

IRC

  Documentation

  Manage IRC gateways with biboumi more easily

Link

  Documentation

  Opens links in a web browser, locally or remotely using a FIFO and SSH.

MPD Client

  Documentation

  Sends the current song (and optionally the progress inside the song) to the current (chat) tab.

OTR

  Documentation

  Allows encrypted and deniable exchanges using OTR.

PacoKick

  Documentation

  Kicks a random user in the room.

Ping

  Documentation

  Sends a ping probe to an entity (XEP-0199)

Pipe Command

  Documentation

  Send commands to poezio through a named pipe.

PointPoint

  Documention

  Insert dots in your messages.

Quote

  Documentation

  Adds a /quote command to quote a message at HH:MM:SS and put it in the input (to prevent painful copy/pastes).

Rainbow

  Documentation

  Sends your messages in rainbow colors using XHTML-IM.

Regex Admin

  Documentation

  Add regex-based kick and ban commands.

Reminder

  Documentation

  Reminds you to do something every now and then.

Reorder

  Documentation

  Reorder the tabs according to a static layout.

Replace

  Documentation

  Replace some patterns in your messages.

Revstr

  Documentation

  Reverse everything you say.

Screen Detach

  Documentation

  Changes your status to away if the screen (or tmux) poezio is in gets detached.

Send Delayed

  Documentation

  Program the sending of futur messages.

Shuffle

  Documentation

  Shuffle everything you say.

Simple notify

  Documentation

  Sends a notification with a command of your choice on (non-MUC) messages.

Spam

  Documentation

  Adds a subtle little advertising in your messages.

Status

  Documentation

  Adds convenient aliases to /status (/away, etc).

Tell

  Documentation

  Tells a message to a nick when he connects to a MUC.

Time Marker

  Documentation

  Display the time between two messages.

Title change

  Documentation

  Change the title of the terminal according to the name of the current tab.

Uptime

  Documentation

  Gets the uptime of a XMPP server or a component.