Client To Client Protocol
IRC Protocol extension from 1990, invented by Markku Savela (msa). It didn't get mentioned in the official IRC protocol specification, not so much because it wasn't considered official, but much more because it didn't affect server protocol, thus it didn't seem to be appropriate to have it in there.
See http://irchelp.org/irchelp/rfc/ctcpspec.html for the CTCP specification.
In today's IRC servers, CTCP is often being parsed and, when asked to, filtered, so it would have been a better idea to have the protocol defined by RFC, after all. Doesn't matter - so far hardly anyone questions the necessity and historic relevance of this protocol.
ACTION, VERSION and PRESENCE!
How is PSYC related to this? For historic reasons, CTCP ACTION and _action are brother and sister. Also, psyced now supports a new CTCP PRESENCE as described on presence. Obviously psyced also supports essential things like CTCP VERSION and maps it to the equivalent functions of PSYC and Jabber protocols.
IRC-style implementation of the /ping command.
psyced has experimental support for a typing notification protocol.
CTCP TS for timestamps
Whenever you /set timestamp on psyced provides your IRC client with CTCP TS containing the raw time integer (minus PSYC epoch) of an event, when available.
CTCP SUBJECT vs HINT
We also thought about adding CTCP SUBJECT to be able to have an embedded subject in a message - just to be able to specify it in an IRC URL.... Cute eh? Or sick.. depending on your taste. Anyway, we decided to no longer deal with IRC URLs but only with IRC URIs so we don't have to worry about CTCP SUBJECT anymore. But here's how it would have been: If you click on irc://ircnet/~nick?subject=homepage then by the hint in the subject nick would know the context of the conversation that is starting with whoever. Of course we could call it CTCP HINT instead. hahahahaha