Domain join

As stated in the overview of the Clacks client documentation, a client has to be joined to the Clacks domain in order to participate in the AMQP bus functionality. In the moment you just need a non ‘machine account’ to join a new client to the domain, because ACLs are not implemented yet.

If your client has not been joined, you’ve to do this by starting the clacks-join command:

Please enter the credentials of an administrative user to join this client.
(Press Ctrl-C to cancel)

User name: admin
Password: *******

This will create an automatic client configuration, which is needed to start the Clacks client itself.


The process of joining a client transfers the computers unique device-uuid to the server. Because it is only readable by root, it can be used later on to pass an initial encrypted secret to the client after a reboot happened.

class clacks.client.plugins.join.methods.join_method

There are several ways to present the join process, that are

  • CLI
  • Curses
  • QT

in the moment. By implementing the clacks.client.plugins.join.methods.join_method interface, new ones (i.e. graphical) can simply be added. The resulting modules have to be registerd in the setuptools [join.module] section.

The priority class member is used to order the join methods.

static available()

This method can check if the current method is available on the system. It is used to avoid that i.e. a framebuffer dialog will show up when there’s no framebuffer.

Returns: True if available


This dialog presents the join dialog aquiring the username and the password of a person capable to join the client. It must call the clacks.client.plugins.join.methods.join_method.join() method and loop until success or abort itself.


show_error is the function used to show messages to the user. It needs to be implemented.

Parameter Description
error The error string