docs: full reference for the daemon and echo services (modes, extbans, snomasks, commands, config reference, privileges, CLI, metrics/rpc, per-service pages)

This commit is contained in:
Jean Chevronnet 2026-08-30 21:00:58 +00:00
parent c4836c7dd1
commit d81c07ef01
No known key found for this signature in database
GPG key ID: 439666D63A9477E4
23 changed files with 1685 additions and 84 deletions

View file

@ -1,28 +1,50 @@
# IRCv3 capabilities
echoIRCd implements a broad set of IRCv3 capabilities. Clients negotiate them with `CAP LS` and
`CAP REQ`.
Clients negotiate capabilities with `CAP LS` / `CAP REQ`. echoIRCd advertises the following.
`draft/multiline`, `sasl`, and `draft/account-registration` carry `=`-value parameters (limits, the
SASL mechanism list, enabled sub-features) to CAP-302 clients.
## Advertised capabilities
## Ratified
```text
server-time message-tags account-tag account-notify
extended-join chghost multi-prefix away-notify
invite-notify setname echo-message userhost-in-names
batch labeled-response standard-replies extended-monitor
draft/chathistory draft/event-playback draft/message-redaction
draft/multiline draft/metadata-2 draft/read-marker draft/webpush
draft/account-registration sts
```
| Capability | Meaning |
| --- | --- |
| `sasl` | SASL authentication (mechanism list attached for CAP 302) |
| `server-time` | A `time=` tag with each message's server timestamp |
| `message-tags` | Generic message-tag support, including relaying client `+` tags |
| `multi-prefix` | Show all of a member's status prefixes in NAMES/WHO |
| `away-notify` | Real-time AWAY / back notifications |
| `account-notify` | Notify when a user logs in/out of an account |
| `extended-join` | JOIN carries the account name and realname |
| `chghost` | Real-time host/ident change notifications |
| `userhost-in-names` | Full `nick!user@host` in NAMES |
| `echo-message` | Echo the sender's own PRIVMSG/NOTICE back |
| `invite-notify` | Notify channel ops when a user is invited |
| `setname` | Real-time realname change notifications |
| `extended-monitor` | MONITOR reflects extended state changes |
| `account-tag` | An `account=` tag identifying the sender's account |
| `standard-replies` | Structured `FAIL` / `WARN` / `NOTE` replies |
| `labeled-response` | Correlate a command with its response via `label` |
| `batch` | Group related messages into a `BATCH` |
| `cap-notify` | Tell the client when caps are added/removed |
## Notable features
## Draft & vendor
- **CHATHISTORY** — replay recent conversation, with server-side storage.
- **labeled-response** + **batch** — correlate replies to the command that caused them.
- **multiline** — send a message that spans lines as a single logical message.
- **STS** — advertise a strict-transport-security policy so clients upgrade to TLS.
- **draft/webpush** — RFC 8291 / 8292 Web Push notifications for supporting clients.
| Capability | Meaning |
| --- | --- |
| `draft/chathistory` | Request replay of past channel/DM messages |
| `draft/event-playback` | Include channel events (JOIN/PART/QUIT/NICK/MODE/TOPIC/KICK) in history |
| `draft/message-redaction` | `REDACT` a previously-sent message |
| `draft/pre-away` | Set AWAY during registration |
| `draft/metadata-2` | Per-user/channel arbitrary metadata |
| `draft/multiline` | Send one logical message across multiple lines |
| `draft/account-registration` | In-band account `REGISTER` / `VERIFY` |
| `draft/json-log` | Structured JSON tag on server notices (opers) |
| `draft/extended-isupport` | Re-request ISUPPORT (005) tokens on demand |
| `draft/relaymsg` | Send channel messages under a spoofed relay nick (bridges) |
| `draft/channel-rename` | Rename a channel in place (`RENAME`) |
| `draft/read-marker` | Per-conversation read-marker sync across devices |
| `draft/webpush` | Web Push subscription for backgrounded/away notifications |
| `draft/filehost` | Advertise an external file-host + signed upload links |
| `no-implicit-names` | Suppress the automatic NAMES burst on JOIN |
## SASL
SASL is a capability too — see [Accounts & SASL](/docs/accounts) for the supported mechanisms.
For SASL mechanisms, see [Accounts & SASL](/docs/accounts).