CLIMM(7)

NAME
climm - interactive commands

DESCRIPTION
This manual page describes the commands that can be used within climm. This page holds the same information as the online help, but more precise and longer. Notations: square brackets ([]) denote optional arguments, while angle brackets (<>) denote arguments (in opposite to keywords). Specifically, <uin> denotes an arbitrary UIN, while <contacts> denotes a comma separated list of contacts, that is, of UINs and nick names. If it is the last argument, the contacts may also be separated by spaces.

COMMANDS CONCERNING MESSAGE SENDING

msg <contacts> [<message>]
    Send a message to all contacts. Without message, or with message ending in a backslash (\), multi-line message mode is enabled. To send the multi-line message, put a period (.) on a line of its own. To cancel the message, put a hash sign (#) on a line of its own.
    Outgoing and incoming messages are marked differently depending of the transport used. ««« and »»» mark messages sent via a direct connection. «%« and »%» mark messages sent via a direct connection that were encrypted (requires GnuTLS or OpenSSL enabled at compile time). «<< and >>» mark icq8 (also called type-2) messages. Lastly, <<< and >>> mark icq5 messages, which can be so called type-1, type-4 or offline message. These kind of messages are not acknowledged.
    A message is first tried to be sent via a pre-existing direct connection; if none is established, one is initiated in the background for further messages. If no direct connection is open, or if the message is not acknowledged after some time, the connection will be failed and the next transport tried: sending as type-2 message. This step will be skipped if the peer does not set the required capabilities to signal its ability to receive them. If this is skipped, times out or returns an error, e.g. the peer has gone offline in the time between, the message is sent as an ordinary type-4 message.
    If the peer signals its ability to accept them, messages are sent UTF-8 encoded and appropriately tagged. Otherwise, the message is sent encoded in the peer's configured encoding, or, if unset, the default assumed remote encoding. type-1, type-4 and offline messages can not be tagged with their encoding, so successful transmission of non-USASCII-characters relies on correct configuration and heuristics.

a [<message>]
    Send a message to the last person you sent a message to. Auto-expanding alias for msg %a.

r [<message>]
    Reply to last message received. Auto-expanding alias for msg %r.

url <contacts> <url> <message>
    Send a message regarding an url to all contacts.

sms [<nick>] [<cell>] <message>
    Send an SMS message message to cell phone number cell, which looks like +<country code><number>, or to the cell phone number of nick, which will be set to cell if unset. You may not specify cell if nick already has a cell phone number given. Invalid cell phone numbers will be removed from the nick's meta data.

chat <contacts> [<message>]
    Sends a message message to contacts contacts just as the msg command. After the message is sent (or cancelled), multi-line mode is entered and messages sent until an empty message is cancelled. Cancelling a non-empty message will only cancel the message itself, and more messages in multi-line mode can be sent.

getauto [auto|away|na|dnd|occ|ffc] [<contacts>]
    Requests auto message from contacts for given status, where away is for away, na for not available, dnd for do not disturb, occ for occupied and ffc for free for chat. If auto or nothing is given, the auto message for the contacts is fetched for their respective status. Contacts not in any of those status will be skipped. New for 0.4.10.

auth [req|grant|deny|add] <contacts>
    Grant or deny all contacts to add you to their list, request from all contacts to allow you to add them to your contact list, or tell contacts that you added them to your contact list.

resend <contacts>
    Resend the last message to more contacts.

last [<contacts>]
    Show the last message received from contact, or from everyone who already sent a message.

h <contact> [<last> [<count>]]

history <contact> [<last> [<count>]]
    Show messages from <contact> from the log files. Start at the last latest message, or the -last message if last is negative, defaulting to the 20ieth last message, and display count messages, defaulting to 20 if not given.

historyd <contact|*> <date> [<count>]
    Show messages from <contact> or all contacts (for *) from the log files. Start at date date, which must be given in ISO 8601 format, either YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS, and display count messages, defaulting to 20 if not given.

find <contact> <pattern>
    Search the pattern pattern case-insensitive in the log file for contact.

finds <contact> <pattern>
    Search the pattern pattern case-sensitive in the log file for contact.

tabs
    Shows of a list of users you can tab through.

COMMANDS CONCERNING YOUR STATUS

login
    A built-in shortcut for conn login. Opens the first server connection.

online [for <contacts> [<message>]]
    Change status to online, or change status to online only for the listed contacts and optionally specify the status message for them.

away [for <contacts>] [<message>]
    Change status to away and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

na [for <contacts>] [<message>]
    Change status to na(not available) and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

occ [for <contacts>] [<message>]
    Change status to occ(occupied) and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

dnd [for <contacts>] [<message>]
    Change status to dnd(do not disturb) and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

ffc [for <contacts>] [<message>]
    Change status to ffc(free for chat) and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

inv [for <contacts>] [<message>]
    Change status to inv(invisible) and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

change [<number> [for <contacts>] [<message>]]
    Without a number it lists some available modes. Otherwise, change status to number and optionally set auto response temporarely for this status to message, or change status only for given contacts and optionally specify the status message for them.

COMMANDS CONCERNING FINDING AND SEEING OTHER USERS

f <contacts>

finger <contacts>
    Show all white page information for contacts <contacts>.

ss <contacts>
    Show all saved white page information for contacts <contacts>.

i   List all the people on your ignore list.

s [<contacts>]
    Show your current status, or of all given contacts in detail, including all aliases.

e, ee, eg, eeg, ev, eev, egv, eegv, w, ww, wg, wwg, wv, wwv, wgv, wwgv
    List parts of your contact list. The following flags are displayed in the first column:

    +   This entry is actually no real contact, but an alias of the preceding one. Only with ww.

    #   This entry is not on your contact list, but the UIN was used at some time. Only with w and ww.

    *   This contact will see your status even if you're invisible.

    -   This contact won't see you at all.

    ^   This contact is ignored: no messages, no status changes.

    The ww* and ee* group of commands display another column for direct connection flags. If the first column would be empty, it will be displayed in the first contact for all of those commands unless it's ^.

    &   A direct connection to this contact is established.

    |   A direct connection to this contact has failed.

    :   A direct connection is currently tried to be established.

    ^   No direct connection opened, but IP address and port number are known.

    Another column is added for the ww* and ee* group of commands to show the status with regards to the server side contact list, as far as it is known:

    S   The contact is in the server side contact list, and should be there.

    s   The contact is in the server side contact list, but should not be there.

    .   The contact is not in the server side contact list, but should be there. This usually means "authorization required".

    ' ' The contact is not in the server side contact list, and is not wanted there.

e [<group>]
    List all people which are online in your contact list. Also print your own status.

ee [<group>]
    List all people which are online in your contact list with more details.

eg, eeg
    As above, but sort by groups. New for 0.4.10.

w, ww, wg, wwg
    As above, but also include offline contacts.

ev, eev, egv, eegv, wv, wwv, wgv, wwgv
    As above, but also include hidden contacts (with the shadow option effectively set). New for 0.5.

ewide
    List all people which are online in your contact list in a screen wide format.

wide
    List all people in your contact list in a screen wide format.

search

search <em@il>

search <contact>

search <first> <last>
    Search for a user with em@il as their email address, with nick as their nick (which mustn't contain an @), or with first as their first and last as their last name. If no argument is given, ask for nick name, first name, last name, email address and a whole bunch of other data to search for.

rand [<number>]
    Find a random user in interest group number. If number is not given, list all interest groups.

COMMANDS CONCERNING YOUR CONTACT LIST
Note: you need to save to make any of the changes done by these commmands persistent for the local contact list.

add <uin> <nickname>
    Add uin to your contact list as nickname.

add <contact> <alias>

addalias <contact> <alias>
    Add alias alias for nickname. New (addalias) for 0.4.10.

add [<group> [<contacts>]

addgroup <group> [<contacts>]
    Add all contacts in contacts to the contact group group, which is created if it doesn't exist and the command is given as addgroup. New for 0.4.10.

rem <contacts>
    Remove the aliases in contacts. If any nick is the last alias for this contact, remove the contact completely.
    Note: This command has a different meaning if the first argument of the contacts is a group name, so if you want to affect all contacts of a group, you may not use this as the first parameter; e.g. mention one member of the group first.

remalias <contacts>
    Remove the aliases in contacts.
    Modified for 0.6.3.

rem all <contacts>

remcont <contacts>
    Remove the contact completely from the contact list.
    New (remcont) for 0.6.3.
    Note: The command rem has a different meaning if the first argument of the contacts is a group name, so if you want to affect all contacts of a group, you may not use this as the first parameter; e.g. mention one member of the group first.

rem <group> <contacts>

remgroup <group> <contacts>
    Remove all contacts in contacts from the contact group group. Modified for 0.6.3.

rem all <group>

remgroup all <group>
    Remove all contacts from the contact group group. Further arguments may be silently ignored. If remgroup all is used, discard of the contact group completely. Modified for 0.6.3.

togig <contacts>
    Toggles whether contact's messages and status changes are ignored.

toginv <contacts>
    Toggles whether you will be hidden for contacts.

togvis <contacts>
    Toggles whether contacts can see you even if you are invisible.

COMMANDS CONCERNING YOUR ICQ ACCOUNT

pass <password>
    Changes your icq password to password.
    Note: your password may not start with ó (the byte 0xf3).
    Note: you need to save to make this persistent in case you save your password in your ~/.climm/climmrc file (see climmrc(5)), or you will get a mismatched password on your next login.

update
    Updates your basic user information (email, nickname, etc.).

other
    Updates other user information like age and sex.

about
    Updates your about user information.

setr [<number>]
    Sets your random user group to number. Without argument, lists possible interest groups.

reg <password>
    Creates a new user account with password password.

COMMANDS FOR CONFIGURING THE CLIMM CLIENT

verbose [<level>]
    Set verbosity of climm to level, or show the current verbosity. The verbosity level is a set of flags:

    8   Show protocol errors.

    16  Show creation and deletion of packets.

    32  Show added and removed queue events.

    64  Show created and deleted connections.

    256 Show v6 packets and their data.

    4096
        Show v7/v8 packets.

    8192
        Show the hexdump of v7/v8 packets.

    16284
        Save those packets to disc.

    65536
        Show peer-to-peer packets.

    131072
        Show the hexdump of peer-to-peer packets.

    262144
        Save those packets to disc.

    2097152
        Show peer-to-peer handshake.

    4194304
        Show I/O connection setup.

    However, any non-zero verbose level will cause more information to be printed, and any level greater than 1 even more.

clear
    Clear the screen.

sound [on|off|event]
    Toggle sound on or off, or call the event script for beeps. New syntax for 0.4.10.

prompt <user_prompt>
    Set user prompt in user_prompt. The following variables will be parsed and may be used in prompt string:

    %U  by your current user name

    %n  by your current nick

    %S  by description of your status

    %s  by short description of your status

    %P  by server name

    %p  by type of server (icq8, jabber, msn...)

    %a  by last send uin/nick

    %r  by last recived uin/nick

    %t  by time in format HH:MM:SS

    %T  by time in format given in option prompt_strftime .

    %%  %

    %[0-9]c
        by foreground color

    %[0-9]C
        by background color

    %[0-1]b
        bold. on = 1 (default), off = 0

    %[0-1]u
        underline. on = 1 (default), off = 0

    %[0-1]i
        inverse; on = 1 (default), off = 0. Reverses foreground and background colors.

    %d  set default all colors and styles

    \\b backspace

    \\r carriage return

    \\n new line

    \\t horizontal tab

    \\e ESC

    \\\\
        backslash

    Example:
     prompt %4c%b%p%d://%1c%b%n%3c/%2c%b%s%8c %t%7c%b>%6c%r%7c%b<%6c%b%a%7c%b>

autoaway [<timeout>|on|off]
    Set the timeout to timeout, or switch auto away on using the last used or default auto away time, or switch auto away off saving the current used auto away time. A timeout of 0 is equivalent to off. If no argument is given, the current setting is displayed.

alias [auto[expand]] [<alias> [<expansion>]]
    Make a new alias named alias which is substituted with expansion. If no alias is given, list all current aliases. If no expansion is given, list the current alias. Otherwise, create a new alias. If the auto or autoexpand keyword is given, the new alias is auto-expanding, that is, it is immediately expanded when the space or return key is pressed directly after entering the alias.
    If the string %s is present in expansion, each occurence is replaced with the given arguments when the alias is invoked, otherwise they will be appended. If the string %r is present in expansion, each occurence is replaced by the nick name or, if the nick is not available, the UIN, of the contact that sent the last message to you, or the empty string if there is none. If the string %a is present in expansion, each occurence is replaced by the nick name or, if the nick is not available, the UIN, of the contact that you sent the last message to, or the empty string if there is none.
    New for 0.4.10. Auto-expanding aliases new for 0.5.0.4.

unalias <alias>
    Delete the alias named alias. New for 0.4.10.

lang [<lang>|<nr>] ...
    Switch to the language and encoding lang, given by iso code, or output translation string number nr. To select the default language given by the environment variables LANG, LC_ALL and LC_MESSAGES, use !, auto or default. To select no translation at all, use ., none or unload. To get debugging information, prefix it with debug.

    The files from ~/.climm/i18n/*.i18n take precedence over the global ones, the files from BASE/i18n/*.i18b take precedence over those from ~/.climm/i18n/*.i18n, while the "funny" texts take precedence over the standard ones.

    You may specify as many arguments as you wish, e.g. to print string number 117 in German and then switch back to default language, use "trans de 117 default".

uptime
    Show the time climm has been running, plus some statistics.

set <option> <value>
    Set option option to either on or off, or an option specific set of values. option can be:

    color:
        use colors,

    delbs:
        interpret delete characters as backspace,

    funny:
        use funny messages,

    auto:
        send auto-replies when you're e.g. away,

    prompt:
        Type of the prompt:

        user
            use user prompt. See command prompt in climmcmds(7), and options prompt and prompt_strftime in climmrc(5),

        uin have the last nick in the prompt,

        simple
            simpe prompt, by default is "climm>".

    autosave:
        automatically save the climmrc,

    autofinger:
        automatically finger new UINs,

    linebreak:
        set the style for line-breaking messages to simple, to simply print the message after the nick and wrap, break, to add a line break before printing each incoming message, indent, to indent all lines of a message to the level after the nick, or smart, to add a line break only if the message wouldn't fit on the line;

    New options for 0.4.10. Options hermit, log, logonoff, silent, tabs removed for 0.5; use the opt command for them.

opt [<contact>|<contact group>|connection|global [<option> [<value>]]]
    Set option option for contact contact, contact group contact group, for the current connection or globally to the value value, or display the current value, or display all options and their settings.
    When resolving options for contacts, the option for the contact itself will be used, if set; otherwise, if the contact belongs to a group, the option for that group, if set; otherwise, if the contact belongs to a server connection (i.e. is not yet removed), the option for the server connection; otherwise the global option, if set. Otherwise, 0 for integer options, FALSE for boolean options, the color string for "no color" unless this color string is requested, or the empty string for string options.
    When resolving options for contact groups, the same is done except for the first step; options for connections are taken from the connection, then globally; and global options, of course, only globally.
    The following options currently exist, with type and applicability:

    colorscheme integer global
        The number of the color scheme to use. Set to 0 to disable and use the colors defined below.

    colornone color global
        The color string to use for normal text. The keywords black, red, green, yellow, blue, magenta, cyan, white, none, and bold are understood and replaced by their ANSI control sequences. Note that any color already includes none, so specify bold always after the color. Any other text is interpreted as control characters to output verbatim.

    colorserver color global
        The color string to use for server stuff.

    colorclient color global
        The color string to use for client stuff.

    colorinvchar color global
        The color string to use when displaying byte-sequences invalid for the given encoding.

    colorerror color global
        The color string to use for errors.

    colordebug color global
        The color string to use for debug output.

    colorquote color global
        The color string to use for quoted text.

    webaware boolean connection
        Whether the current status should be visible on the web.

    hideip boolean connection
        Whether to hide the (local) IP address.

    dcauth boolean connection
        Whether authorized contacts can see the (remote) IP address.

    dccont boolean connection
        Whether contacts can see the (remote) IP address.

    countaway boolean connection
        If set, incoming messages will be counted and their originators shown if the status is manually changed to anything other than online or ffc (with or without invisible). Otherwise, this is only done if the status was automatically changed to away or na (with or without invisible).

    obeysbl boolean connection
        Whether to load the server-based contact list upon login. This will enforce required authorizations, which will be ignored for local contact lists.

    ignore boolean contact
        Whether to ignore all messages from this contact.

    hidefrom boolean contact
        Whether to be invisible for this contact.

    intimate boolean contact
        Whether to be allways visible for this contact.

    logonoff boolean contact
        Whether to log when this contacts goes online or offline.

    logchange boolean contact
        Whether to log status changes for this contact.

    logmess boolean contact
        Whether to log messages for this contact.

    showonoff boolean contact
        Whether to show when this contact goes online or offline.

    showchange boolean contact
        Whether to show status changes for this contact.

    autoauto boolean contact
        Whether to automatically request automatic messages on status changes for this contact.

    hideack boolean contact
        Whether to hide acknowledges for messages to this contact.
        Note: using this is a really bad idea, as you'll miss when messages are resent without acknowledge.

    wantsbl boolean contact
        Whether you want this contact to be on the server side contact list.

    peekme boolean contact
        Whether you want this contact to be peeked when using the peek all or peekall command.

    shadow boolean contact
        Whether you want to hide this contact in contact list displays as long as none of the *v commands is used.

    local boolean contact
        Whether this contact is not a real contact, but just a nick for a number.

    encoding string contact
        The encoding to assume for messages whose encoding is undefined, in particular meta data on the server.

    tabspool integer contact
        Whether to add a contact to the tabs list upon startup.

    autoaway string contact
        The autoaway string for status away to return to this contact.

    autona string contact
        The autoaway string for status na to return to this contact.

    autoocc string contact
        The autoaway string for status occ to return to this contact.

    autodnd string contact
        The autoaway string for status dnd to return to this contact.

    autoffc string contact
        The autoaway string for status ffc to return to this contact.

    colormessage string contact
        The color string to use for messages of this contact.

    colorsent string contact
        The color string to use for the nick when messages are sent.

    colorack string contact
        The color string to use for the nick when messages are acknowledged.

    colorincoming string contact
        The color string to use for the nick when messages are received.

    colorcontact string contact
        The color string to use for the nick otherwise.

    New for 0.5.

optcontact <contact> [<option> [<value>]]
    Set or display option option or all options of contact contact. New for 0.5.

optgroup <group> [<option> [<value>]]
    Set or display option option or all options of contact group group. New for 0.5.

optconnection [<option> [<value>]]
    Set or display connection option option. New for 0.5.

optglobal [<option> [<value>]]
    Set or display global option option. New for 0.5.

save
    Saves current settings in the configuration file, which is ~/.climm/climmrc, unless specified otherwise. Beware, it will clobber any comments in this file.

q [<msg>]

quit [<msg>]

exit [<msg>]
    Quit climm. If given, send the message msg to all contacts previously messaged that are still online and on the contact list.
    Note: climm will not wait for any acknowledges - if the message is not received by the contact for whatever reason, it will not be resent.
    Aliases quit and exit new for 0.4.10.

x [<msg>]
    Quit climm without saving. If given, send the message msg to all contacts previously messaged that are still online and on the contact list.
    Note: climm will not wait for any acknowledges - if the message is not received by the contact for whatever reason, it will not be resent.
    Aliases quit and exit new for 0.4.10. New for 0.5.

COMMANDS CONCERNING ADVANCED FEATURES

meta [show|load|save|set|get|rget] <contacts>
    Handle meta data of contacts. The following subcommands are known:

    show
        Shows the meta data of all contacts given.

    load
        Loads the meta data for all contacts given from disc and shows them.

    save
        Saves the meta data for all contacts given to disc.

    set Uploads your meta data to the server.

    get Gets the meta data for all contacts from the server and shows them.

    getr
        Gets the meta data for the contact the last message was received from from the server and shows it.

    New for 0.4.10.

file [...]
    Alias for peer file. New for 0.4.10.

accept [...]
    Alias for peer accept. New for 0.4.10.4.

peer <command> <uin|nick>
    Operate command command on user given by UIN uin or nick name nick.

    open
        Open a peer to peer connection over TCP to the user.

    close
        Close and reset a peer to peer connection to the user.

    off Switch off trying to establish such a connection for sending messages until it is explicitly opened or reset.

    file <file> <description>
        Send file file with description description.

    files [<file> <as>]... <description>
        Send files to the user. There may be arbitrarily many pairs of a physical file name file and the name to be presented to the peer, as. If as is '/', the file name without the path is sent, and if it is '.' the same name is sent.

    accept [<contact>] [<id>]
        Accept an incoming file request from contact with the given ID id. If there is only one pending incoming file request, the contact and id arguments may be omitted, otherwise it is undefined which file request is answered when several match.

    deny [<contact>] [<id>] [<reason>]
        Deny an incoming file request from contact with the given ID id with the reason reason.

login [...]
    Alias for conn login. New for 0.4.10.4.

conn [<command> <nr>]
    List all connections, or operate command on connection nr.

    open
        Open the given, or the first server connection. An optional password may be given, which overrides any previously known one.

    login
        Open the given, or the first server connection. An optional password may be given, which overrides any previously known one.

    close
        Close the given connection. Temporary connections will get removed by this.

    remove
        Close and remove given (temporary) connection.

    select
        Select the given server connection as the current one. nr may be the connection number or the UIN used for the connection.

contact [<command>]
    Handle the server side contact list:

    show
        Download the server side contact list and just show it.

    diff
        Download the server side contact list and show only contacts (uin/nick pairs) that are not in the local contact list.

    add Download the server side contact list and add all contacts to the local one.

    upload
        Try to upload local contacts to the server side contact list.

    download
        Download contacts from the server side contact list, but avoid modifying already existing contacts.

    import
        Download contacts from the server side contact list, modifying existing contacts.
        Note: This will always try to upload only those contacts with the wantsbl contact option. Do a optglobal wantsbl on if you want to upload all of your contacts.

peek [<contacts>] [all] [<contacts>]
    Check for each contact whether it is actually online or not. The special keyword all will check upon all contacts with the peekme option effectively set.
    Note: This abuses a bug in the ICQ protocol to figure this out and thus can stop working at any time. No additional information except online or offline can be found out this way.

peek2 <contacts>
    Builtin alias for getauto away contacts. Can be used to detect presence of users of some clients, but this itself can be detected by the other user's client. climm since 0.5 will not be detected by this, but will detect tries from other clients.

peekall [<contacts>]
    Builtin alias for peek <contacts> all.

as <nr|uin> <cmd>
    Execute climm command cmd as if the connection number nr or for the UIN uin would be the current one.

COMMANDS FOR SCRIPTING

tclscript <file>
    Execute the tcl script file, which may be given relative to the climm base directory.

tcl <string>
    Execute the tcl command string. Type tcl climm help to get a list of climm-specific tcl commands.

SEE ALSO
climm(1), climmrc(5)

AUTHOR
This man page was originally created by James Morrison <ja2morrison@student.math.uwaterloo.ca> for a reference to all interactive commands in climm. It has been adapted to current usage by Rüdiger Kuhlmann.