CINXE.COM
Libera Chat | A next-generation IRC network for FOSS projects collaboration!
<!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>Libera Chat | A next-generation IRC network for FOSS projects collaboration!</title> <meta name="generator" content="Jekyll v4.3.0" /> <meta property="og:title" content="Libera Chat" /> <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/" /> <meta property="og:url" content="https://libera.chat/" /> <meta property="og:site_name" content="Libera Chat" /> <meta name="twitter:card" content="summary" /> <meta property="twitter:title" content="Libera Chat" /> <script type="application/ld+json"> {"description":"A next-generation IRC network for FOSS projects collaboration!","@type":"Organisation","url":"https://libera.chat/","headline":"Libera Chat","name":"Libera Chat","@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> <style>.hero { grid-area: hero; background-color: var(--c-bg-secondary); min-height: 40vh; max-height: min-content; border-block-end: 1px solid var(--c-border); padding: 2rem 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 2fr auto auto; grid-template-areas: "logo logo" "tagline tagline" "cta cta"; justify-items: center; } .hero .logo, .hero .tagline, .hero .cta { max-width: var(--content-max-width); padding: 0 var(--content-inline-padding); } .hero .logo { grid-area: logo; justify-self: center; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; } .hero .logo img { width: 50%; } .hero .logo picture { display: flex; justify-content: center; } .hero .logo h1 { margin: 0; font-family: Comfortaa, Ubuntu, sans-serif; font-weight: 400; font-size: 2rem; margin-block-start: -1.5rem; text-align: center; font-weight: bold; } .hero .logo h1.newyear { margin-block-start: 0rem; } .hero .tagline { grid-area: tagline; align-self: end; } .hero .cta { grid-area: cta; display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; justify-content: center; width: 100%; } .hero .cta a { display: block; background-color: var(--c-hl); color: var(--c-text-on-hl); cursor: pointer; text-decoration: none; font-weight: 500; padding: var(--content-inline-padding); min-width: 25ch; text-align: center; margin: calc(var(--content-inline-padding) / 2); } .hero .cta a:hover { background-color: var(--c-hl-secondary); color: var(--c-text-on-hl-secondary); } @media screen and (min-width: 800px) { .hero { grid-template-rows: 1fr 1fr; grid-template-areas: "logo tagline" "logo cta"; } .hero .logo, .hero .tagline, .hero .cta { max-width: calc(var(--content-max-width) / 1.5); } .hero .logo { justify-self: end; } .hero .logo h1 { font-size: 3.25rem; margin-block-start: -2.5rem; } .hero .logo h1.newyear { margin-block-start: -0.5rem; } .hero .tagline, .hero .cta { justify-self: start; } .hero .logo img { width: 100%; } .hero .cta { justify-content: space-around; flex-direction: column; } .hero .cta a { margin: unset; margin-inline-end: var(--content-inline-padding); } } </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> <section class="hero"> <div class="logo"> <img min-height="60px" alt="" src="/static/img/libera-color.svg" data-proofer-ignore> <h1>Libera.​Chat</h1> </div> <div class="tagline"> <p> Providing a community platform for free and open-source software and peer directed projects. </p> <p> Connect by pointing your IRC client to <a href="ircs://irc.libera.chat:6697">irc.libera.chat:6697 (TLS)</a> </p> </div> <div class="cta"> <a role="button" href="/guides/clients">Choosing an IRC client</a> <a role="button" href="/chanreg">Channel Namespaces</a> </div> </section> <main id="main"><article> <h1>Addressing Burnout</h1> <p class="details"> <a href="/news/burnout"><time pubdate datetime="2025-04-01">1st April 2025</time></a> by Libera.Chat Staff </p> <blockquote> <p>Update: This was our April 1st 2025 prank. It was a reminder that burnout is real, especially in volunteer efforts, and that it has no easy answers. This is also a protest about the social burden created by LLMs - often trained using questionable ethics - including on the quality of support resources. And sometimes with the ultimate goal of replacing real human interactions that make communities like ours so special. <3</p> </blockquote> <!-- markdownlint-disable MD033 --> <picture> <source srcset="/static/img/aprildark.png" media="(prefers-color-scheme: dark)" /> <img class="feature" alt="Introducing APRIL" src="/static/img/aprilbright.png" data-proofer-ignore="" /> </picture> <!-- markdownlint-restore --> <p>Hello Libera.Chat users,</p> <p>There’s no easy way to say this, so here it is: staff are burned out. Many of us are facing heightened pressures at work which leave us with insufficient time and energy to maintain Libera.Chat. This has been a problem for a while now, but this year we are finally choosing to acknowledge it and evaluate potential solutions.</p> <p>Upon review, we found that a significant portion of staff time is consumed by answering support queries in <code class="language-plaintext highlighter-rouge">#libera</code>. As a channel that is often visited by newcomers to the network, many of the questions tend to be similar in nature. We’re thankful for the community of helpers in <code class="language-plaintext highlighter-rouge">#libera</code> who help us help you help us all, but there are some support matters which the helpers simply lack the privileges to assist with.</p> <p>In order to reduce support load, we have decided to do a trial run of LLM-based support scripts. Historically we have been reluctant to make use of machine learning in our tooling, but we’re not unreasonable, and the latest large language models are capable of replacing subject matter experts, just like every generation of LLMs since GPT3. We have been assured by key figures in the software development industry that long-standing issues with hallucinations have been worked out and that the amount of effort needed for human review is now an order of magnitude less than the amount of effort needed for a human to do those same tasks in the first place.</p> <p>Using state-of-the-art technology allows us to provide the models with full access to privileged staff interfaces without facing risks from adversarial inputs or prompt injection, so that they can even assist you in tasks that would previously have required a staff member to manually issue privileged commands. To alleviate any worries about disruptive or harmful actions taken by the LLM scripts, we have implemented a system of checks and balances where several different LLMs will be keeping tabs on each other by conversing in a private IRC channel inhabited purely by LLM staff members. Going forward, we hope to implement automated testing where LLM-powered guests will message the support scripts and evaluate the resulting actions.</p> <p>Staffers running these scripts will have auto-generated responses prefixed with <code class="language-plaintext highlighter-rouge">[LLM]</code> in compliance with <a href="https://libera.chat/news/llm-etiquette">our LLM etiquette</a>. These scripts will only reply to certain private messages and messages in <code class="language-plaintext highlighter-rouge">#libera</code>. Please note that we will be running these LLMs under tight resource constraints for ethical reasons. Additionally, they are trained exclusively on our staff members’ collective brainwaves, and absolutely no user data or logs have been processed by the model nor will be collected. As a result, these scripts will exhibit delayed responses, may occasionally not respond at all, and will sometimes generate contradictory nonsense. Despite this, we believe that using our new in-house model, APRIL v01, is the best option to ensure the availability of support on Libera.Chat.</p> <p>After ensuring the scripts are functional, some members of staff have expressed an intent to take a short break from their usual duties. If you wish to learn more about APRIL and discuss the use of LLMs in this context, please join us in our computer-aided enrichment center, <code class="language-plaintext highlighter-rouge">#libera-april</code>.</p> </article> <nav class="article-nav"> <div> <a href="/news/belated-state-of-the-network">Previous</a> </div> <div> <a href="/news">Archive</a> </div> <div> </div> </nav> </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> </div> </footer>