1
0
Fork
You've already forked iris
0
forked from 0x7700e6/Mynah
XMPP client using Python, GTK, and slixmpp.
  • CSS 78.1%
  • Python 21.9%
2026年02月04日 22:39:31 +01:00
.forgejo/workflows Remove useless if for pylint CI 2026年02月04日 20:54:23 +01:00
docs Add test mkdocs and respective action 2026年02月01日 18:20:35 +00:00
logic Create new UpdateRosterAdd to allow for already-exists error, give UpdateRoster* its own signal 2026年02月04日 21:11:53 +00:00
ui Slightly reduce Item instance attributes (and disable pylint warning) 2026年02月04日 21:35:04 +00:00
.gitignore Add test mkdocs and respective action 2026年02月01日 18:20:35 +00:00
.python-version Make project use pyproject 2025年12月16日 18:58:48 +01:00
__init__.py Compress split and add author details 2026年01月11日 15:31:16 +00:00
__main__.py Make pylint happy 2026年02月04日 00:22:49 +00:00
AGENTS.md Add malicious AGENTS.md 2025年12月11日 17:56:41 +01:00
CONTRIBUTING.md Clarify purpose of labels in CONTRIBUTING.md 2026年02月01日 20:04:05 +01:00
COPYING Add COPYING 2025年12月11日 12:13:14 +01:00
mkdocs.yml Add test mkdocs and respective action 2026年02月01日 18:20:35 +00:00
pyproject.toml We can never have enough docstrings. Plus a couple removals of redundant code. 2026年02月03日 19:43:41 +00:00
README.md Add some further details to README.md Running (popular demand) 2026年01月27日 17:15:07 +00:00
uv.lock Minor file refactoring and some added docstrings to allow for automatic pylint workflow. Also, we now use pylint! (if this works) 2026年02月02日 03:21:50 +00:00

Iris in its current state is highly unstable and should only be used for testing. Only use XMPP accounts which serve no meaningful purpose. This is not a client that should be relied on for any reason; assume everything will change and that Iris will cause damages in unimaginable ways.

Iris is an XMPP client using Python, GTK, and slixmpp. It has a long-term vision of being maximally customisable, user-friendly, and cross-platform (Linux, Windows, macOS).

Running

Iris requires the following: GTK 4, Granite 7, and all other dependencies listed in pyproject.toml.

This README.md will not exhaustively list all packages for all OSes, but these links may help: GTK, Granite, PyGObject.

For nixOS users, cacert is also required, or you may receive an "invalid SSL chain" error on login.

We recommend using the uv package manager to run Iris.

  • Clone the repository: git clone https://codeberg.org/0x7700e6/iris.git (requires git)
  • Enter the new folder: cd iris
  • Run with uv: uv run __main__.py

We have no near-future intentions on providing a packaged file to run, as Iris is still in incredibly-early development.

Future plans

We have no official timeline, since development can stagnate or steamroll ahead at any moment. The current plan is nailing the core functionality (logging in, managing contacts list / account, sending messages):

  • Logging in certainly works, but could do with improvement for usability. Due to how slixmpp works, the connection will never succeed or fail if the domain is incorrect, if there is no network, etc., and Iris gives no feedback on what is happening.
  • The contacts list is nearly finished(!), but UIs are currently WIP and unstable.
  • No account / presence management or messaging functionality... yet.

Once the above has been fixed, the version number will start ticking, and Iris will start being packaged.

Iris as a project highly prioritises maintenance over adding features (as it is aimed at being user-friendly, so stability is higher-priority). Because of this, we will be focusing on maintenance and existing-feature enhancements.

Contributions in any form are very welcome; see CONTRIBUTING.md.

Credits

Written and maintained by Violet Boeckels (violet@nullhost.de).

Thanks to Sashanoraa, who has helped with many asyncio problems and designed Iris' implementation of multi-threading; Iris would not have existed without zir help and knowledge.

Additional thanks to all contributors on Codeberg that have helped improve Iris, or will do so in the future.