The original purpose of PSYC is to transport messages from people to people. The _message method family is used to represent messages in one-to-one and one-to-many conversations. They are used to deliver human generated text messages to humans.

Message types

There is a basic set of message types:

  • _message - A conversational message.
  • _message_echo - Contains the echo of a _message, which was originally sent by an entity.

Content Type

Messages can have special content types. The content type of a message is given in the _type_content variable.

The default _type_content for _message is text/plain as defined by the MIME standard, whereas all other PSYC methods by default have a content type of text/x-psyc.

All of these content types use LF for line endings like HTTP, not CRLF like MIME does. In fact the protocol as such uses LF for its line endings, even if encapsuled into MIME.


PSYC has a template syntax by the MIME type text/x-psyc also known as psyctext. It allows for errors, warnings and other automatically generated messages to be both readable for humans and automatons. The variable names in brackets SHOULD be replaced by the actual content of the variable, when presented to the user.

     	:_method        i
       No such method '[_method]' defined here.

This should display as

       No such method 'i' defined here.

When no match is found, like in the case of a template containing array[i++] where a variable called i++ does not exist, the string remains unchanged. This is not an error.