14 Services
Jean edited this page 2026-07-21 14:39:14 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Services

echo runs each network service as its own pseudo-client. You talk to one by messaging it:

/msg NickServ REGISTER hunter2 alice@example.net

Most clients also carry short aliases (/ns, /cs, /os, /ms, /hs, /bs, /gs), which echo answers over SQUERY. Every service has built-in help: /msg <Service> HELP lists its commands and /msg <Service> HELP <command> explains one.

The whole suite starts by default. To run a subset, list the ones you want under [modules].


NickServ

Your account and everything tied to your identity. Registering a nick claims it as an account; identifying to it proves you own it.

Command Syntax What it does
REGISTER REGISTER <password> [email] Register your current nick as an account.
IDENTIFY IDENTIFY [account] <password> Log in.
LOGIN LOGIN <nick> <password> Log in and take the nick back in one step.
LOGOUT LOGOUT Log out; your nick becomes a guest nick.
GHOST GHOST <nick> [password] Disconnect a stale session sitting on your nick.
RECOVER RECOVER <nick> [password] Reclaim your nick from another session.
INFO INFO [account] Show account details.
SET SET PASSWORD <new>, SET EMAIL <address>, SET GREET [text], SET AUTOOP {ON|OFF}, SET KILL {ON|OFF}, SET HIDE STATUS {ON|OFF} Change your password, email, or preferences.
CERT CERT ADD [password] <fingerprint>, CERT DEL [password] <fingerprint>, CERT LIST [password] Manage the TLS fingerprints that log you in via SASL EXTERNAL.
AJOIN AJOIN ADD <#channel>, AJOIN DEL <#channel>, AJOIN LIST Channels to auto-join when you log in.
GROUP GROUP <account> <password> Link this nick to an existing account.
GLIST / UNGROUP GLIST, UNGROUP [nick] List or drop grouped nicks.
ALIST ALIST List channels you hold access on.
RESETPASS RESETPASS <account>, then RESETPASS <account> <code> <newpassword> Reset a forgotten password by email.
CONFIRM CONFIRM <code> Confirm your email address.
VOUCH VOUCH <nick> Confirm a pending member (invite-only registration).
DROP DROP <password> Delete your account.

Operator: LIST <pattern>, GETEMAIL <email>, SUSPEND <account> [reason], UNSUSPEND <account>, NOEXPIRE <account> {ON|OFF}, SASET <account> PASSWORD|EMAIL|GREET ....

/msg NickServ REGISTER hunter2 alice@example.net
/msg NickServ IDENTIFY hunter2
/msg NickServ SET EMAIL alice@newmail.net
/msg NickServ CERT ADD a1b2c3...      # log in without a password using your client cert
/msg NickServ AJOIN ADD #dev
/msg NickServ GHOST alice hunter2     # kick a ghost off your nick, then reclaim it

Login (any mechanism) sets your account name on the ircd, so you show up as logged in to other clients and to bans that key on accounts. echo supports SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, and EXTERNAL (certificate).

Look-alike names are refused. REGISTER rejects a nick or channel that mixes two alphabets (the classic аdmin with a Cyrillic а), is built entirely of homoglyphs imitating Latin, uses styled fullwidth or math letters (, 𝐚𝐝𝐦𝐢𝐧), or hides invisible or text-direction characters. Genuine monolingual text passes, accented French included. Blocked attempts are announced to the staff log and recorded for OperServ LOGSEARCH. On by default; see [register].


ChanServ

Channel registration and everything that follows from owning a channel: who gets ops, which modes stay locked, the topic, bans.

Command Syntax What it does
REGISTER REGISTER <#channel> Register a channel (you must be opped in it).
INFO INFO <#channel> Show registration, founder, settings, topic setter.
SET SET <#channel> FOUNDER <account>, DESC <text>, SUCCESSOR <account>|OFF, SIGNKICK|PRIVATE|PEACE|SECUREOPS|SECUREVOICES|RESTRICTED|AUTOOP|KEEPTOPIC|TOPICLOCK {ON|OFF} Transfer the founder or flip a channel toggle.
ACCESS ACCESS <#channel> LIST, ADD <account|!group> <sop|op|halfop|voice>, DEL <account|!group> Manage the access list by tier.
SOP / AOP / HOP / VOP SOP|AOP|HOP|VOP <#channel> ADD|DEL|LIST [account] Tiered access shortcuts.
FLAGS FLAGS <#channel> [account [+/-flags]] Granular per-account flags (see below).
LEVELS LEVELS <#channel> [SET <capability> <tier> | RESET <capability>] Tune which tier holds each capability.
STATUS STATUS <#channel> [nick] Show a user's effective access.
OP / DEOP / VOICE / DEVOICE OP <#channel> [nick] (and the rest) Give or take status.
OWNER / PROTECT / HALFOP OWNER|PROTECT|HALFOP <#channel> [nick] (plus DE- forms) Higher status modes.
UP / DOWN UP <#channel>, DOWN <#channel> Apply or drop your own auto-status.
TOPIC TOPIC <#channel> <text> Set the topic.
AKICK AKICK <#channel> ADD <mask> [reason], DEL <mask>, LIST, CLEAR Auto-kick list.
BAN / UNBAN / KICK BAN <#channel> <nick> [reason], UNBAN <#channel> [nick], KICK <#channel> <nick> [reason] One-off moderation.
MODE / MLOCK MODE <#channel> <modes>, MLOCK <#channel> [modes] Set modes now, or lock them permanently.
ENTRYMSG ENTRYMSG <#channel> [CLEAR | <text>] Message shown to users on join.
INVITE / GETKEY INVITE <#channel> [nick], GETKEY <#channel> Get in, or read the key.
ENFORCE / SYNC ENFORCE <#channel>, SYNC <#channel> Re-apply the mode lock / re-apply access to current members.
CLONE CLONE <source> <target> Copy settings from one channel to another.
DROP DROP <#channel> Delete the registration.

Operator: LIST, SUSPEND <#channel> [+expiry] [reason], UNSUSPEND, NOEXPIRE <#channel> {ON|OFF}.

/msg ChanServ REGISTER #dev
/msg ChanServ SOP #dev ADD alice
/msg ChanServ SET #dev SECUREOPS ON        # only access-list users keep ops
/msg ChanServ MLOCK #dev +ntc-k            # lock these modes on, that one off
/msg ChanServ AKICK #dev ADD *!*@spam.host Get out
/msg ChanServ TOPIC #dev Welcome to #dev

FLAGS letters: f full, o auto-op, O op (no auto-op), h auto-halfop, v auto-voice, t topic, i invite, a manage access, s settings, g greet, and d deny status (bar a user from any op or voice, and strip it if someone hands it to them anyway).

/msg ChanServ FLAGS #dev alice +ov         # give alice op and voice
/msg ChanServ FLAGS #dev troublemaker +d   # this user never gets status here

MemoServ

Messages to an account, delivered whether or not they're online.

Command Syntax What it does
SEND SEND <nick> <text> Leave a memo.
RSEND RSEND <nick> <text> Leave a memo with a read receipt.
LIST / READ LIST, READ <num>|NEW|ALL List or read memos.
DEL DEL <num>|ALL Delete memos.
CANCEL CANCEL <nick> Recall a memo you sent, if unread.
CHECK CHECK <nick> See whether a memo you sent was read.
INFO INFO Mailbox summary.
IGNORE IGNORE ADD <nick>, DEL <nick>, LIST Block memos from an account.
SET SET NOTIFY {ON|OFF}, SET LIMIT <n>|NONE Preferences.

Admin: SENDALL <text> (every account), STAFF <text> (every operator).

/msg MemoServ SEND alice back tomorrow, watch #dev
/msg MemoServ READ NEW

HostServ

Virtual hosts. A user takes one from an operator-offered menu or requests a custom one; operators approve and assign.

Command Syntax What it does
ON / OFF ON, OFF Turn your vhost on, or drop back to your normal host.
REQUEST REQUEST <host> Ask for a custom vhost.
OFFERLIST / TAKE OFFERLIST, TAKE <number> Browse the menu and take one.

Operator: SET <account> <host> [duration], DEL <account>, LIST, WAITING, ACTIVATE <account>, REJECT <account>, OFFER <host>, OFFERDEL <number>, FORBID <regex>, FORBIDDEL <number>.

/msg HostServ REQUEST alice.dev.example.net
/msg HostServ SET bob staff.example.net       # operator assigns a vhost directly
/msg HostServ ON

BotServ

A services bot that sits in a channel, speaks for staff, runs fantasy commands, and enforces kickers.

Command Syntax What it does
ASSIGN / UNASSIGN ASSIGN <#channel> <bot>, UNASSIGN <#channel> Put a bot in a channel, or remove it.
SAY / ACT SAY <#channel> <text>, ACT <#channel> <text> Speak (or /me) through the bot.
SET SET <#channel> <GREET|BANEXPIRE|NOBOT|VOTEKICK> <value>, SET <bot> PRIVATE <ON|OFF> Per-channel or per-bot settings.
KICK KICK <#channel> <CAPS|FLOOD|REPEAT|BADWORDS|...> <ON|OFF> [params] Configure the message kickers.
BADWORDS BADWORDS <#channel> ADD|DEL|LIST|CLEAR [pattern] The badword list.
TRIGGER TRIGGER <#channel> ADD <regex>|<response>[|<cooldown>], DEL <num>, LIST Keyword auto-responses.
INFO / BOTLIST / COPY INFO <bot|#channel>, BOTLIST, COPY <#source> <#dest> Inspect, list, or clone.

Operator: BOT ADD|CHANGE|DEL|LIST, AUTOASSIGN <bot>|OFF.

Fantasy commands run in-channel through the assigned bot: !op, !deop, !kick nick, !topic ..., and (with the game and dice services) !roll, !dict.

/msg BotServ ASSIGN #dev Robo
/msg BotServ KICK #dev FLOOD ON 5 3        # kick on 5 lines in 3 seconds
/msg BotServ SAY #dev meeting in 5

OperServ

The network operator toolbox. Every command is gated by a typed privilege tier (operator, administrator, root); see Operators.

Bans and enforcement

Command Syntax
AKILL AKILL ADD [+expiry] <user@host> <reason>, DEL <mask|number>, LIST [pattern]
SQLINE / SNLINE SQLINE ADD [+expiry] <nick> <reason>, SNLINE ADD [+expiry] <realname> <reason> (plus DEL/LIST)
SHUN / CBAN SHUN ADD [+expiry] <mask> <reason>, CBAN ADD [+expiry] <#channel> <reason> (plus DEL/LIST)
FORBID FORBID ADD <NICK|CHAN|EMAIL> <mask> <reason>, DEL ..., LIST
SPAMFILTER SPAMFILTER ADD <action> [+expiry] <regex> <reason>, DEL <regex|number>, LIST
SESSION / EXCEPTION SESSION LIST <min>, SESSION VIEW <ip>, EXCEPTION ADD <ip-mask> <limit> [reason]
CHANKILL CHANKILL <#channel> [reason]

Watching and auditing

Command Syntax
NOTIFY NOTIFY ADD +<expiry> <flags|*> <mask> <reason>, DEL, LIST, VIEW, CLEAR
INFO INFO <target>, INFO ADD <target> <note>, INFO DEL <target>
LOGSEARCH LOGSEARCH [pattern]
STATS STATS
REDACT REDACT <#channel|nick> <msgid> [reason]

Acting on users and channels

Command Syntax
KILL / KICK / MODE KILL <nick> [reason], KICK <#channel> <nick> [reason], MODE <#channel> <modes> [params]
SVSNICK / SVSJOIN / SVSPART SVSNICK <nick> <newnick>, SVSJOIN <nick> <#channel> [key], SVSPART <nick> <#channel> [reason]
IGNORE / GLOBAL IGNORE ADD [+expiry] <mask> [reason], GLOBAL <message>
PROTECT / SETALL PROTECT ALL|<account> [ON|OFF], SETALL <toggle> <ON|OFF>
JUPE JUPE <server.name> [reason], JUPE DEL, JUPE LIST

Daemon control (root)

Command Syntax
DEFCON DEFCON [1-5]
OPER OPER ADD <account> <priv[,priv]> [+duration], OPER DEL <account>, OPER LIST
SET SET READONLY {ON|OFF}
REHASH / RESTART / SHUTDOWN REHASH, RESTART [reason], SHUTDOWN [reason]
/msg OperServ AKILL ADD +7d *@evil.example.net repeated spam
/msg OperServ NOTIFY ADD +30d j #staff badnick* watching this pattern
/msg OperServ OPER ADD alice administrator
/msg OperServ LOGSEARCH alice

REHASH reloads the reloadable parts of the config (the log channel and its excludes, the registration and extban policy) without a restart.


The rest

GroupServ

Account groups whose members inherit the group's channel access. A channel access entry of !groupname grants access to every member.

REGISTER <!group>, DROP <!group>, INFO <!group>, LIST, ADD <!group> <account>, DEL <!group> <account>, FLAGS <!group> [account [+/-flags]]

/msg GroupServ REGISTER !devs
/msg GroupServ ADD !devs alice
/msg ChanServ ACCESS #dev ADD !devs op     # the whole group gets op on #dev

StatServ

SERVER for network-wide counts, /msg StatServ #channel for a channel's activity.

ChanFix

Reop a channel that lost all its ops, from op-time its regulars earned earlier. SCORES <#channel> shows the standings, CHANFIX <#channel> reops the trusted regulars.

HelpServ

An operator help-desk queue. Users open a ticket, operators work it.

REQUEST <message>, CANCEL, LIST [ALL], VIEW <id>, TAKE <id>, NEXT, CLOSE <id>

InfoServ

Network bulletins shown on connect and at login. POST <message>, LIST, DEL <number> for public notices; OPOST, OLIST, ODEL for operator-only ones.

ReportServ

User abuse reports that land in the operator audit trail. REPORT <nick|#channel> <reason> files one; operators LIST, VIEW <id>, CLOSE <id>, DEL <id>.

GameServ

A server-side referee for tic-tac-toe, Connect Four, and chess, with a ranked ladder. Moves are checked on the server, so a client can't cheat.

CHALLENGE <nick> <ttt|c4|chess>, ACCEPT [id], DECLINE [id], MOVE <id> <move>, RESIGN <id>, GAMES, STATS [nick], TOP [ttt|c4|chess]

/msg GameServ CHALLENGE bob chess
/msg GameServ MOVE 1 e2e4

DiceServ

Dice and math for tabletop play. ROLL <expr> (whole numbers), CALC <expr> (decimals), EXROLL/EXCALC show each die.

/msg DiceServ ROLL 2d6+1

DictServ

Dictionary and reference lookups over dict.org, off unless configured. DICT <word>, DEFINE <word>, THES <word>, and LOOKUP for the full list. Also answers !dict, !define, and friends through a channel bot.

DebugServ

Streams live services activity (logins, session lifecycle, account and channel changes) to the staff log channel. STATUS reports what it's currently reporting. Read-only.