# 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 option to select which plugins should be loaded on startup. The value is a list of plugin names separated by colons, e.g.

    plugins_autoload = 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) 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 chatroom 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 chatrooms and the contact list.

Contact

  Documentation

  Do a disco#info query on the JID and display the contact addresses.

CSI

  Documentation

  Set the client state indication manually.

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.

Dice

  Documentation

  Roll one or several dice using message corrections.

Disco

  Documentation

  Add a `/disco` command to display the disco#info of a JID.

Display corrections

  Documentation

  Lists old versions of a corrected message.

Double

  Documentation

  Double the first word of each sentence.

Embed

  Documentation

  Send an URL annotating it as embedded.

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).

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.

Marquee

  Documentation

  Reproduce the behavior of the `<marquee/>` html tag.

MPD Client

  Documentation

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

OMEMO

  Not distributed with Poezio. See https://lab.louiz.org/poezio/poezio-omemo.

  Documentation

  Allows for end-to-end encrypted exchanges using the OMEMO mechanism.

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.

Server Part

  Documentation

  Add a `/server_part` command.

Shuffle

  Documentation

  Shuffle everything you say.

Simple notify

  Documentation

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

Spam

  Documentation

  Adds a subtle little advertising in your messages.

Status

  Documentation

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

Tell

  Documentation

  Sends a message to a nick when he connects to a chatroom.

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.

Upload

  Documentation

  Add an `/upload` command to upload a file.

Uptime

  Documentation

  Gets the uptime of a XMPP server or a component.

vCard

  Documentation

  Add a `/vcard` command to retrieve and display a vCard.