Creating Channels

A person who joins an empty and unregistered channel is granted temporary operator status. This does not guarantee their ownership of the channel. They need to REGISTER the channel with ChanServ to gain ownership of it.

This guide will help you prepare for and go through that process.

Choosing the correct namespace

Before creating a new channel on Libera.Chat, please take a moment to read up on our namespaces policy and ensure that your channel is named appropriately from the beginning. This will avoid disruptions in the future.

Be identified

To register and manage channels, you will need to be identified to NickServ.

Pick a name

Before you can register it, you’ll obviously need to pick a channel name! Think of one that is descriptive of the channel’s purpose, and has no spaces or commas. The name you choose will become what’s called your namespace. You can use some punctuation such as “.”, “_” or “+” instead of spaces, but it is better to just drop the space.

It is typical to reserve - as a delimiter for additional channels within the namespace, such as -dev or -ops. Using a - in the root name might result in conflicting namespaces, and cause complications for you and others when registering groups with Libera.Chat.

Once you’ve settled on the name, add the appropriate number of #’s to the beginning, according to the rules in our namespaces policy.

For example, if it is an official representation of your project and the project is named “Awesome App”, you can use one #. You’ll probably go with something like: #AwesomeApp

If it’s not a “Project” or “Community” channel based on the definitions described in our namespaces policy you’d go with two #. As an example, it might be a channel for your friends to talk to you in, so you’d probably pick something like ##YourNickname

Check that it is available

You can check that a channel is registered or not with ChanServ. To see if for example #libera is registered, you would do:

/msg ChanServ INFO #libera

Since it is registered, ChanServ will tell you the registration details you’re allowed to see. Otherwise it would say:

ChanServ: #libera is not registered.

Joining the channel

The next step of creating a channel is to /join it.

/join <#channelname>

If the channel you joined was empty and is unregistered, you will have the temporary operator status now. Depending on your client, you should appear in the user list with an @ or another symbol before your nick.

Registering with ChanServ

Once you’re sure you can register the channel, you can do so with:

/msg ChanServ REGISTER <#channelname>

Note: The registration will be case-sensitive, so take care if there are branding rules you need to comply with.

Congratulations on your new Libera.Chat channel!


If you do not get the operator status, but believe you already registered this channel during a previous session, try using ChanServ OP:

/msg ChanServ OP <#channel>

If you did not previously attempt to register, and you do not get the operator status on join, it could be because there are people already in the channel. You will need to ask them to leave while you set it up. If they do not cooperate, you will likely need to pick a new name.

If the channel is already registered by someone else, but not in use, or there are no active operators, it may be subject to expiry, depending on the type of namespace it belongs to. As part of the expiry process, staff will take input from both you and any existing channel members.

If you are a representative of a project and you wish to use a channel that is already registered, you can ask staff about a group registration.

If you are unsure of any of the above, talk with Libera.Chat staff. You can find staff either in #libera or on /stats p.

Once you have resolved the conflict, you can resume the registration process.

Special Instructions for Group Contacts

Libera.Chat uses an Atheme feature called ProjectServ to track group registrations. It shows some additional information in NickServ and allows for convenient features such as CLAIM in ChanServ.

If you already have a group registration set up with us, and you are listed as a Group Contact (GC) for the namespace you have chosen, it will be displayed to you in your NickServ info. Look for a line like:

NickServ: Group contact for projectname (#projectname; projectname/*)

CLAIM will allow you to acquire a channel within your namespace even if that channel is already registered to someone else, without the need for staff intervention. It can also be used for initial registration even if it is not already taken.

09:23 -- ChanServ: ***** ChanServ Help *****
09:23 -- ChanServ:  
09:23 -- ChanServ: Help for CLAIM:
09:23 -- ChanServ:  
09:23 -- ChanServ: The CLAIM command allows you to take control of a channel
09:23 -- ChanServ: belonging to a project you are authorized to represent.
09:23 -- ChanServ:  
09:23 -- ChanServ: Syntax: CLAIM <#channel>                            
09:23 -- ChanServ:  
09:23 -- ChanServ: Examples:
09:23 -- ChanServ:     /msg ChanServ CLAIM #coolproject-dev            
09:23 -- ChanServ:  
09:23 -- ChanServ: ***** End of Help *****

Using CLAIM to grab a channel from someone else might be seen as hostile, or it could confuse people, so it is a good idea to at least give some warning. Try to ask for the cooperation of people who have already occupied or registered a channel before taking it from them.

Setting channel modes

Channels differ in what cmodes they need. Refer to the channel modes guide for detailed information about them.

The default modes set on a new channel are +Cnst.

C blocks CTCP commands other than the /me action, such as channel-wide queries of client info.

n prevents people who are not in the channel from sending messages to it.

s prevents the channel from being discoverable through channel lists, allowing you to choose when your channel is ready to be public. If you want your channel to be searched for, please remove this mode.

t limits channel topic changes to those with operator status.

To set channel modes, you use /mode <#channelname> [+|-]<mode>.

For example, during a spambot attack you might choose to only allow users who are logged in to join your channel. This is effective as most bots do not log in to accounts. To set the requirement, you would use the r mode.

To toggle r on, so only identified users can join:

/mode <#channelname> +r

To toggle r off, so everyone else can join again:

/mode <#channelname> -r

Setting up permissions

Once you have your channel registered, and your users start dropping in, you might also need to do some channel management if some of them outstay their welcome. If you enlist help for this, you will need to give your new operators permissions.

The permissions you can give are outlined in the output of /msg ChanServ HELP FLAGS, along with instructions about the use of TEMPLATE functionality.

If your channel is not set SECURE, then you can trial new operators by temporarily giving them the operator status.

/msg ChanServ OP <#channel> [nickname]

Substitute DEOP in place of OP to remove their status if you don’t like their performance. VOICE and DEVOICE are the equivalents for giving and taking voiced status.

The SECURE channel flag limits OP|DEOP|VOICE|DEVOICE functionality to only those who possess the corresponding ChanServ flags, which will prevent people from receiving these statuses on a temporary basis.

Be very careful who you grant the F flag to. They will have full permissions on the channel and will be able to remove your own F. The f flag will allow them to assign or unassign permissions they already have and is thus a safer option.

Unless the channel is assigned to a registered group you are listed as a Group Contact (GC) of, you will not have GC permissions and will not be able to get the channel back without their cooperation or by registering as a group.

We also recommend against using +O or +V as these flags mean people will be given operator or voiced status on joining a channel. See the catalyst guide for the philosophy behind this.

Other channel settings

There are various settings for ChanServ under SET. To see what’s currently available to you:

/msg ChanServ HELP SET

For example, if your channel is small and risks becoming empty due to daily user fluctuations, or things like netsplits, you can enlist ChanServ to GUARD it.

It is also a good idea to MLOCK channel modes to avoid losing them.