Client-to-Client Protocol (CTCP) messages

Revision 0.10

Red denotes a conflicting CTCP definition, gray for deprecated (however quite possibly still in use), and blue for OK.

For further information, feel free to see the Modern Client-to-Client Protocol (CTCP) docs.

This file is intended to be a useful resource for people implementing IRC software and is not an authoritative source.
It is kept up-to-date and correct on a best-effort basis. Feel free to check out the other files maintained here.

Updates? Corrections? Please submit an issue or a pull request on the Github repo or talk to us at #ircdocs on Freenode. Thank you!

Name Type Format Spread Description
ACTION Extended Formatting ACTION <text>

Examples:

  • ACTION writes a specification
Universal

Displays <text> as an action or emote. In clients, it’s generally activated with the command /me

AVATAR Metadata Query Specific to KVIrc

Returns an URL to an “avatar” image chosen by the user.

CLIENTINFO Metadata Query CLIENTINFO <token>{ <token>}

Examples:

  • CLIENTINFO ACTION CLIENTINFO PING VERSION
Widely implemented

Returns a list of the CTCP messages that this client supports and implements.

DCC Extended Query DCC <type> [varies] Widely implemented

Sets up and controls connections that go directly between clients, bypassing the IRC server. This is typically used for features that require a large amount of traffic between clients or simply wish to bypass the server itself such as file transfer, direct chat, and voice messages.

FINGER Metadata Query FINGER <info> Widely implemented

Returns miscellaneous info about the user, typically the same information that’s in their realname However, some implementations return the client name and version instead.

PAGE Extended Query Rarely implemented

Does something to notify the recipient off-band (e.g. playing a sound; playing the given message via text-to-speech; etc.).

PING Extended Query PING <info>

Examples:

  • PING 1473523721 662865
  • PING foo bar baz
Universal

Confirms reachability with other clients and checks latency.

SOURCE Metadata Query SOURCE <info>

Examples:

  • SOURCE https://weechat.org/download
Rarely implemented

Returns the location of the source code for the client.

TIME Extended Query TIME <timestring>

Examples:

  • TIME 2016-09-26T00:45:36Z
Almost Universal

Return the client’s local time in an unspecified human-readable format. I recommend using ISO 8601 format, but raw ctime() output appears to be the most common in practice. New implementations should consider using UTC time for privacy reasons.

VERSION Metadata Query VERSION <verstring>

Examples:

  • VERSION WeeChat 1.5-rc2 (git: v1.5-rc2-1-gc1441b1) (Apr 25 2016)
Universal

Return the name and version of the client software in use. There’s no specified format for the version string.

USERINFO Metadata Query USERINFO <info> Widely implemented

Returns miscellaneous info about the user, typically the same information that’s in their realname However, some implementations return <nickname> (<realname>) instead.