Skip to content

Contributing to kazv

Source code repositories

We have three places hosting our source code:

Lily Islands is the ultimate source of truth for all the code. The other two are mirrors. We also use Lily Islands for releases, image registries, and CI.

The Kazv Project has two main repositories, kazv and libkazv. libkazv is the library that deals with the protocol and does most of the heavy lifting. kazv contains the GUI for the software.

Dev chat

We use Matrix to communicate. Join the matrix room at Ask there if you need account approvals for Lily Islands or IronLily.

Write code

We do code reviews both by GitLab Merge Requests and by Phorge Differential. You can open a merge request on Lily Islands, or create a diff on IronLily. The two ways serve the same functionality and we do not prefer any one of them when reviewing. However, you may have your own preferences when submitting code for review. Choose the one that you are most comfortable with.

Please do note that we follow a principle of “one commit is one idea.” This means that the commits that get into the main branch will be recorded as one changelog entry. Each commit should pass CI, and should deal with one and only one problem. When using GitLab Merge Requests, note that your changes will be squashed into one commit when it is merged. When you submit your code for review, try to keep it small. We may ask you to split it into different MRs or Differential Revisions if it is too large or deals with more than one problem.

Alternatively, you can email your patch to


Report bugs to our repository on Lily Islands, create a task on IronLily’s Maniphest, or email to

Report security vulnerabilities using a confidential GitLab issue on Lily Islands, create a task that can only be seen by the Kazv Project, or email to

If you have a fix for a security vulnerability, please create a diff that can only be seen by the Kazv Project, or email to

How to create a diff only visible to the Kazv Project:

  • Go to (do not use Arcanist because it cannot set the visibility of a diff).
  • In the “Visible To” field, choose “Custom Policy” from the dropdown.
  • In the displayed popup, choose “Allow” “users,” then enter your own username. Then click on “New Rule,” and in the second rule, choose “Allow” “members of any project,” then enter “the Kazv Project.”
  • Note that when attaching the diff to a new Revision, you need to apply the visibility policy to the revision again.


You can access the API docs of libkazv online.

You can now donate to the Kazv Project on Liberapay: