OnWorks favicon

mcabber - Online in the Cloud

Run mcabber in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command mcabber that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



mcabber - a simple Jabber (XMPP) console client


mcabber [ -h | -V | -f configfile ]


mcabber(1) is a small Jabber (XMPP) console client. For now it needs a configuration file
to start, so please copy the sample mcabberrc file and adapt your connection settings.

You also need to have an existing Jabber account to use this software, as it cannot
(un)register accounts yet.

Here are some of the features of mcabber:

· SASL/SSL/TLS support.

· MUC support (Multi-User Chat).

· PGP, OTR support

· Chat States support (typing notifications)

· History logging: If enabled (see the CONFIGURATION FILE section), mcabber can save
discussions to text history log files.

· Commands completion: If possible, mcabber will try to complete your command line if
you hit the Tab key.

· Input line history: Any message or command entered is in the input line history and
can be reused easily.

· External actions: Some events (like receiving a message) can trigger an external
action such as a shell script if you enable it in your configuration file. A sample
events script ("eventcmd") is provided with mcabber source code, in the contrib

· Modules: mcabber can load modules (a.k.a. plugins) at runtime that extend its


Quick help usage message

Displays mcabber version and compile-time definitions.

-f configfile
Use configuration file configfile


The mcabber(1) screen is divided into 4 regions. The roster, alias buddylist, is on the
left. The chat window, or chat buffer, is on the right. The input line lies at the bottom
of the screen, under a small log window.

Two status lines surround the log window. The bottom status line is the "main status line"
and reflects mcabber general status. The other line is the "chat status line" and shows
the status of the currently selected buddy.

To display buddies chat buffers, you will have to enter chat mode. You can enter chat mode
by pressing enter, and leave chat mode with the ESC key. Simply sending a message will
also enable chat mode.

There are several advantages to the two-mode implementation: first, it allows accurate
"unread" message functionality, as described in the next section; without this, merely
scrolling to a specific buddy will "read" the new messages of all buddies in-between.
Second, it allows quickly hiding the conversation with a single keystroke. Third, it
allows jumping between the few buddies with whom you are conversing with the /roster
alternate command described in another section, without having to manually scroll back and


Text typing occurs in the input line; basic operations are supported (left arrow, right
arrow, home/end keys, insert, delete, backspace...).

PageUp and PageDown keys are used to move in the roster.

Up and Down arrow keys can be used to move in the input line history; they jump to the
previous/next line from the history beginning with the same string (from first column to
the cursor column).

To send a message, move to the chosen buddy in the buddylist, type your message and hit
enter. If the line begins with a slash, this will be interpreted as a command (see the
COMMAND section below). Hit escape to leave the chat mode.

Here is a quick description of the default key bindings:

Disable chat mode

Go to the beginning of the input line

Go to the end of the input line

Force a refresh

Move in the input line history

Move inside the roster (buddylist)

Complete current word, in the input line

Cancel completion

Abort multi-line messages and completions

Send/terminate a multi-line message

Scroll up/down half a screen in the buffer window (chat mode)

Move the cursor back to the start of the current or previous word

Move the cursor forward to the end of the current or next word

Delete from beginning of the line to the cursor

Delete from the cursor to the end of line

Backward kill word

Transpose chars

Accept line and put the next history line in the input line

Additional key bindings may be specified using the /bind command described in the COMMANDS


The first listed item on the roster is [status], which keeps a log of everything that
appears in the short log window below the main chat area. While the log window was
designed for showing the latest few elements, the dedicated [status] buffer allows more
comfortable viewing of the log, as well as scrolling it in a standard manner.

Group names are displayed above the items that are within them, and are indicated by ---
to the left of the name.

For every real Jabber contact, the roster displays four pieces of information: the buddy’s
name or alias, its online status, its authorization status, and whether there are unread
messages from the buddy waiting for you.

The online status is one of the following:


free for chat


not available (labeled extended away in some clients)

do not disturb

offline (or invisible to you)

unknown, usually meaning you are not authorized to see this buddy’s status

a conference room in which you are not participating

a conference room in which you are participating

The authorization status indicates whether a buddy is authorized to receive your online
status updates, and is displayed by the brackets surrounding the buddy’s online status.
Square brackets, like [o], indicate that this buddy is authorized to receive your status.
Curly braces, like {o}, indicate that they are not authorized to receive your status.

When there are unread messages from a buddy which you have not looked at, a hash mark (#)
appears in the leftmost section of the roster for that buddy. The hash mark disappears
once you view that buddy’s message buffer. When the user attention is requested (or when
you receive a message containing your nickname in a MUC room), the hash mark is replaced
with the attention sign, an exclamation mark (!).


--- Buds
This is a group named Buds

#[o] John
John is online, can see your status, and sent you a message that you did not read yet

{?} Sally
Neither you nor Sally have authorized each other to see your online status

{a} Jane
Jane is away, but she cannot see your online status

#[C] [email protected]
You are participating in [email protected] conference room, and there are unread messages


Please refer to the online help (command /help), it is probably more up-to-date than this
manpage. Furthermore, help files have been translated into several languages. You will
find an overview of the mcabber commands in this manual.


/add [jid [nickname]]
Add the "jid" Jabber user to our roster (default group), and send a notification
request to this buddy. If no nickname is specified, the jid is used. If no jid (or an
empty string "") is provided or if jid is ".", the current buddy is used.

[jid [nickname]]
Add to our roster "jid" as "nickname"

Example: "/add [email protected] Somebody"

/alias [name [= command line]]
This command let you to add aliases which can simplify sophisticated commands.

You can manage your aliases by:

(without arguments)
Print list of currently defined aliases

Print the value of alias called "name"

Unset alias called "name"

name = command line
Set alias called "name" with value "command line"

Example: "/alias away = status away"

/authorization allow|cancel|request|request_unsubscribe [jid]
This command manages presence subscriptions: it allows you to request presence
subscriptions from others on your roster, and allows you to control who receives your
presence notifications.

If no JID is provided, the currently-selected buddy is used.

Allow the buddy to receive your presence updates

Cancel the buddy’s subscription to your presence updates

Request a subscription to the buddy’s presence updates

Request unsubscription from the buddy’s presence updates

/bind [keycode [= command line]]
Bind the command to the key given as "keycode". To examine which keys are currently
not used look at mcabber log window and press examined key. For example: "Unknown
key=265" means that you can bind some command to key #265.

(without arguments)
Display list of current bindings

Display the command line bound to this key

Unbind key with code "keycode"

keycode = command line
Bind "command line" to the key with code "keycode"

Example: "/bind 265 = status away" (265 is F1). +
Note: keycodes can be different depending on your ncurses configuration. +
Tip: aliases also can be used instead of commands.

/buffer clear|close|close_all|purge|list, /buffer
top|bottom|date|%|search_backward|search_forward, /buffer
scroll_lock|scroll_unlock|scroll_toggle, /buffer save filename
Buddy’s buffer manipulation command. E.g. you can search through buffer for "text",
clear chat window etc.

Clear the current buddy chat window

close [jid]
Empty all contents of the buffer and close the current buddy chat window

Empty all contents of the chat buffers and close the chat windows

purge [jid]
Clear the current buddy chat window and empty all contents of the chat buffer

Display the list of existing buffers, with their length (lines/blocks)

Jump to the top of the current buddy chat buffer

Jump to the bottom of the current buddy chat buffer

up [n]
Scroll the buffer up [n] lines (default: half a screen)

down [n]
Scroll the buffer down [n] lines (default: half a screen)

date [date]
Jump to the first line after the specified [date] in the chat buffer (date format:

% n
Jump to position %n of the buddy chat buffer

search_backward text
Search for [text] in the current buddy chat buffer

search_forward text
Search for [text] in the current buddy chat buffer

Lock buffer scrolling

Unlock buffer scrolling

Toggle buffer scrolling (lock/unlock)

save filename
Save the contents of the current buffer to the file "filename"

/chat_disable [--show-roster]
Disable chat mode.

With --show-roster, the fullscreen mode will be disabled.

This command is actually an alias for "/buffer clear". It clears the current buddy
chat window.

/color roster (status wildcard (color|-)|clear), /color mucnick nick (color|-), /color muc
(jid|.|*) [on|preset|off|-]
The color command allows setting dynamic color properties of the screen.

roster clear
Remove all color rules for the roster. All roster items will get its default

roster status wildcard color
Set a color rule (or overwrite, if it already exists). The status is string
containing all statuses the roster item can have for the rule to match, or * if
any status is OK. Wildcard is the file-matching wildcard that will be applied to
JID. Color is the wanted color. If color is -, the rule is removed. If more than
one rule matches, the color from the last created (not overwritten) is used.

mucnick nick (color|-)
Marks the nick to be colored by given color. If a MUC has colored nicks, this one
will be used. If color is -, the color is marked as chosen automatically, which
means it will not be used in preset coloring mode, but will stay the same in on
coloring mode.

muc (jid|.|*) [on|preset|off|-]
Sets a MUC nick coloring mode. If a jid (. means currently selected jid) is
provided, the mode will apply to this specific MUC. If * is used, it will be
applied to all MUCs, except the ones set by their jid. Mode on colors all nicks,
preset only the ones manually set by /color mucnick command and off colors none.
If not specified, defaults to on. Mode - removes the mode from given JID, which
means the global one will apply. You can not remove the global mode. Default
global coloring mode is off.

Establish connection to the Jabber server.

Delete the current buddy from our roster, unsubscribe from its presence notification
and unsubscribe it from ours.

Terminate the connection to the Jabber server.

Note: the roster is only available when the connection to the server is active, so the
buddylist is empty when disconnected.

/echo message
Display "message" in the log window.

/event #n|* accept|ignore|reject [event-specific arguments], /event list
Tell mcabber what to do about pending events.

If the first parameter is *, the command will apply to all queued events.

Event-specific arguments will be interpreted on event-to event basis. The only
built-in case, when argument is used is MUC invitation reject - argument, if present,
will be interpreted as reject reason.

#N|* accept [event-specific arguments]
Event number #N/All events will be accepted

#N|* ignore [event-specific arguments]
Event number #N/All events will be ignored

#N|* reject [event-specific arguments]
Event number #N/All events will be rejected

List all pending events

/group fold|unfold|toggle [groupname]
This command changes the current group display.

fold [groupname]
Fold (shrink) the current/specified group tree in the roster

unfold [groupname]
Unfold (expand) the current/specified group tree in the roster

toggle [groupname]
Toggle the state (fold/unfold) of the current/specified tree

/help [command|+topic]
Display help for command "command" or topic "topic".

Example: "/help buffer"

/iline fchar|bchar|char_fdel|char_bdel|char_swap, /iline fword|bword|word_bdel|word_fdel,
/iline word_upcase|word_downcase|word_capit, /iline
hist_beginning_search_bwd|hist_beginning_search_fwd, /iline hist_prev|hist_next, /iline
iline_start|iline_end|iline_fdel|iline_bdel, /iline iline_accept|iline_accept_down_hist,
/iline compl_do|compl_cancel, /iline send_multiline
Input line commands

Move to the next letter

Move to the previous letter

Delete the letter at cursor position

Delete the letter before cursor position

Transpose chars

Move the cursor forward to the end of the current or next word

Move the cursor back to the start of the current or previous word

Delete the word from cursor position to its start

Delete the word from cursor position to its end

Convert the word from cursor position to its end to upper case

Convert the word from cursor position to its end to down case

Capitalize the word from cursor position to its end

Search backward in the history for a line beginning with the current line up to
the cursor (this leaves the cursor in its original position)

Search forward in the history for a line beginning with the current line up to the
cursor (this leaves the cursor in its original position)

Previous line of input line history

Next line of input line history

Go to the beginning of the input line

Go to the end of the input line

Delete from the cursor to the end of line

Delete from beginning of the line to the cursor

Accept line

Accept line and put the next history line in the input line

Complete current word, in the input line

Cancel completion

Send/terminate a multi-line message

Display info on the selected entry (user, agent, group...).

For users, resources are displayed with the status, priority and status message (if
available) of each resource.

/module load|unload [-f] module, /module info module, /module [list]
Load, unload or show info on module.

load [-f] module
Loads specified module. If -f flag is specified, most of module loading errors
will be ignored.

unload [-f] module
Unloads specified module. Note: The force flag will not remove any dependency on
this module!

info module
Shows available information about this module.

Lists modules in a format: [modulename] [reference count] ([Manually/Automatically
loaded]) [any extra info, like version or dependencies]

/move [groupname]
Move the current buddy to the requested group. If no group is specified, then the
buddy is moved to the default group. If the group "groupname" doesn’t exist, it is

Tip: if the chatmode is enabled, you can use "/roster alternate" to jump to the moved

/msay begin|verbatim|send|send_to|toggle|toggle_verbatim|abort
Send a multi-line message. To write a single message with several lines, the
multi-line mode should be used.

In multi-line mode, each line (except command lines) typed in the input line will be
added to the multi-line message. Once the message is finished, it can be sent to the
current selected buddy with the "/msay send" command.

The begin subcommand enables multi-line mode. Note that it allows a message subject to
be specified.

The verbatim multi-line mode disables commands, so that it is possible to enter lines
starting with a slash. Only the "/msay" command (with send or abort parameters) can be
used to exit verbatim mode.

The toggle subcommand can be bound to a key to use the multi-line mode quickly (for
example, "bind M13 = msay toggle" to switch using the Meta-Enter combination).

begin [subject]
Enter multi-line mode

Enter verbatim multi-line mode

send [-n|-h]
Send the current multi-line message to the currently selected buddy

send_to [-n|-h] jid
Send the current multi-line message to "jid"

Switch to/from multi-line mode (begin/send)

Leave multi-line mode without sending the message

The -n or -h flags turn the message to "normal" or "headline" accordingly, as opposed to default "chat" message.

/otr key, /otr start|stop|info [jid], /otr fingerprint [jid [fpr]], /otr smpq|smpr [jid]
secret, /otr smpa [jid]
You can use the shortcut-jid "." for the currently selected contact.

Print the fingerprint of your private key to the Status Buffer

start [jid]
Open an OTR channel to the specified jid (or the currently selected contact)

stop [jid]
Close the OTR channel to the specified jid (or the currently selected contact)

info [jid]
Show current OTR status for the specified jid (or the currently selected contact)

fingerprint [jid [fpr]]
Show the active fingerprint of an OTR channel. If the fingerprint is provided
instead of "fpr", the fingerprint will become trusted. If you replace "fpr" by
some bogus string the fingerprint will loose the trusted status.

smpq [jid] secret
Initiate the Socialist Millionaires Protocol with the secret and the buddy

smpr [jid] secret
Respond to the Initiation of the jid with the secret

smpa [jid]
Abort the running Socialist Millionaires Protocol

/otrpolicy, /otrpolicy (default|jid) (plain|manual|opportunistic|always)
You can use the shortcut-jid "." for the currently selected contact.

(without arguments)
Prints all OTR policies to the status buffer

(default|jid) (plain|manual|opportunistic|always)
Sets either the default policy or the policy for the given jid The plain policy
should never be used, because you won’t be able to receive or send any OTR
encrypted messages. If you set the policy to manual, you or your chat partner have
to start the OTR encryption by hand (e.g. with /otr start). The policy
"opportunistic" does that itself by sending a special whitespace-sequence at the
end of unencrypted messages. So the other OTR-enabled chat client knows, that you
want to use OTR. Note that the first message will always be unencryted, if you use
this policy. With the policy "always" no message will be sent in plain text. If
you try to sent the first message unencrypted, mcabber will try to establish an
OTR channel. Please resend your message, when you get the information that the
channel was established. If someone sends you plaintext messages while the policy
is set to "always", you’ll be able to read the message but it won’t be saved to
the history.

/pgp disable|enable|force|info [jid], /pgp setkey [jid [key]]
This command manipulates PGP settings for the specified jid (by default the currently
selected contact).

Please note that PGP encryption won’t be used if no remote PGP support is detected,
even if PGP is enabled with this command. You can force PGP encryption with the
"force" subcommand.

disable [jid]
Disable PGP encryption for jid (or the currently selected contact)

enable [jid]
Enable PGP encryption for jid (or the currently selected contact)

force [jid]
Enforce PGP encryption, even for offline messages, and always assume the recipient
has PGP support. If a message can’t be encrypted (missing key or key id), the
messages won’t be sent at all. This option is ignored when PGP is disabled.

info [jid]
Show current PGP settings for the contact

setkey [jid [key]]
Set the PGP key to be used to encrypt message for this contact. If no key is
provided, the current key is erased. You can use the shortcut-jid "." for the
currently selected contact.

This command closes all connections and quit mcabber.

/rawxml send string
Send "string" (raw XML format) to the Jabber server.

No check is done on the string provided.

BEWARE! Use this only if you know what you are doing, or you could terminate the

Example: "/rawxml send <presence><show>away</show></presence>"

/rename name
Rename the current buddy or group to the given "name". If "name" is -, the name is
removed from the roster (and mcabber will display the JID or username).

/request last|ping|time|vcard|version [jid]
Send a "IQ" query to the current buddy, or to the specified Jabber user. If the
resource is not provided with the jid, mcabber will send the query to all known
resources for this user.

Request "last" information (usually idle time)

Send an XMPP Ping request. Note that you should use the full JID since a ping sent
to a bare JID will be handled by the server.

Request time from the buddy

Request VCard from the buddy

Request version from the buddy

/room join|leave|names|nick|remove|topic|unlock|destroy, /room
privmsg|invite|whois|kick|ban|unban|role|affil, /room setopt print_status|auto_whois
[value], /room bookmark [add|del] [-autojoin|+autojoin] [-|nick]
The room command handles Multi-User Chat room actions.

join [room [nick [pass]]]
Join "room", using "nick" as nickname. If no nickname is provided (or if it is an
empty string), the "nickname" option value is used (see sample configuration
file). If the currently selected entry is correctly recognized as a room by
mcabber, the shortcut "." can be used instead of the full room id. A password can
be provided to enter protected rooms. If your nickname contains space characters,
use quotes.

leave [message]
Leave the current room

names [--detail|--short|--quiet|--compact]
Display members of the current room

nick newnick
Change your nickname in the current room

privmsg nick msg
Send private message "msg" to "nick"

Remove the current room from the roster (you must have left this room before)

topic -|newtopic
Set topic for current room

Unlock current room (if you are the owner)

destroy [reason]
Destroy the current room (use with care!)

whois nick
Display MUC information about "nick"

ban jid [reason]
Ban jid from the current room

unban jid
Unban jid from the current room

invite jid [reason]
Invite jid to the current room

kick nick [reason]
Kick "nick" from the current room

role jid role [reason]
Change jid’s role (role can be "none", "visitor", "participant", "moderator")

affil jid affil [reason]
Change jid’s affiliation (affil can be "none", "member", "admin", "owner")

setopt print_status|auto_whois [value]
Change settings for the current room For print_status, the possible values are
"default", "none", "in_and_out", "all". For auto_whois, the possible values are
"default", "off", "on". When the value is "default", the options muc_print_status
/ muc_auto_whois is used.

bookmark [add|del] [-autojoin|+autojoin] [-|nick]
Add, remove or update a bookmark (default is add). If autojoin is set, mcabber
will automatically join the MUC room when it connects to the server. To see the
list of bookmarks, use /room bookmark in the status buffer.

/roster bottom|top|up|down|group_prev|group_next, /roster
alternate|unread_first|unread_next, /roster search bud, /roster
display|hide_offline|show_offline|toggle_offline, /roster
item_lock|item_unlock|item_toggle_lock, /roster hide|show|toggle, /roster note [-|text]
The roster command manipulates the roster/buddylist.

Here are the available parameters:

Jump to the bottom of the roster

Jump to the top of the roster

up [n]
Move up [n lines] in the roster

down [n]
Move down [n lines] in the roster

Jump to the previous group in the roster

Jump to the next group in the roster

Jump to alternate buddy. The "alternate" buddy is the last buddy left while being
in chat mode. This command is thus especially useful after commands like "/roster
unread_next" (Ctrl-q).

Jump to the first unread message

Jump to the next unread message

search bud
Search for a buddy with a name or jid containing "bud" (only in the displayed

display [mask]
See or update the roster filter. The mask should contain the shortcut letters of
the status you want to see ([o]nline, [f]ree_for_chat, [d]o_not_disturb,
[n]ot_available, [a]way, [_]offline). For example "ofdna" to display only
connected buddies.

Hide offline buddies (same as /roster display ofdna)

Show offline buddies (same as /roster display ofdna_)

Toggle display of offline buddies

item_lock [jid]
Lock the roster item so it remains visible regardless of its status

item_unlock [jid]
Undo the effects of item_lock

item_toggle_lock [jid]
Invert the current lock flag

Hide roster (full-width chat window)

Show roster

Toggle roster visibility

note [-|text]
Set/update/delete an annotation. If there is no text, the current item’s
annotation is displayed — if you are in the status buffer, all notes are
displayed. If text is "-", the note is erased.

/say [-n|-h|--] text
Send the "text" message to the currently selected buddy. It can be useful if you want
to send a message beginning with a slash, for example.

The "-n" flag turns the message to "normal" type, "-h" to "headline". "--" can be used
to send chat message beginning with -n or -h.

/say_to [-n|-h] [-q] [-f file] jid text
Send the "text" message to the specified jid.

Please note that this command doesn’t set the default resource for a contact, so if
you want to send several messages to a specific resource you will have to use
"/say_to" for each message.

You can send a message to a specific resource of the currently selected contact by
using /say_to ./resourcename message.

The "-n" flag turns the message to "normal" type, "-h" to "headline". "--" can be used
to send chat messages beginning with -n or -h.

When "-q" is used, the message will be sent in the background and will not change the
current active window.

A text file can be provided with the "-f" switch (in which case there’s no need to
pass a text argument after the jid, of course).

Refresh the mcabber screen.

/set [option [= value]]
Display or set an option value.

Without arguments prints a list of all set options with their values

/source pattern
Read configuration files, that match glob pattern (sorted in alphabetical order).

/status [online|avail|free|dnd|notavail|away [-|statusmessage]], /status message
Show or set the current status.

If no status is specified, display the current status.

If a status message is specified, it will overrride the message* variables (these
variables can be set in the configuration file).

If no relevant message* variable is set and no status message provided, the current
status message is kept.

If StatusMessage is "-", the current status message is cleared.

With the "/status message" command, mcabber will update the message while preserving
the status.

/status_to jid online|avail|free|dnd|notavail|away [statusmessage], /status_to jid message
Send the requested status to the specified Jabber user.

If the specified jid is ".", the current buddy is used.

Note: this status will be overridden by subsequent "/status" commands. If you are
using the auto-away feature, the status will overridden too.

Note: The jid can include a resource (i.e. user@server/resource).

Display current version of mcabber.


See the provided sample configuration file, which should be self-documenting.

Use mcabber online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands