IMCom Commands

This page documents the commands that are available in IMCom. It is organized by catagory. Message Commands, Presence Commands, Roster Management Commands, Agent Registration Commands, vCard Commands, Conference Commands, File Transfer Commands, IMCom Utility Commands, Jabber Administrator Commands.

Some basic rules for IMCom:

  • Whereever a JID is required you can substitute the nickname you have associated with that JID
  • Nicknames can have spaces in them, but if they do have spaces they need to be quoted where it will be ambiguous. Exmaple usage: /msg "Airog Pants" hi there!
  • You can direct a command to a particular resource by appending a / followed by the resource your are directing to. This works with both nicknames and JIDs. In the case where a resource is required, but not specified IMCom will do its best to guess which resource you mean. Example usage: /msg airog/home hi there!
Message Commands
/msg

This command sends a message to a single user.

Usage 1: /msg [JID] [message]
Usage 2: /msg [JID]
         [type-multiple]
         [lines-of]
         [text]
         [period or hash (. or #)]

Example 1: /msg airog hi there!
Example 2: /msg airog
           [msg]: this
           [msg]: is
           [msg]: a
           [msg]: multiline
           [msg]: message
           [msg]: .

There are two modes for this command: single-line mode and multi-line mode.
Single Line mode is the first usage and example.
Multi Line mode is the second usage and example. In multi-line mode hit enter after typing the JID and IMCom will display a different prompt: [msg]: Type a period on a line by itself to send the message, or type a hash ( # ) on a line by itself to cancel the message.

//

This command sends a message to the last person you sent a message to.

Usage 1: // [message]
Usage 2: //
         [type-multiple]
         [lines-of]
         [text]
         [period or hash (. or #)]

Example 1: // hi there!
Example 2: //
           [msg]: this
           [msg]: is
           [msg]: a
           [msg]: multiline
           [msg]: message
           [msg]: .

Like the /msg command this command has two modes
Single Line mode is the first usage and example.
Multi Line mode is the second usage and example. In multi-line mode hit enter after typing // and IMCom will display a different prompt: [msg]: Type a period on a line by itself to send the message, or type a hash ( # ) on a line by itself to cancel the message.

/r

This command sends a message to the person who last sent you a message.

Usage 1: /r [message]
Usage 2: /r
         [type-multiple]
         [lines-of]
         [text]
         [period or hash (. or #)]

Example 1: /r hi there!
Example 2: /r
           [msg]: this
           [msg]: is
           [msg]: a
           [msg]: multiline
           [msg]: message
           [msg]: .

Like the /msg command this command has two modes
Single Line mode is the first usage and example.
Multi Line mode is the second usage and example. In multi-line mode hit enter after typing /r and IMCom will display a different prompt: [msg]: Type a period on a line by itself to send the message, or type a hash ( # ) on a line by itself to cancel the message.

/msgr

This command sends a message to a specific resource a person is logged into. It is now obsolete as this can be done by using quotes with the /msg command.

Usage: /msgr [JID] [resource]
       [type-multiple]
       [lines-of]
       [text]
       [period or hash (. or #)]

Example: /msgr airog at home
         [msg]: this
         [msg]: is
         [msg]: a
         [msg]: multiline
         [msg]: message
         [msg]: .

Multi-line mode is the only way to use this command.

/msg!

This command sends the results of a command.

Usage: /msg! [JID] [COMMAND]

Example: /msg! airog /sbin/ifconfig eth0

This command is only available on UNIX systems since it uses os.popen4()

/msggroup

This command sends a message to a defined jabber roster group.

Usage: /msggroup [GROUP]
       [type-multiple]
       [lines-of]
       [text]
       [period or hash (. or #)]

Example: /msggroup friends
         [msg]: this
         [msg]: is
         [msg]: a
         [msg]: multiline
         [msg]: message
         [msg]: .

Multi-line mode is the only way to use this command.

Presence Commands
/online

This command sets your status to online

Usage 1: /online
Usage 2: /online [reason]

Example 1: /online
Example 2: /online I'm home now

/chat

This command sets your status to chat

Usage: /chat

Example 1: /chat

/away

This command sets your status to away

Usage 1: /away
Usage 2: /away [reason]

Example 1: /away
Example 2: /away I'm getting a soda

The default reason is "I'm too lazy to enter why I'm away"

/xa

This command sets your status to eXtended Away

Usage 1: /xa
Usage 2: /xa [reason]

Example 1: /xa
Example 2: /xa I've gone to a meeting

The default reason is "I'm too lazy to enter why I'm xa"

/dnd

This command sets your status to Do Not Disturb

Usage 1: /dnd
Usage 2: /dnd [reason]

Example 1: /dnd
Example 2: /dnd I'm working hard on documentation

The default reason is "I'm too lazy to enter why I'm dnd"

/setpriority

This command sets this resource's priority.

Usage: /setpriority [PRIORITY-LEVEL]

Example: /setpriority 6

Sets the base priority for the current connection. This number should be 6 or larger. This is the priority used when you are status online, or status chat. [PRIORITY-LEVEL] - 2 is used for status away, [PRIORITY-LEVEL] - 4 is used for status xa, [PRIORITY-LEVEL] - 6 is used for stataus dnd.

Roster Management Commands
e

This command shows all users who are currently online

Usage: e

Example: e

This will print out a list of all the users in your roster which are online, chat, away, xa, or dnd, and are not in group 'lurker'. The lurker group is a special group people can belong where you will never see their presence updates, unless you /show lurker.

w

This command shows the presence of all users on your roster.

Usage: w

Example: w

This will print out a list of all your roster items and their status except for roster items belonging to the 'lurker' group. The lurker group is a special group people can belong where you will never see their presence updates, unless you /show lurker.

/add

Add a user to your roster.

Usage: /add [JID] [nickname]

Example: /add airog@floobin.cx "IMCom Author"

This will create an entry in your roster, set the nickname of that entry and request to subscribe to that user's presence.

/remove

Unsubscribe from a user's presence.

Usage: /remove [JID]

Example: /remove "IMCom Author"

This only unsubscribes from a users presence, it DOES NOT remove the item from your roster. To remove an item from your roster use the /delete command. When you use this command the person will still have a NickName associated with them as well as whatever groups they happen to be in. The only difference will be that you will nolonger receive presence updates.

/delete

Removes a user from your roster.

Usage: /delete [JID]

Example: /delete "IMCom Author"

This will delete an entry from your roster, unsubscribing from the person's presence if need be.

/auth

Authorize someone to subscribe to your presence.

Usage: /auth [JID]

Example: /auth airog@floobin.cx

/deny

Deny someone from subscribing to your presence.

Usage: /deny [JID]

Example: /deny airog@floobin.cx

/rename

Give someone a new nickname

Usage: /rename [JID] [NEW-NICK]

Example: /rename "IMCom Author" "airog"

/addgroup

Place someone into an additional group.

Usage: /addgroup [JID] [GROUP]

Example: /addgroup airog lurker

This command will place someone into another group, retaining whatever groups they happen to be in already. In Jabber a user can belong to many groups.

In IMCom there are two special groups, lurker and ignore.
lurker : This group is for people you want on your roster, and from time to time want to see whether they are online, but in general you don't care to see them in your list, and don't want to see presence updates from them. I use this group for people I talk to every few months.

ignore : This group is for people you never want to see anything from.

/delgroup

Remove someone from a group.

Usage: /delgroup [JID] [GROUP]

Example: /delgroup airog lurker

This command will remove someone from a group, retaining whatever other groups they happen to be in as well. In Jabber a user can belong to many groups.

/setgroup

Set the group to which someone belongs

Usage: /setgroup [JID] [GROUP]

Example: /setgroup airog lurker

This command will make the user belong to precisely to the group specified and no other groups.

/membership

Show the groups that a user is in.

Usage: /membership [JID]

Example: /membership airog

/show

Show the presence information of people who are in a group.

Usage 1: /show
Usage 2: /show lurker

Example 1: /show
Example 2: /show lurker

There are two uses for this command. The first is to show what groups exist. The second is to produce an output like w for a subset of people defined by a group.

Agent Registration Commands
/agents

Display a list of available transports on the server..

Usage: /agents

Example: /agents

/agenthelp

Begin the registration process with a particular agent.

Usage: /agenthelp [JID]

Example: /agenthelp icq.floobin.cx

Follow the directions on screen to complete the registration.

/unregister

Unregister with a transport.

Usage: /unregister [JID]

Example: /unregister icq.floobin.cx

vCard Commands
/info

Retrieve someone's vCard.

Usage: /info [JID]

Example: /info airog

/submitvcard

Submit a vCard to the server.

Usage: /submitvcard [DisplayName] [FamilyName] [GivenName] [NickName] [Email]

Example: /submitvcard Casey Crabb Kennth airog crabbkw@nafai.dyndns.org

File Transfer Commands
/sendfile

Offer a file to someone.

Usage: /sendfile [JID] [FILE]

Example: /sendfile airog /home/user/myDocument.html

Please note that the file should be an absolute path (it will tab complete). It does not understand the ~ notation. Sorry.

/getfile

Retrieve an offered file.

Usage: /getfile [JID]

Example: /getfile airog

This will download the file to ~/.imcom/files/

Conference Commands
/joinconf

Joins or creates a chatroom.

Usage: /joinconf [CONFERENCE-JID] [NICKNAME-TO-ASSIGN-CONFERENCE] [NICKNAME-YOU-WANT-TO-BE-KNOWN-AS-IN-CONFERENCE] [OPTIONNALLY-PASSWORD]

Example: /conf jdev@conference.jabber.org jdev casey

Conferecing in IMCom works by creating a 'nickname' for a conference jid upon joining. After you've joined a conference you will recieve messages from the conference like normal messages. You can send a message to the conference using regular messaging commands, including //. You can send a private conference message by using a message command and directing to the conference-nickname followed by a slash followed by the nickname of the person you want to send a private message to.
Example:
/joinconf jdev@conference.jabber.org jdev casey
/msg jdev Hi all!
/msg jdev/someuser Hi someuser!


In the jabber world there are two types of conferencing. The soon to be deprecated group-chat, and the relatively new Multi-User-Chat. IMCom supports both of these methods transparently, with the exception that the advanced commands (kick, ban, voice, member, owner, admin) only work with Multi-User-Chat.

Also, when joining a room that doesn't exist on Multi-User-Chat capable component you will have to fill out a form for room creation. The process is fairly straight-forward, simply follow the instructions that come up.

/confusers

Displays a list of people in a chatroom.

Usage: /confusers [CONFERENCE-JID]

Example: /confusers jdev

/leaveconf

Leaves a chatroom.

Usage: /leaveconf [CONFERENCE-JID]

Example: /leaveconf jdev

/confnickchange

Change your nickname in a conference

Usage: /confnickchange [CONFERENCE-JID] [NEW-NICK]

Example: /confnickchange jdev airog

/confinvite

Invite someone into a chatroom, sending the required password if there is one.

Usage: /confinvite [CONFERENCE-JID] [JID]

Example: /confinvite jdev myFriend

This command will only work with MUC-capable rooms.

/confsubject

Change the subject in a chat room

Usage: /confsubject [CONFERENCE-JID] [NEW-SUBJECT]

Example: /confsubject jdev JEP0045 -- MUC is now draft!

This command will only work with MUC-capable rooms.

/confkick

Kick someone out of a chatroom.

Usage: /confkick [CONFERENCE-JID] [NICK-TO-KICK] [REASON]

Example: /confkick jdev casey you're being bad!

This command will only work with MUC-capable rooms.

/confvoice

Grant someone voice priviledges in a chatroom.

Usage: /confvoice [CONFERENCE-JID] [NICK]

Example: /confvoice jdev casey

This command will only work with MUC-capable rooms.

/confdevoice

Revoke someone's voice priviledges in a chatroom.

Usage: /confdevoice [CONFERENCE-JID] [NICK]

Example: /confdevoice jdev casey

This command will only work with MUC-capable rooms.

/confban

Ban someone from the chatroom.

Usage: /confban [CONFERENCE-JID] [nick] [reason]

Example: /conf jdev casey you've been bad!

This command will only work with MUC-capable rooms.
There is no way to unban someone in IMCom currently.

/confmod

Grant someone moderator priviledges in a chatroom.

Usage: /confmod [CONFERENCE-JID] [nick]

Example: /confmod jdev casey

This command will only work with MUC-capable rooms.

/confdemod

Revoke moderator priviledges from somone in a chatroom.

Usage /confdemod [CONFERENCE-JID] [nick]

Example: /confdemod jdev casey

This command will only work with MUC-capable rooms.

/confmember

Grant member affiliation to someone in a chatroom.

Usage /confmember [CONFERENCE-JID] [nick]

Example: /confmember jdev casey

This command will only work with MUC-capable rooms.

/confdemember

Revoke member affiliation from someone in a chatroom.

Usage /confdemember [CONFERENCE-JID] [nick]

Example: /confdemember jdev casey

This command will only work with MUC-capable rooms.

/confadmin

Grant administrator affiliation to someone in a chatroom.

Usage /confadmin [CONFERENCE-JID] [nick]

Example: /confadmin jdev casey

This command will only work with MUC-capable rooms.

/confdeadmin

Revoke administrator affiliation from someone ni a chatroom.

Usage /confdeadmin [CONFERENCE-JID] [nick]

Example: /confdeadmin jdev casey

This command will only work with MUC-capable rooms.

/confowner

Grant owner affiliation to someone in a chatroom.

Usage /confowner [CONFERENCE-JID] [nick]

Example: /confowner jdev casey

This command will only work with MUC-capable rooms.

/confdeowner

Revoke owner affiliation from someone in a chatroom.

Usage /confdeowner [CONFERENCE-JID] [nick]

Example: /confdeowner jdev casey

This command will only work with MUC-capable rooms.

/confdestroy

Destroy a chatroom.

Usage /confdestroy [CONFERENCE-JID] [reason]

Example: /confowner jdev its all going down.

This command will only work with MUC-capable rooms.

/confconfig

Re-configure a chatroom.

Usage /confconfig [CONFERENCE-JID]

Example: /confconfig jdev

This command will only work with MUC-capable rooms.
This will display a form much like the one used for creation of a MUC-room.

IMCom Utility Commands
/set

Set boolean variable options in IMCom

Usage: /set [OPTION] [VALUE]

Example: /set statusshow off

The boolean values accepted as true are "true", "yes", "on". Everything else is interpreted as false. Currently the following variables are supported

  • statusshow: Whether or not to show status updates
  • colors: Whether or not to use colors
  • debug: Whether or not to output debugging information
  • ringbell: Whether or not to ring the terminal bell on incoming messages
  • allowInterrupt: Whether to allow interruptions in the middle of multi-line messages.
  • nickPrompt: Whether or not to user nicknames as the multi-line message prompt.
  • autoStatus: Whether or not to use the AutoStatus functionality
  • statusnag: Whether or not to warn the user if their status is not online when sending messages
  • confsuppress:Whether or not to suppress the 'From' line on conference messages
  • igndupstatus:Whether or not to ignore duplicate status messages
!

Execute a shell command

Usage: ! [COMMAND]

Example: ! ls ~

This command will print the results of [COMMAND] for you to see

/alias

Create a textual substition alias

Usage: /alias [NAME] [COMMAND]

Example: /alias printtime ! date

The example above creates the aliased command printtime, which runs the date program using the ! command. /alias by itself will list the aliases which currently exist.

/unalias

Remove a textual substition alias

Usage: /unalias [ALIAS]

Example: /unalias printtime

The example above removes the aliased command print. /unalias by itself will list the aliases which currently exist.

/listprofiles

List all the profiles in your IMCom configuration.

Usage: /listprofiles

Example: /listprofiles

/listprofiles

List all the profiles in your IMCom configuration.

Usage: /listprofiles

Example: /listprofiles

/switchprofile

Switch to another profile from your config.

Usage: /switchprofile [PROFILE-NAME]

Example: /switchprofile debug

/quit

Logoff and quit IMCom.

Usage: /quit

Example: /quit

/saveprefs

Save this profile's preferences to disk.

Usage: /saveprefs

Example: /saveprefs

Your profile's preferences are NOT saved automatically, if you change a boolean variable or create an alias it will be LOST when you next start IMCom UNLESS you /saveprefs.

/logs

An advanced command that lets you search through logs files

Usage: /logs

Example: /logs

I really need to figure out exactly how this works and document it well. If you see this, send an email to crabbkw@nafai.dyndns.org to kick him into doing it.

/last

Show the history of exchange with someone

Usage 1: /last [JID]
Usage 2: /last [JID] [NUMBER-OF-EXCHANGES]

Example 1: /last airog
Example 2: /last airog 4

/help

Prints out a quick reference of IMCom's commands.

Usage: /help

Example: /help

/version

Prints out IMCom's version or requests what version someone else is using

Usage 1: /version
Usage 2: /version [JID]

Example 1: /version
Example 2: /version airog

/changepassword

Changes your jabber account password.

Usage: /changepassword [NEW-PASSWORD]

Example: /changepassword im-in-the-clear

/loadmod

Attempts to load a module.

Usage: /loadmod [MODULE-NAME]

Example: /loadmod conferencecolorsmodule

/unloadmod

Attempts to unload a module.

Usage: /unloadmod [MODULE-NAME]

Example: /unloadmod conferencecolorsmodule

/configmod

Tells the module to run its configuration routine.

Usage: /configmod [MODULE-NAME]

Example: /configmod conferencecolorsmodule

Jabber Administrator Commands
/admin

Sends a message to all users online or set a MOTD.

Usage 1: /admin [SERVER] announce/online
         [type-multiple]
         [lines-of]
         [text]
         [period or hash (. or #)]
Usage 2: /admin [SERVER] announce/motd
         [type-multiple]
         [lines-of]
         [text]
         [period or hash (. or #)]

Example 1: /admin floobin.cx announce/online
           [msg]: this
           [msg]: is
           [msg]: a
           [msg]: multiline
           [msg]: message broadcast to all
           [msg]: users online right now.
           [msg]: .
Example 1: /admin floobin.cx announce/motd
           [msg]: this
           [msg]: is
           [msg]: a
           [msg]: multiline
           [msg]: message of the day
           [msg]: .

You must be an admin on the jabber server to do this.
This command behaves like a multi-line message.

/adminwho

Prints a list of all users currently on the server.

Usage: /adminwho [SERVER]

Example: /adminwho floobin.cx

You must be an admin on the jabber server to do this.