Skip to content

Channels

Channels are virtual spaces where users can chat. A channel name must start with a prefix character:

PrefixTypeDefault join limit
#Standard (public) channel20 per user
&Local channel5 per user

Channel names may contain letters (a-z, A-Z), digits (0-9), underscores (_), and hyphens (-). The maximum name length is 64 characters (excluding the prefix), configurable via max_channel_name_length.

Examples of valid channel names: #general, #my-project, &local-chat

A channel is created automatically when the first user joins it. That user becomes the channel operator (+o) automatically.

If the channel is registered with ChanServ, the founder’s privileges and settings are applied when the channel is (re)created.

LimitDefaultConfig key
# channels per user20channel_join_limits: %{"#" => 20}
& channels per user5channel_join_limits: %{"&" => 5}
Max name length64max_channel_name_length
Max topic length300max_topic_length
Max kick message255max_kick_message_length
Max modes per MODE command20max_modes_per_command
Max ban entries (+b)100max_list_entries: %{"b" => 100}
ModeNameDescription
+bBanPrevents matching users from joining
+CNo CTCPBlocks CTCP messages
+cNo ColorsBlocks messages with IRC color codes
+dDelay MessageUsers must wait N seconds before speaking after joining
+eBan ExceptionExempts matching users from +b bans
+iInvite OnlyOnly invited users (or those matching +I) can join
+IInvite ExceptionExempts from +i invite requirement
+jJoin ThrottleLimits join rate (joins:seconds format)
+kKeyRequires a password to join
+lLimitMaximum number of users allowed
+mModeratedOnly voiced/opped users can speak
+MRegistered Only SpeakOnly registered users may speak
+nNo External MessagesMessages only from users in the channel
+OOper OnlyOnly IRC operators may join
+oOperatorChannel operator privileges (per-user)
+pPrivateHidden from LIST (but shown in WHOIS)
+rRegisteredChannel is registered with ChanServ
+RRegistered Only JoinOnly registered users may join
+sSecretHidden from LIST and WHOIS
+tTopic LockOnly ops can set the topic
+TNo NOTICEsBlocks NOTICE messages in the channel
+uAuditoriumHides join/part/quit from non-voiced users
+vVoiceCan speak in moderated channels (per-user)
+zSecure OnlyOnly users with SSL/TLS (+Z) may join

See Channel Modes for complete details on each mode.

The channel topic is set with /topic #channel New topic here. Rules:

  • Maximum length: 300 characters (configurable)
  • When +t is set, only channel operators can change the topic
  • When a channel is registered with ChanServ and KEEPTOPIC is enabled (default), the topic is restored when the channel is re-created after becoming empty

Bans (+b) use IRC mask format: nick!ident@hostname. Wildcards * and ? are supported.

+b *!*@192.168.1.100 # Ban by IP
+b BadUser!*@* # Ban by nick
+b *!badident@* # Ban by ident
+b *!*@*.spammer.net # Ban by hostname pattern

Ban exceptions (+e) override bans for matching users. A user matching both a ban and an exception is allowed in.

Invite exceptions (+I) allow users matching the mask to join invite-only (+i) channels without an explicit invite.

Join throttle format: N:T where N = max joins allowed per T seconds.

+j 5:60 # Maximum 5 joins per 60 seconds
+j 3:10 # Maximum 3 joins per 10 seconds

IRC operators bypass join throttle restrictions.

When +u (Auditorium) is set:

  • Users with voice (+v) or higher can see join/part/quit messages normally
  • Regular users do not see join/part/quit messages from other regular users
  • This is useful for large channels or announcement-style rooms

When +d N is set, users must wait N seconds after joining before they can send messages. This helps prevent join floods.

When a channel is registered with ChanServ, the +r mode is set by the server. This is informational — it tells users the channel has a registered owner.

Within a channel, users can have privilege modes:

SymbolModeDescription
@+o (Operator)Full channel management: kick, ban, set modes, change topic
++v (Voice)Can speak in moderated (+m) channels

The first user to join a channel automatically receives +o. Channel operators can grant or remove these modes.