CINXE.COM
Channel and group registration | Libera Chat
<!DOCTYPE html> <html lang="en"><head> <link rel="preload" href="/static/fonts/comfortaa-v30-subset-regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/ubuntu-v15-latin-regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/ubuntu-v15-subset-500.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/img/libera-color.svg" as="image" type="image/svg+xml"> <meta charset="utf-8"> <meta content="IE=edge" http-equiv="X-UA-Compatible"> <meta content="width=device-width, initial-scale=1" name="viewport"><!-- Begin Jekyll SEO tag v2.7.1 --> <title>Channel and group registration | Libera Chat</title> <meta name="generator" content="Jekyll v4.3.0" /> <meta property="og:title" content="Channel and group registration" /> <meta property="og:locale" content="en_GB" /> <meta name="description" content="A next-generation IRC network for FOSS projects collaboration!" /> <meta property="og:description" content="A next-generation IRC network for FOSS projects collaboration!" /> <link rel="canonical" href="https://libera.chat/chanreg/" /> <meta property="og:url" content="https://libera.chat/chanreg/" /> <meta property="og:site_name" content="Libera Chat" /> <meta name="twitter:card" content="summary" /> <meta property="twitter:title" content="Channel and group registration" /> <meta property="article:publisher" content="liberachat" /> <script type="application/ld+json"> {"description":"A next-generation IRC network for FOSS projects collaboration!","headline":"Channel and group registration","url":"https://libera.chat/chanreg/","@type":"WebPage","@context":"https://schema.org"}</script> <!-- End Jekyll SEO tag --> <link rel="alternate" type="application/atom+xml" title="Libera Chat News" href="/atom.xml"> <link rel="icon" type="image/svg+xml" href="/static/img/libera-color.svg"> <link rel="alternate icon" href="/favicon.ico"> <!-- Stylesheets --> <style>/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ *,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}</style> <style>@font-face { /* comfortaa-regular - subset */ font-family: 'Comfortaa'; src: url('/static/fonts/comfortaa-v30-subset-regular.woff2') format('woff2'), url('/static/fonts/comfortaa-v30-subset-regular.woff') format('woff'), url('/static/fonts/comfortaa-v30-subset-regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; /* . C L a b e h i r t */ unicode-range: U+002E, U+0043, U+004C, U+0061-0062, U+0065, U+0068-0069, U+0072, U+0074; } @font-face { /* ubuntu-regular - latin */ font-family: 'Ubuntu'; src: local(''), url('/static/fonts/ubuntu-v15-latin-regular.woff2') format('woff2'), url('/static/fonts/ubuntu-v15-latin-regular.woff') format('woff'), url('/static/fonts/ubuntu-v15-latin-regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; } @font-face { /* ubuntu-500 - subset */ font-family: 'Ubuntu'; src: local(''), url('/static/fonts/ubuntu-v15-subset-500.woff2') format('woff2'), url('/static/fonts/ubuntu-v15-subset-500.woff') format('woff'), url('/static/fonts/ubuntu-v15-subset-500.ttf') format('truetype'); font-style: normal; font-weight: 500; font-display: swap; /* C c e n o t */ unicode-range: U+0043 U+0063 U+0065 U+006E U+006F U+0074; } :root { --header-height: 4rem; --content-inline-padding: 1.3rem; --content-max-width: 80ch; /* define our palette for all themes */ --white: #fff; --gray-100: #f3f4f6; --gray-200: #e5e7eb; --gray-300: #d1d5db; --gray-400: #9ca3af; --gray-800: #1f2937; --gray-900: #111827; --brand-purple: #5555ff; --brand-pink: #ff55dd; /* light-theme vars */ --c-bg: var(--gray-100); --c-bg-secondary: var(--white); --c-text: var(--gray-800); --c-border: var(--gray-300); --c-hl: var(--brand-pink); --c-hl-secondary: var(--brand-purple); --c-text-on-hl: var(--gray-800); --c-text-on-hl-secondary: var(--white); } @media (prefers-color-scheme: dark) { :root { --c-bg: var(--gray-800); --c-bg-secondary: var(--gray-900); --c-text: var(--gray-200); --c-border: var(--gray-400); } } * { color: var(--c-text); box-sizing: border-box; font-family: Ubuntu, sans-serif; letter-spacing: .1ch; } main *, .hero * { line-height: 1.5; } body { background-color: var(--c-bg); min-height: 100vh; display: grid; grid-template-rows: var(--header-height) min-content auto auto min-content; grid-template-columns: 1fr; grid-template-areas: "header" "hero" "main" "aside" "footer"; } a { text-decoration: underline; text-underline-offset: .05rem; } a:hover { text-underline-offset: .25rem; color: var(--c-hl); } h1, h2, h3, h4, h5, h6, p { word-break: break-word; scroll-margin-block-start: 4.5rem; } h1, h2, h3, h4, h5, h6, strong { font-weight: 500; } em { font-style: italic; } h1, h2, h3, h4, h5, h6 { margin-block-end: 0; text-wrap: balance; } h1+*, h2+*, h3+*, h4+*, h5+*, h6+* { margin-block-start: 0; } main h1 { font-size: 2.25rem; } main h2 { font-size: 1.5rem; } main h3 { font-size: 1.25rem; } main :is(h2, h3, h4, h5, h6) a { text-decoration: none; position: relative; } main :is(h2, h3, h4, h5, h6) a:hover::before { content: '#'; position: absolute; left: -1.5ch; bottom: 0; font-weight: normal; font-size: 1rem; } @media screen and (min-width: 800px) { body { grid-template-columns: min-content 8fr; grid-template-rows: 4rem min-content auto min-content; grid-template-areas: "header header" "hero hero" "aside main" "footer footer"; } } .skiplink { z-index: 9999; transform: translateY(calc(-100% - 1rem)); display: block; position: absolute; height: 4rem; padding: var(--content-inline-padding); background-color: var(--c-bg); border-inline-end: 1px solid var(--c-border); border-block-end: 1px solid var(--c-border); } .skiplink:focus { z-index: 9999; transform: translateY(0); } header { grid-area: header; height: var(--header-height); border-block-end: 1px solid var(--c-border); background-color: var(--c-bg-secondary); position: sticky; top: 0; z-index: 1000; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; } header a { text-decoration: none; } header .logo { display: flex; flex-wrap: nowrap; align-items: center; height: 100%; padding-inline-start: var(--content-inline-padding); } header .logo img { padding-block-end: .3rem; } header .logo h1 { margin: 0; margin-bottom: -.4rem; font-size: 1.7rem; line-height: 1; font-family: Comfortaa, Ubuntu, sans-serif; font-weight: bold; } header .nav-toggle { display: block; border-inline-start: 1px solid var(--c-border); padding: 0 1rem; display: flex; align-items: center; cursor: pointer; } header nav details summary, header nav a { border-block-end: 1px solid var(--c-border); padding: 1rem; display: flex; align-items: center; cursor: pointer; white-space: nowrap; } header nav details summary::before { content: "►"; padding-inline-end: .3rem; } header nav details[open] summary::before { content: "▼"; } header nav .nav-close { display: none; } header nav.show .nav-close { display: flex; } header nav { transform: translateY(calc(-100% - 1rem)); display: flex; flex-direction: column; justify-content: flex-start; position: fixed; right: 0; top: 0; bottom: 0; background-color: var(--c-bg-secondary); min-width: 20rem; max-width: 30rem; border-inline-start: 1px solid var(--c-border); z-index: 10000; } header nav.show, header nav:focus-within { transform: translateY(0); } header nav details summary.highlight, header nav a.highlight { background-color: var(--c-hl); color: var(--c-text-on-hl); font-weight: 500; } header nav details summary:hover, header nav a:hover { background-color: var(--c-bg); } header nav details summary.highlight:hover, header nav a.highlight:hover { background-color: var(--c-hl-secondary); color: var(--c-text-on-hl-secondary); } header nav details { display: flex; flex-direction: column; position: relative; } header nav details a { padding-inline-start: 2.5rem; } @media screen and (min-width: 950px) { header .nav-toggle, header .nav-close, header nav.show .nav-close { display: none; } header nav { transform: initial; display: flex; flex-direction: row; justify-content: flex-end; position: initial; background-color: initial; min-width: unset; max-width: unset; border-inline-start: none; } header nav.show, header nav:focus-within { transform: initial; } header nav details summary, header nav a { border-block-end: none; border-inline-start: 1px solid var(--c-border); border-inline-end: 1px solid var(--c-border); padding: 0 1rem; display: flex; margin-inline-start: -1px; align-items: center; height: 100%; } header nav details:last-of-type summary { border-inline-end: none; } header nav details[open] summary { border-block-end: 1px solid var(--c-border); height: calc(100% + 1px); } header nav details div { position: absolute; right: 0; } header nav details div a { background-color: var(--c-bg-secondary); border-block-end: 1px solid var(--c-border); padding: 1rem; } } main { grid-area: main; padding: 0 var(--content-inline-padding); max-width: var(--content-max-width); min-width: 0; width: 100%; margin: 2rem auto; } nav.article-nav { display: flex; flex-direction: row; justify-content: center; } nav.article-nav div { width: 33%; text-align: center; } footer { grid-area: footer; align-self: end; background-color: var(--c-bg-secondary); border-block-start: 1px solid var(--c-border); padding: .5rem var(--content-inline-padding); display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; } footer div { line-height: 2; } footer div .mobile-hide { display: none; } footer div a { white-space: nowrap; } footer div a:not([rel*=license]), footer div .copyright { display: block; } @media screen and (min-width: 800px) { footer div { line-height: 1.5; } footer div:last-of-type { padding-inline-start: 1rem; } footer div .mobile-hide { display: inline; } footer div a:not([rel*=license]), footer div .copyright { display: initial; } } </style> <link rel="stylesheet" href="/static/css/additional-styles.css"> <script src="/static/js/header-links.js" defer></script> </head> <body><a class="skiplink" href="#main">Skip to content</a> <header> <a class="logo" href="https://libera.chat" aria-label="Libera Chat, back to start page"> <img alt="" src="/static/img/libera-color.svg" height="48px" data-proofer-ignore> <h1>Libera.​Chat</h1> </a> <a id="nav-toggle" class="nav-toggle hidden" aria-controls="main-nav"><span>Navigation</span></a> <nav class="" id="main-nav" aria-labelledby="nav-toggle" role="menubar"> <a id="nav-close" class="nav-close hidden" aria-controls="main-nav"><span>Close</span></a> <details name="main-navigation"> <summary >About</summary> <div> <a role="menuitem" href="/policies" ><span>Network Policies</span></a> <a role="menuitem" href="/guidelines" ><span>Channel Guidelines</span></a> <a role="menuitem" href="/news" ><span>Blog & News</span></a> <a role="menuitem" href="/about" ><span>About Libera Chat</span></a> <a role="menuitem" href="/bylaws" ><span>Bylaws</span></a> <a role="menuitem" href="/minutes" ><span>Meeting Minutes</span></a> <a role="menuitem" href="/annual-reports" ><span>Annual Reports</span></a> <a role="menuitem" href="/sponsors" ><span>Sponsors</span></a> </div> </details> <details name="main-navigation"> <summary >Contribute</summary> <div> <a role="menuitem" href="/contributing/donate" ><span>Donate</span></a> <a role="menuitem" href="/contributing/merch" ><span>Buy merch</span></a> <a role="menuitem" href="/contributing/sponsor" ><span>Sponsor Us</span></a> <a role="menuitem" href="/contributing/development" ><span>Development</span></a> </div> </details> <a role="menuitem" href="/chanreg"><span>Channel Namespaces</span></a> <a role="menuitem" href="/guides"><span>Guides</span></a> <a role="menuitem" href="/guides/faq"><span>FAQ</span></a> <details name="main-navigation"> <summary class="highlight" >Connect</summary> <div> <a role="menuitem" href="https://web.libera.chat" rel="noopener noreferrer" ><span>Webchat</span></a> <a role="menuitem" href="ircs://irc.libera.chat:6697" ><span>irc.libera.chat:6697 (TLS)</span></a> <a role="menuitem" href="/guides/connect" ><span>How to Connect</span></a> </div> </details> </nav> </header> <script async> const navToggle = document.querySelector('#nav-toggle') const navClose = document.querySelector('#nav-close') const mainNav = document.querySelector('#main-nav') // progressive enhancement! navToggle.classList.remove('hidden') navClose.classList.remove('hidden') navToggle.addEventListener('click', event => { event.preventDefault() mainNav.classList.toggle('show') }) navClose.addEventListener('click', event => { event.preventDefault() mainNav.classList.remove('show') }) </script> <main id="main"> <h1>Channel and group registration</h1> <p>This document aims to explain how to register a channel or group here on Libera.Chat as well as our policies surrounding channels and channel namespaces.</p> <h2 id="registering-a-channel">Registering a channel</h2> <p>When joining an unregistered and empty channel, you will automatically be given channel operator access on the channel. After verifying that your channel is in the correct namespace, you should <a href="/guides/creatingchannels">register it with ChanServ</a> in order to establish long-term control over the channel. We recommend that you choose the <a href="#channel-namespaces">appropriate namespace</a> to avoid a disruptive move later.</p> <p>Should the channel already exist but is <a href="#expiration-and-disputes">expired or otherwise unused</a>, Libera.Chat staff may be able to assist you in taking over the channel. For channels in the on-topic project and community namespace, this may involve proceeding with a <a href="#formal-group-registration">formal group registration</a> with us. For informal channels, we will check if it is expired and if there is consensus within the channel’s existing community for you to take it over.</p> <p>Once your channel is registered with ChanServ, regardless of channel namespace, you are free to use it in accordance with <a href="/policies">network policy</a>. You do <strong>not</strong> need the explicit approval of Libera.Chat staff in order to register a channel and start using it on our network. Formal group registration is <strong>not</strong> required to make use of channels in the on-topic project and community channel namespace, and we recommend that new initiatives do not immediately attempt a formal group registration.</p> <h2 id="channel-namespaces">Channel namespaces</h2> <p>Our <a href="/policies">policies</a> outline that channels on Libera.Chat fall into one of three categories and two namespaces. Channels that begin with only a single <code class="language-plaintext highlighter-rouge">#</code> character are primarily for on-topic project and community channels (e.g. <code class="language-plaintext highlighter-rouge">#linux</code>). Channels that begin with two or more <code class="language-plaintext highlighter-rouge">#</code> characters are for informal channels (e.g. <code class="language-plaintext highlighter-rouge">##chat</code>).</p> <p><a href="#formal-group-registration">Registered groups</a> additionally have their own channel namespaces that they control. This includes the “main” channel for that namespace (e.g. <code class="language-plaintext highlighter-rouge">#libera</code>) as well as all channels beginning with that name followed by a hyphen (e.g. <code class="language-plaintext highlighter-rouge">#libera-dev</code>). A registered group may have control over multiple channel namespaces. To check if a registered channel belongs to a particular group’s channel namespace, you can use the <code class="language-plaintext highlighter-rouge">/msg ChanServ INFO</code> command on that channel; if it is, you will receive a line like the following towards the bottom of the output:</p> <pre><code class="language-irc">The #libera namespace is registered to the libera.chat project </code></pre> <h3 id="what-is-on-topic">What is on-topic?</h3> <p>Projects considered to be on-topic for Libera.Chat are primarily free and open-source software projects, and other peer-directed projects, for instance Linux User Groups (LUGs), student societies, hacker- or makerspaces and other collaborative efforts. At staff discretion, it can also cover projects or companies of general interest to our user base.</p> <p>If your channel fits the above criteria and you are or have the official blessing of someone who is able to speak for the project or group, then you would qualify for an on-topic project channel. If your channel fits the above criteria but is otherwise unofficial, then you would qualify for an on-topic community channel. If your channel does not fit the above criteria, and it is not otherwise <a href="/policies/#unwanted-content-and-behaviour">off-topic for Libera.Chat</a>, then you would qualify for an informal channel.</p> <h3 id="expiration-and-disputes">Expiration and disputes</h3> <p>On-topic project channels and on-topic community channels do not expire. An official claim to the name of an on-topic community channel is not needed, but not having it bears the risk of losing the channel should an on-topic entity with a valid claim start an official presence on Libera.Chat. Staff will try to find a good solution for both parties in such cases.</p> <p>Informal channels are claimed on a first-come, first-served basis. They will expire if unused for a long time, see our <a href="/policies/#channels">policies</a> for details regarding when this occurs. You can <a href="/guides/faq#how-to-find-libera-chat-staff">contact a staff member on IRC</a> with a request to take over an expired informal channel; they are not automatically deleted once they expire. Such requests are not automatically granted; we will ask you to work with the channel’s other members to determine if you are the best person to take it over or not.</p> <p>Staff reserve the right to reassign control over any channel, regardless of which channel namespace it was registered in and regardless of its expiration status. This is not an action we take lightly, but may become necessary if disputes regarding channel control cannot be resolved via other means.</p> <h2 id="formal-group-registration">Formal group registration</h2> <p>Established on-topic projects and communities are able to formally register their project or community with Libera.Chat. This typically happens after the channel is already registered with ChanServ and both the channel as well as the project have existed for a while, and the channel decides it wishes to establish a larger IRC presence on Libera.Chat. There is no requirement for on-topic projects and communities to formally register with us.</p> <p>A formal project registration is done for on-topic project channels, and requires someone who is able to speak on behalf of the project to reach out to us to initiate the registration. This could be:</p> <ul> <li>The project founder</li> <li>A lead developer</li> <li>Someone in a management position</li> <li>A board member</li> <li>…</li> </ul> <p>A formal community registration is done for on-topic community channels, and does not require the registrant to have an official claim to the channel’s name. Libera.Chat staff will assist in determining which type of formal registration is appropriate for your project or community.</p> <h3 id="benefits-of-group-registration">Benefits of group registration</h3> <p>On-topic projects and communities who have formally registered with Libera.Chat have extra tools at their disposal to help manage their IRC presence:</p> <ul> <li>Your liaisons with us, known as group contacts, will be invited to <code class="language-plaintext highlighter-rouge">#libera-communities</code> where they can more easily reach Libera.Chat staff and can be involved in discussions concerning potential future directions and improvements for Libera.Chat.</li> <li>Control over their group’s channel namespaces. For example, Libera.Chat itself owns the channel <code class="language-plaintext highlighter-rouge">#libera</code> and all channels beginning with <code class="language-plaintext highlighter-rouge">#libera-</code>. Group contacts can register or take over channels within their group’s channel namespace with the <code class="language-plaintext highlighter-rouge">/msg ChanServ CLAIM</code> command.</li> <li>By default, any user will be able to register channels within your channel namespaces with ChanServ. This makes it easier for users to create topical sub-channels for purposes such as a more in-depth discussion than the main channel can accommodate or as social hangout spots. You can optionally restrict this so that only group contacts are able to register channels within your namespace with ChanServ, for tighter control over your project’s presence on Libera.Chat. Regardless of the setting you choose, group contacts will receive notice of all channels registered under their namespace and can audit their channel list at any time with <code class="language-plaintext highlighter-rouge">/msg ChanServ LISTGROUPCHANS</code>.</li> <li>Group contacts will be able request cloaks for their group’s members which highlight that member’s involvement or association with their group. For example, Libera.Chat staff each have cloaks beginning with <code class="language-plaintext highlighter-rouge">libera/staff/</code> and official bots managed by Libera.Chat have cloaks beginning with <code class="language-plaintext highlighter-rouge">libera/bot/</code> to represent their respective associations with Libera.Chat. Formal community registration cloaks will begin with an <code class="language-plaintext highlighter-rouge">about/</code> prefix to indicate that the community is not official. Group contacts can audit the list of users with cloaks under their project at any time with <code class="language-plaintext highlighter-rouge">/msg NickServ LISTGROUPCLOAKS</code>.</li> <li>We offer to send messages about important releases or events of formally registered project as a “wallop” message to our users.</li> </ul> <h3 id="group-contacts">Group contacts</h3> <p>Group contacts are the people ultimately responsible for your project here on Libera.Chat. They are empowered to claim channels within your namespace, assign cloaks to other users, and act as liaisons between Libera.Chat staff and your project. We <strong>strongly recommend</strong> having between 2-4 group contacts and that at least one group contact is publicly listed to act as a point of contact for any users interested in your project.</p> <p>Group contacts must have registered accounts with NickServ on Libera.Chat. Usually, you will want to establish yourself as one of the group contacts if you are formally registering a group with us. The list of group contacts for your project or community can be modified later by sending an email to <a href="mailto:projects@libera.chat">projects@libera.chat</a> as the need arises.</p> <p>Group contacts can be either publicly listed or hidden, and this choice can be made individually per group contact. Publicly listed contacts will be shown in <code class="language-plaintext highlighter-rouge">/msg ChanServ INFO</code> output for all channels within your group’s channel namespaces. Hidden group contacts are known only to you and Libera.Chat staff.</p> <h3 id="registering-a-group">Registering a group</h3> <p>The <a href="/about#projects-and-community-team">Projects & Community team</a> will act as your liaisons during the formal group registration process and throughout your tenure on the Libera.Chat network. If you wish to discuss the registration process, find out if Libera.Chat could be a good fit for your group or register your group, please feel free to drop any of the team members a line on IRC. If none are online, feel free to reach out to staff in general and they will forward your request to the team, which will get back to you as soon as possible. Once you have discussed your project or community with a staff member, you’ll be asked to email <a href="mailto:projects@libera.chat">projects@libera.chat</a> with the details of your request.</p> <p>Do not email us without having first discussed your registration on IRC with a member of staff. This helps ensure that your project or community is deemed to be on-topic, that we have a chance to answer any questions you may have about the group registration process, and that you have a point of contact throughout the group registration process to ensure your email is not overlooked or forgotten.</p> <p>Please note that we only register established projects and communities. If your project or community does not yet exist, you are still free to register a channel with ChanServ to discuss and bootstrap your project or community. Once you feel your project or community is established enough to move forward with a formal registration, reach out to us.</p> <p>To ensure the registration process goes as smoothly as possible, please be prepared with the answers to the following questions:</p> <ul> <li>Which staff member did you discuss your registration with prior to emailing?</li> <li>What is the name of your project or community?</li> <li>What is a brief description (1-2 sentences) of your project or community?</li> <li>Which URLs can we visit to find out more information about your project or community? For example, a project website or source code repositories.</li> <li>Can we list your project publicly, such as on the Libera.Chat website?</li> <li>What is your relationship to or position in the project or community?</li> <li>What are the NickServ account names for the group contacts for your project and community (including yourself if desired), and should they be publicly listed or hidden?</li> <li>Which channel namespaces should be controlled by your project or community (typically <code class="language-plaintext highlighter-rouge">#projectname</code> and <code class="language-plaintext highlighter-rouge">#projectname-*</code>)?</li> <li>Would you like to restrict channel registration in your channel namespaces such that only group contacts are able to register channels with ChanServ?</li> <li>What cloaks would you like to be available for your project or community’s members (typically <code class="language-plaintext highlighter-rouge">projectname/*</code> for project registrations and <code class="language-plaintext highlighter-rouge">about/communityname/*</code> for community registrations)?</li> </ul> </main><footer> <div> <span class="copyright">© Libera Chat's contributors 2021</span> (<a rel="license noopener noreferrer" href="/LICENSE-content.txt">Content CC BY-NC-SA</a>, <a rel="license noopener noreferrer" href="/LICENSE-code.txt">Code MIT</a>) <span class="mobile-hide">/</span> <a href="/atom.xml">Feed (atom)</a> <span class="mobile-hide">/</span> <a href="/privacy">Privacy</a> </div> <div> <a rel="me noopener noreferrer" href="https://fosstodon.org/@liberachat">Mastodon</a> <span class="mobile-hide">/</span> <a href="https://github.com/Libera-Chat/libera-chat.github.io" rel="noopener noreferrer">GitHub</a> <span class="mobile-hide">/</span> <a href="https://bsky.app/profile/libera.chat" rel="noopener noreferrer">Bluesky</a> <span class="mobile-hide">/</span> <a href="https://facebook.com/liberachat" rel="noopener noreferrer">Facebook</a> </div> </footer>