poezio
======

.. image:: https://codeberg.org/poezio/poezio/raw/branch/main/data/poezio_logo.svg
   :alt: Poezio logo
   :width: 200

.. image:: https://img.shields.io/pypi/pyversions/poezio.svg
   :alt: Image listing the python versions supported by poezio.

.. image:: https://img.shields.io/badge/license-gpl--3.0--or--later-blue.svg
   :alt: GPLv3+ image

.. image:: https://ci.codeberg.org/api/badges/14200/status.svg
   :alt: Pipeline status badge
   :target: https://ci.codeberg.org/repos/14200

Homepage:      https://poez.io

Forge Page:    https://codeberg.org/poezio/poezio

Poezio is a console Jabber/XMPP client. The initial goal was to provide a
way of connecting easily to XMPP without the need for an account, exactly like
IRC clients. Poezio's commands are also designed to be close, if possible,
to the ones commonly used in IRC clients (weechat, irssi, etc).

For this reason, the experience is still centered around chatrooms, despite
poezio being a full-featured XMPP client for a very long while.

Install
-------

Packages
~~~~~~~~

The stable version of poezio is packaged in
`a number of GNU/Linux (and OpenBSD) distributions <https://doc.poez.io/install.html#poezio-in-the-gnu-linux-distributions>`_.


If it is not packaged in your distribution, you can run the
`flatpak <https://flathub.org/apps/details/io.poez.Poezio>`_ or use pip
to install the package from `Pypi <https://pypi.org/project/slixmpp/>`_.


From git
~~~~~~~~

`Documentation <https://doc.poez.io/install.html#install-from-source>`_


You need python 3.11 or higher (preferably the latest) and the associated
devel package, as well as build tools (build-essential, pkg-config,
etc.), to build C modules, and the slixmpp python library. You also need
aiodns if you want SRV record support.

The easiest way to have up-to-date dependencies and to be able to test
this development version is to use the ``update.sh`` script.

You can then launch poezio with

::

    $ ./launch.sh


You can edit the configuration file which is located in
``~/.config/poezio/poezio.cfg`` by default, and you will have to copy
and edit ``data/default_config.cfg`` if you want to edit the config before
the first launch. The default config file is fully commented, but you can
also read the “Configuration” documentation page which has links between
options and longer descriptions.

Please see the online documentation for more information on installing,
configuring or using poezio: https://doc.poez.io/

If you still have questions, or if you're lost, don't hesitate to come
talk to us directly on our Jabber chat room (see Contact section).

Please DO report any bug you encounter and ask for any feature you want
(we may implement it or not, but it’s always better to ask).

Authors
-------

- Florent Le Coz (louiz’) <louiz@louiz.org> (developer)
- Mathieu Pasquet (mathieui) <mathieui@mathieui.net> (developer)
- Emmanuel Gil Peyrot (Link Mauve) <linkmauve@linkmauve.fr> (developer)
- Maxime Buquet (pep.) <pep@bouah.net> (developer)

Contact/support
---------------

Jabber chat room:   `poezio@muc.poez.io <xmpp:poezio@muc.poez.io?join>`_
(`web chat`_)

Report a bug:      https://codeberg.org/poezio/poezio/issues/new

License
-------

Poezio is Free Software.
(learn more: http://www.gnu.org/philosophy/free-sw.html)

Poezio is released under the GPL-3.0+ License.
Please read the COPYING file for details.

The artwork logo was made by Gaëtan Ribémont and released under
the `Creative Commons BY license <http://creativecommons.org/licenses/by/2.0/>`_.


Migration to Rust
-----------------

We're currently migrating Poezio to Rust. The migration is happening in
the ``roezio`` branch on the repository. You're welcome to try it out,
report bugs, and contribute!

To be able to run it you will need to install ``setuptools-rust``, and
of course the Rust compiler suite. Check out ``rustc`` or ``rustup`` in
your distribution package manager.

You should then be able to run `python setup.py build_ext --inplace` to
compile it locally, and launch poezio via `./launch.py`.

Hacking
-------

If you want to contribute, you will be welcome on
`poezio@muc.poez.io <xmpp:poezio@muc.poez.io?join>`_ (`web chat`_)
to announce your ideas, what you are going to do, or to seek help if you have
trouble understanding some of the code.

The preferred way to submit changes is through a merge request on codeberg,
at https://codeberg.org/poezio/poezio, but we also accept contributions
on github, or with a simple “please fetch my code on my personal git
repository hosted somewhere”.


Use of Generative AI
--------------------

This project does not allow contributions generated by large languages models (LLMs) and chatbots.
This ban includes, but is not limited to, tools like ChatGPT, Claude, Copilot, DeepSeek, and Devin AI.
We are taking these steps as precaution due to the potential negative influence of AI generated content on quality,
as well as likely copyright violations.

This ban of AI generated content applies to all parts of the projects,
including, but not limited to, code, documentation, issues, and artworks.
An exception applies for purely translating texts for issues and comments to English.

AI tools can be used to answer questions and find information.
However, we encourage contributors to avoid them in favor of using existing
documentation and our room. Since AI generated information is
frequently misleading or false, we cannot supply support on anything referencing AI output.


Thanks
------

- People:
    - Todd Eisenberger - Plugin system and OTR support
    - Jérôme Parment (Manfraid) - Code, testing
    - Akim Sadaoui - Code
    - Florian Duraffourg - Code
    - Frédéric Meynadier - Code
    - Georg Lukas - Code
    - Johannes Krude - Code
    - Łabędź - Code
    - Lasse Aagren - Code
    - Lancelot SIX - Code
    - Luke Marlin - Code
    - Maxime Buquet - Code
    - Nicolas Braud-Santoni - Code
    - Perdu - Code
    - Eijebong - Code
    - Gaëtan Ribémont - Logo design
    - Ovart - Testing
    - Koshie - Donation
    - Gapan - Makefile
    - FlashCode (weechat dev) - Useful advice on how to use ncurses efficiently
    - And all the people using and testing poezio, and especially the ones present
      on the jabber chatroom doing bug reports and/or feature requests.


.. _web chat: https://chat.jabberfr.org/converse.js/poezio@muc.poez.io
