These are the interfaces of some of the objects you'll deal with if you code for Supybot. ircmsgs.IrcMsg: This is the object that represents an IRC message. It has several methods and attributes. The most important thing about this class, however, is that it *is* hashable, and thus *cannot* be modified. Do not change any attributes; any code that modifies an IRC message is *broken* and should not exist. Interesting Methods: __init__: One of the more complex initializers in a class. It can be used in three different ways: 1) It can be given a string, as one received from the server, which it will then parse into its separate components and instantiate the class with those components as attributes. 2) It can be given a command, some (optional) arguments, and a (optional) prefix, and will instantiate the class with those components as attributes. 3) It can be given, in addition to any of the above arguments, a 'msg' keyword argument that will use the attributes of msg as defaults. This exists to make it easier to copy messages, since the class is immutable. __str__: This returns the message in a string form suitable for sending to a server. __repr__: This returns the message in a form suitable for eval(), assuming the name "IrcMsg" is in your namespace and is bound to this class. Interesting Attributes: This is the meat of this class. These are generally what you'll be looking at with IrcMsgs. command: This is the command of the IrcMsg -- PRIVMSG, NOTICE, WHOIS, etc. args: This is a tuple of the arguments to the IrcMsg. Some messages have arguments, some don't, depending on what command they are. You are, of course, always assured that args exists and is a tuple, though it might be empty. prefix: This is the hostmask of the person/server the message is from. In general, you won't be setting this on your outgoing messages, but incoming messages will always have one. This is the whole hostmask; if the message was received from a server, it'll be the server's hostmask; if the message was received from a user, it'll be the whole user hostmask. In that case, however, it's also parsed out into the nick/user/host attributes, which are probably more useful to check for many purposes. nick: If the message was sent by a user, this will be the nick of the user. If it was sent by a server, this will be the server's name (something like calvino.freenode.net or similar). user: If the message was sent by a user, this will be the user string of the user -- what they put into their IRC client for their "full name." If it was sent by a server, it'll be the server's name, again. host: If the message was sent by a user, this will be the host portion of their hostmask. If it was sent by a server, it'll be the server's name (yet again :)) irclib.Irc: This is the object to handle everything about IRC except the actual connection to the server itself. Interesting attributes: nick: the current nick of the bot. prefix: the current prefix of the bot.