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 accounts and login
- ChanServ channel registration and access
- MemoServ messages between accounts
- HostServ virtual hosts
- BotServ per-channel bots
- OperServ network operator tools
- GroupServ, StatServ, ChanFix, HelpServ, InfoServ, ReportServ, GameServ, DiceServ, DictServ, DebugServ
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 (Admin, 𝐚𝐝𝐦𝐢𝐧), 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.