BitlBee User Guide

Jelmer Vernooij

Wilmer van der Gaast

Sjoerd Hemminga

This is the BitlBee User Guide. For now, the on-line help is the most
up-to-date documentation. Although this document shares some parts with the
on-line help system, other parts might be very outdated.

-------------------------------------------------------------------------------

Table of Contents

1. Installation
    Downloading the package
    Compiling
    Configuration
2. Usage
    Connecting to the server
    The &bitlbee control channel
    Talking to people
3. Support
    Disclaimer
    Support channels
        The World Wide Web
        IRC
        Mailinglists
4. Quickstart
    Add and Connect To your IM Account(s)
    Step Four: Managing Contact Lists: Add, Remove and Rename
    Chatting
    Further Resources
5. Bitlbee commands
    account - IM-account list maintenance
        account add
        account del
        account on
        account off
        account list
        account set
    channel - Channel list maintenance
        channel del
        channel list
        channel set
    chat - Chatroom list maintenance
        chat add
        chat list
        chat with
    add - Add a buddy to your contact list
    info - Request user information
    remove - Remove a buddy from your contact list
    block - Block someone
    allow - Unblock someone
    otr - Off-the-Record encryption control
        otr connect
        otr disconnect
        otr reconnect
        otr smp
        otr smpq
        otr trust
        otr info
        otr keygen
        otr forget
    set - Miscellaneous settings
    help - BitlBee help system
    save - Save your account data
    account
    allow_takeover
    always_use_nicks
    auto_connect
    auto_join
    auto_reconnect
    auto_reconnect_delay
    auto_reply_timeout
    away
    away_devoice
    away_reply_timeout
    base_url
    carbons
    charset
    color_encrypted
    chat_type
    commands
    debug
    default_target
    display_name
    display_namechanges
    display_timestamps
    fill_by
    group
    handle_unknown
    ignore_auth_requests
    mail_notifications
    mail_notifications_handle
    message_length
    stream
    target_url_length
    mode
    mobile_is_away
    nick
    nick_format
    nick_source
    nick_lowercase
    nick_underscores
    oauth
    anonymous
    ops
    otr_policy
    password
    paste_buffer
    paste_buffer_delay
    port
    priority
    private
    protocol
    proxy
    query_order
    resource
    resource_select
    root_nick
    save_on_quit
    self_messages
    server
    show_ids
    show_offline
    show_users
    simulate_netsplit
    ssl
    status
    strip_html
    strip_newlines
    show_old_mentions
    tag
    timezone
    tls
    tls_verify
    to_char
    translate_to_nicks
    type
    typing_notice
    user_agent
    utf8_nicks
    web_aware
    xmlconsole
    rename - Rename (renick) a buddy
    yes - Accept a request
    no - Deny a request
    plugins - List all the external plugins and protocols
    qlist - List all the unanswered questions root asked
    register - Register yourself
    identify - Identify yourself with your password
    drop - Drop your account
    blist - List all the buddies in the current channel
    group - Contact group management
    transfer - Monitor, cancel, or reject file transfers
        transfer cancel - Cancels the file transfer with the given id
        transfer reject - Rejects all incoming transfers
6. Twitter
7. Misc Stuff
    Groupchats
    Creating groupchats
    Away states
    Changing your nickname
    Dealing with channels
    Creating a channel
    Configuring a control channel
    Nickname formatting
    Nickname formatting - modifiers
    Identifying to your BitlBee account
    New stuff in BitlBee 1.2.6
    New stuff in BitlBee 1.3dev
    New stuff in BitlBee 3.0
    New stuff in BitlBee 1.3dev (details)
    New stuff in BitlBee 3.0.5
    New stuff in BitlBee 3.2
    New stuff in BitlBee 3.2.2
    New stuff in BitlBee 3.4
    New stuff in BitlBee 3.4.1
    New stuff in BitlBee 3.4.2
    New stuff in BitlBee 3.5

Chapter 1. Installation

Table of Contents

Downloading the package
Compiling
Configuration

Downloading the package

The latest BitlBee release is always available from http://www.bitlbee.org/.
Download the package with your favorite program and unpack it: tar xvfz
bitlbee-<version>.tar.gz where <version> is to be replaced by the version
number of the BitlBee you downloaded (e.g. 0.91).

Compiling

BitlBee's build system has to be configured before compiling. The configure
script will do this for you. Just run it, it'll set up with nice and hopefully
well-working defaults. If you want to change some settings, just try ./
configure --help and see what you can do.

Some variables that might be of interest to the normal user:

  * prefix, bindir, etcdir, mandir, datadir - The place where all the BitlBee
    program files will be put. There's usually no reason to specify them all
    separately, just specifying prefix (or keeping the default /usr/local/)
    should be okay.

  * config - The place where BitlBee will save all the per-user settings and
    buddy information. /var/lib/bitlbee/ is the default value.

  * jabber, oscar, twitter - By default, support for all these IM-protocols
    (OSCAR is the protocol used by both ICQ and AIM) will be compiled in. To
    make the binary a bit smaller, you can use these options to leave out
    support for protocols you're not planning to use.

  * debug - Generate an unoptimized binary with debugging symbols, mainly
    useful if you want to do some debugging or help us to track down a problem.

  * strip - By default, unnecessary parts of the generated binary will be
    stripped out to make it as small as possible. If you don't want this
    (because it might cause problems on some platforms), set this to 0.

  * flood - To secure your BitlBee server against flooding attacks, you can use
    this option. It's not compiled in by default because it needs more testing
    first.

  * ssl - BitlBee can use three different SSL libraries: GnuTLS, mozilla-nss
    and OpenSSL. (OpenSSL is, however, a bit troublesome because of licensing
    issues, so don't forget to read the information configure will give you
    when you try to use OpenSSL!) By default, configure will try to detect
    GnuTLS or mozilla-nss. If none of them can be found, it'll give up. If you
    want BitlBee to use OpenSSL, you have to explicitly specify that.

After running configure, you should run make. After that, run make install as
root.

Configuration

By default, BitlBee runs as the user nobody. You might want to run it as a
separate user (some computers run named or apache as nobody).

Since BitlBee uses inetd, you should add the following line to /etc/inetd.conf:

6667    stream  tcp     nowait nobody /usr/local/sbin/bitlbee bitlbee

Inetd has to be restarted after changing the configuration. Either killall -HUP
inetd or /etc/init.d/inetd restart should do the job on most systems.

You might be one of the.. ehr, lucky people running an xinetd-powered distro. 
xinetd is quite different and they seem to be proud of that.. ;-) Anyway, if
you want BitlBee to work with xinetd, just copy the bitlbee.xinetd file to your
/etc/xinetd.d/ directory (and probably edit it to suit your needs).

You should create a directory where BitlBee can store it's data files. This
should be the directory named after the value 'CONFIG' in Makefile.settings.
The default is /var/lib/bitlbee, which can be created with the command mkdir -p
/var/lib/bitlbee. This directory has to be owned by the user that runs bitlbee.
To make 'nobody' owner of this directory, run chown nobody /var/lib/bitlbee.
Because things like passwords are saved in this directory, it's probably a good
idea to make this directory owner-read-/writable only.

Chapter 2. Usage

Table of Contents

Connecting to the server
The &bitlbee control channel
Talking to people

Connecting to the server

Since BitlBee acts just like any other irc daemon, you can connect to it with
your favorite irc client. Launch it and connect to localhost port 6667 (or
whatever host/port you are running bitlbee on).

The &bitlbee control channel

Once you are connected to the BitlBee server, you are automatically joined to &
bitlbee on that server. This channel acts like the 'buddy list' you have on the
various other chat networks.

The user 'root' always hangs around in &bitlbee and acts as your interface to
bitlbee. All commands you give on &bitlbee are 'answered' by root.

You might be slightly confused by the & in the channel name. This is, however,
completely allowed by the IRC standards. Just try it on a regular IRC server,
it should work. The difference between the standard #channels and &channels is
that the #channels are distributed over all the servers on the IRC network,
while &channels are local to one server. Because the BitlBee control channel is
local to one server (and in fact, to one person), this name seems more
suitable. Also, with this name, it's harder to confuse the control channel with
the #bitlbee channel on OFTC.

Talking to people

You can talk to by starting a query with them. In most irc clients, this can be
done with either /msg <nick> <text> or /query <nick>.

To keep the number of open query windows limited, you can also talk to people
in the control channel, like <nick>: <text>.

Chapter 3. Support

Table of Contents

Disclaimer
Support channels
    The World Wide Web
    IRC
    Mailinglists

Disclaimer

BitlBee doesn't come with a warranty and is still (and will probably always be)
under development. That means it can crash at any time, corrupt your data or
whatever. Don't use it in any production environment and don't rely on it, or
at least don't blame us if things blow up. :-)

Support channels

The World Wide Web

http://www.bitlbee.org/ is the homepage of bitlbee and contains the most recent
news on bitlbee and the latest releases.

IRC

BitlBee is discussed on #bitlbee on the OFTC IRC network (server:
irc.oftc.net).

Mailinglists

BitlBee doesn't have any mailinglists.

Chapter 4. Quickstart

Table of Contents

Add and Connect To your IM Account(s)
Step Four: Managing Contact Lists: Add, Remove and Rename
Chatting
Further Resources

Welcome to BitlBee, your IRC gateway to other instant messaging protocols.

The center of BitlBee is the control channel, &bitlbee. Two users will always
be there, you (where "you" is the nickname you are using) and the system user, 
root.

You need to register so that all your IM settings (passwords, contacts, etc)
can be saved on the BitlBee server. It's important that you pick a good
password so no one else can access your account. Register with this password
using the register command: register <password> (without the brackets!).

Be sure to remember your password. The next time you connect to the BitlBee
server you will need to identify <password> so that you will be recognised and
logged in to all the IM services automatically.

When finished, type help quickstart2 to continue.

Add and Connect To your IM Account(s)

Step Two: Add and Connect To your IM Account(s).

To add an account to the account list you will need to use the account add
command: account add <protocol> <username> <password> [<server>].

For instance, suppose you have a Jabber account at jabber.org with handle 
bitlbee@jabber.org with password QuickStart, you would:

< you> account add jabber bitlbee@jabber.org QuickStart
< root> Account successfully added

Other built-in IM protocols include oscar and twitter. OSCAR is the protocol
used by ICQ and AOL. Some protocols may be available as plugins that you can
install, such as facebook, steam, discord and omegle. And you can get even more
protocols by using the libpurple variant of BitlBee.

For a list of currently supported protocols, use the plugins command. For more
information about the account add command, see help account add.

When you are finished adding your account(s) use the account on command to
enable all your accounts, type help quickstart3 to continue.

Step Four: Managing Contact Lists: Add, Remove and Rename

Now you might want to add some contacts, to do this we will use the add
command. It needs two arguments: a connection ID (which can be a number (try 
account list), protocol name or (part of) the screenname) and the user's
handle. It is used in the following way: add <connection> <handle>

< you> add 0 r2d2@example.com
 * r2d2 has joined &bitlbee

In this case r2d2 is online, since he/she joins the channel immediately. If the
user is not online you will not see them join until they log on.

Lets say you accidentally added r2d3@example.com rather than r2d2@example.com,
or maybe you just want to remove a user from your list because you never talk
to them. To remove a name you will want to use the remove command: remove r2d3

Finally, if you have multiple users with similar names you may use the rename
command to make it easier to remember: rename r2d2_ r2d2_aim

When finished, type help quickstart4 to continue.

Chatting

Step Five: Chatting.

First of all, a person must be on your contact list for you to chat with them
(unless it's a group chat, help groupchats for more). If someone not on your
contact list sends you a message, simply add them to the proper account with
the add command. Once they are on your list and online, you can chat with them
in &bitlbee:

< you> tux: hey, how's the weather down there?
< tux> you: a bit chilly!

Note that, although all contacts are in the &bitlbee channel, only tux will
actually receive this message. The &bitlbee channel shouldn't be confused with
a real IRC channel.

If you prefer chatting in a separate window, use the /msg or /query command,
just like on real IRC. BitlBee will remember how you talk to someone and show
his/her responses the same way. If you want to change the default behaviour
(for people you haven't talked to yet), see help set private.

You know the basics. If you want to know about some of the neat features
BitlBee offers, please type help quickstart5.

Further Resources

So you want more than just chatting? Or maybe you're just looking for more
features?

With multiple channel support you can have contacts for specific protocols in
their own channels, for instance, if you /join &jabber you will join a channel
that only contains your jabber contacts.

Account tagging allows you to use the given account name rather than a number
when referencing your account. If you wish to turn off your gtalk account, you
may account gtalk off rather than account 3 off where "3" is the account
number.

You can type help set to learn more about the possible BitlBee user settings.
Among these user settings you will find options for common issues, such as
changing the charset, HTML stripping and automatic connecting (simply type set
to see current user settings).

For more subjects (like groupchats and away states), please type help index.

If you're still looking for something, please visit us in #bitlbee on the OFTC
network (irc.oftc.net). Good luck and enjoy the Bee!

Chapter 5. Bitlbee commands

Table of Contents

account - IM-account list maintenance
    account add
    account del
    account on
    account off
    account list
    account set
channel - Channel list maintenance
    channel del
    channel list
    channel set
chat - Chatroom list maintenance
    chat add
    chat list
    chat with
add - Add a buddy to your contact list
info - Request user information
remove - Remove a buddy from your contact list
block - Block someone
allow - Unblock someone
otr - Off-the-Record encryption control
    otr connect
    otr disconnect
    otr reconnect
    otr smp
    otr smpq
    otr trust
    otr info
    otr keygen
    otr forget
set - Miscellaneous settings
help - BitlBee help system
save - Save your account data
account
allow_takeover
always_use_nicks
auto_connect
auto_join
auto_reconnect
auto_reconnect_delay
auto_reply_timeout
away
away_devoice
away_reply_timeout
base_url
carbons
charset
color_encrypted
chat_type
commands
debug
default_target
display_name
display_namechanges
display_timestamps
fill_by
group
handle_unknown
ignore_auth_requests
mail_notifications
mail_notifications_handle
message_length
stream
target_url_length
mode
mobile_is_away
nick
nick_format
nick_source
nick_lowercase
nick_underscores
oauth
anonymous
ops
otr_policy
password
paste_buffer
paste_buffer_delay
port
priority
private
protocol
proxy
query_order
resource
resource_select
root_nick
save_on_quit
self_messages
server
show_ids
show_offline
show_users
simulate_netsplit
ssl
status
strip_html
strip_newlines
show_old_mentions
tag
timezone
tls
tls_verify
to_char
translate_to_nicks
type
typing_notice
user_agent
utf8_nicks
web_aware
xmlconsole
rename - Rename (renick) a buddy
yes - Accept a request
no - Deny a request
plugins - List all the external plugins and protocols
qlist - List all the unanswered questions root asked
register - Register yourself
identify - Identify yourself with your password
drop - Drop your account
blist - List all the buddies in the current channel
group - Contact group management
transfer - Monitor, cancel, or reject file transfers
    transfer cancel - Cancels the file transfer with the given id
    transfer reject - Rejects all incoming transfers

account - IM-account list maintenance

Syntax: 

account [<account id>] <action> [<arguments>]

Available actions: add, del, list, on, off and set. See help account <action>
for more information.

account add

Syntax: 

account add <protocol> <username> [<password>]

Adds an account on the given server with the specified protocol, username and
password to the account list. For a list of supported protocols, use the 
plugins command. For more information about adding an account, see help account
add <protocol>.

You can omit the password and enter it separately using the IRC /OPER command.
This lets you enter your password without your IRC client echoing it on screen
or recording it in logs.

account add jabber

Syntax: 

account add jabber <handle@server.tld> [<password>]

The handle should be a full handle, including the domain name. You can specify
a servername if necessary. Normally BitlBee doesn't need this though, since
it's able to find out the server by doing DNS SRV lookups.

In previous versions it was also possible to specify port numbers and/or SSL in
the server tag. This is deprecated and should now be done using the account set
command. This also applies to specifying a resource in the handle (like 
wilmer@bitlbee.org/work).

account add twitter

Syntax: 

account add twitter <handle>

This module gives you simple access to Twitter and Twitter API compatible
services.

By default all your Twitter contacts will appear in a new channel called #
twitter_yourusername. You can change this behaviour using the mode setting (see
help set mode).

To send tweets yourself, send them to the twitter_(yourusername) contact, or
just write in the groupchat channel if you enabled that option.

Since Twitter now requires OAuth authentication, you should not enter your
Twitter password into BitlBee. Just type a bogus password. The first time you
log in, BitlBee will start OAuth authentication. (See help set oauth.)

To use a non-Twitter service, change the base_url setting. For identi.ca, you
can simply use account add identica.

account add identica

Syntax: 

account add identica <handle>

Same protocol as twitter, but defaults to a base_url pointing at identi.ca. It
also works with OAuth (so don't specify your password).

account del

Syntax: 

account <account id> del

This command deletes an account from your account list. You should signoff the
account before deleting it.

The account ID can be a number/tag (see account list), the protocol name or
(part of) the screenname, as long as it matches only one connection.

account on

Syntax: 

account [<account id>] on

This command will try to log into the specified account. If no account is
specified, BitlBee will log into all the accounts that have the auto_connect
flag set.

The account ID can be a number/tag (see account list), the protocol name or
(part of) the screenname, as long as it matches only one connection.

account off

Syntax: 

account [<account id>] off

This command disconnects the connection for the specified account. If no
account is specified, BitlBee will deactivate all active accounts and cancel
all pending reconnects.

The account ID can be a number/tag (see account list), the protocol name or
(part of) the screenname, as long as it matches only one connection.

account list

Syntax: 

account list

This command gives you a list of all the accounts known by BitlBee.

account set

Syntax: 

account <account id> set
account <account id> set <setting>
account <account id> set <setting> <value>
account <account id> set -del <setting>

This command can be used to change various settings for IM accounts. For all
protocols, this command can be used to change the handle or the password
BitlBee uses to log in and if it should be logged in automatically. Some
protocols have additional settings. You can see the settings available for a
connection by typing account <account id> set.

For more information about a setting, see help set <setting>.

The account ID can be a number/tag (see account list), the protocol name or
(part of) the screenname, as long as it matches only one connection.

channel - Channel list maintenance

Syntax: 

channel [<channel id>] <action> [<arguments>]

Available actions: del, list, set. See help channel <action> for more
information.

There is no channel add command. To create a new channel, just use the IRC /
join command. See also help channels and help groupchats.

channel del

Syntax: 

channel <channel id> del

Remove a channel and forget all its settings. You can only remove channels
you're not currently in, and can't remove the main control channel. (You can,
however, leave it.)

channel list

Syntax: 

channel list

This command gives you a list of all the channels you configured.

channel set

Syntax: 

channel [<channel id>] set
channel [<channel id>] set <setting>
channel [<channel id>] set <setting> <value>
channel [<channel id>] set -del <setting>

This command can be used to change various settings for channels. Different
channel types support different settings. You can see the settings available
for a channel by typing channel <channel id> set.

For more information about a setting, see help set <setting>.

The channel ID can be a number (see channel list), or (part of) its name, as
long as it matches only one channel. If you want to change settings of the
current channel, you can omit the channel ID.

chat - Chatroom list maintenance

Syntax: 

chat <action> [<arguments>]

Available actions: add, with, list. See help chat <action> for more
information.

chat add

Syntax: 

chat add <account id> <room|!index> [<channel>]

Add a chatroom to the list of chatrooms you're interested in. BitlBee needs
this list to map room names to a proper IRC channel name.

After adding a room to your list, you can simply use the IRC /join command to
enter the room. Also, you can tell BitlBee to automatically join the room when
you log in. (channel <channel> set auto_join true)

Password-protected rooms work exactly like on IRC, by passing the password as
an extra argument to /join.

chat list

Syntax: 

chat list <account id> [<server>]

List existing named chatrooms provided by an account. Chats from this list can
be referenced from chat add by using the number in the index column after a "!"
as a shortcut.

The server parameter is optional and currently only used by jabber.

< dx> chat list facebook
< root> Index Title Topic
< root> 1 869891016470949 cool kids club
< root> 2 457892181062459 uncool kids club
< root> 2 facebook chatrooms
< dx> chat add facebook !1 #cool-kids-club

chat with

Syntax: 

chat with <nickname>

While most chat subcommands are about named chatrooms, this command can be used
to open an unnamed groupchat with one or more persons. This command is what /
join #nickname used to do in older BitlBee versions.

Another way to do this is to join to a new, empty channel with /join #
newchannel and invite the first person with /invite nickname

add - Add a buddy to your contact list

Syntax: 

add <account id> <handle> [<nick>]
add -tmp <account id> <handle> [<nick>]

Adds the given buddy at the specified connection to your buddy list. The
account ID can be a number (see account list), the protocol name or (part of)
the screenname, as long as it matches only one connection.

If you want, you can also tell BitlBee what nick to give the new contact. The
-tmp option adds the buddy to the internal BitlBee structures only, not to the
real contact list (like done by set handle_unknown add). This allows you to
talk to people who are not in your contact list. This normally won't show you
any presence notifications.

If you use this command in a control channel containing people from only one
group, the new contact will be added to that group automatically.

< ctrlsoft> add 3 gryp@jabber.org grijp
 * grijp has joined &bitlbee

info - Request user information

Syntax: 

info <connection> <handle>
info <nick>

Requests IM-network-specific information about the specified user. The amount
of information you'll get differs per protocol. For some protocols it'll give
you an URL which you can visit with a normal web browser to get the
information.

< ctrlsoft> info 0 72696705
< root> User info - UIN: 72696705 Nick: Lintux First/Last name: Wilmer van der Gaast E-mail: lintux@lintux.cx

remove - Remove a buddy from your contact list

Syntax: 

remove <nick>

Removes the specified nick from your buddy list.

< ctrlsoft> remove gryp
 * gryp has quit [Leaving...]

block - Block someone

Syntax: 

block <nick>
block <connection> <handle>
block <connection>

Puts the specified user on your ignore list. Either specify the user's nick
when you have him/her in your contact list or a connection number and a user
handle.

When called with only a connection specification as an argument, the command
displays the current block list for that connection.

allow - Unblock someone

Syntax: 

allow <nick>
allow <connection> <handle>

Reverse of block. Unignores the specified user or user handle on specified
connection.

When called with only a connection specification as an argument, the command
displays the current allow list for that connection.

otr - Off-the-Record encryption control

Syntax: 

otr <subcommand> [<arguments>]

Available subcommands: connect, disconnect, reconnect, smp, smpq, trust, info,
keygen, and forget. See help otr <subcommand> for more information.

otr connect

Syntax: 

otr connect <nick>

Attempts to establish an encrypted connection with the specified user by
sending a magic string.

otr disconnect

Syntax: 

otr disconnect <nick>
otr disconnect *

Resets the connection with the specified user/all users to cleartext.

otr reconnect

Syntax: 

otr reconnect <nick>

Breaks and re-establishes the encrypted connection with the specified user.
Useful if something got desynced.

Equivalent to otr disconnect followed by otr connect.

otr smp

Syntax: 

otr smp <nick> <secret>

Attempts to authenticate the given user's active fingerprint via the Socialist
Millionaires' Protocol.

If an SMP challenge has been received from the given user, responds with the
specified secret/answer. Otherwise, sends a challenge for the given secret.

Note that there are two flavors of SMP challenges: "shared-secret" and
"question & answer". This command is used to respond to both of them, or to
initiate a shared-secret style exchange. Use the otr smpq command to initiate a
"Q&A" session.

When responding to a "Q&A" challenge, the local trust value is not altered.
Only the asking party sets trust in the case of success. Use otr smpq to pose
your challenge. In a shared-secret exchange, both parties set their trust
according to the outcome.

otr smpq

Syntax: 

otr smpq <nick> <question> <answer>

Attempts to authenticate the given user's active fingerprint via the Socialist
Millionaires' Protocol, Q&A style.

Initiates an SMP session in "question & answer" style. The question is
transmitted with the initial SMP packet and used to prompt the other party. You
must be confident that only they know the answer. If the protocol succeeds
(i.e. they answer correctly), the fingerprint will be trusted. Note that the
answer must be entered exactly, case and punctuation count!

Note that this style of SMP only affects the trust setting on your side. Expect
your opponent to send you their own challenge. Alternatively, if you and the
other party have a shared secret, use the otr smp command.

otr trust

Syntax: 

otr trust <nick> <fp1> <fp2> <fp3> <fp4> <fp5>

Manually affirms trust in the specified fingerprint, given as five blocks of
precisely eight (hexadecimal) digits each.

otr info

Syntax: 

otr info
otr info <nick>

Shows information about the OTR state. The first form lists our private keys
and current OTR contexts. The second form displays information about the
connection with a given user, including the list of their known fingerprints.

otr keygen

Syntax: 

otr keygen <account-no>

Generates a new OTR private key for the given account.

otr forget

Syntax: 

otr forget <thing> <arguments>

Forgets some part of our OTR userstate. Available things: fingerprint, context,
and key. See help otr forget <thing> for more information.

otr forget fingerprint

Syntax: 

otr forget fingerprint <nick> <fingerprint>

Drops the specified fingerprint from the given user's OTR connection context.
It is allowed to specify only a (unique) prefix of the desired fingerprint.

otr forget context

Syntax: 

otr forget context <nick>

Forgets the entire OTR context associated with the given user. This includes
current message and protocol states, as well as any fingerprints for that user.

otr forget key

Syntax: 

otr forget key <fingerprint>

Forgets an OTR private key matching the specified fingerprint. It is allowed to
specify only a (unique) prefix of the fingerprint.

set - Miscellaneous settings

Syntax: 

set
set <variable>
set <variable> <value>
set -del <variable>

Without any arguments, this command lists all the set variables. You can also
specify a single argument, a variable name, to get that variable's value. To
change this value, specify the new value as the second argument. With -del you
can reset a setting to its default value.

To get more help information about a setting, try:

< ctrlsoft> help set private

help - BitlBee help system

Syntax: 

help [subject]

This command gives you the help information you're reading right now. If you
don't give any arguments, it'll give a short help index.

save - Save your account data

Syntax: 

save

This command saves all your nicks and accounts immediately. Handy if you have
the autosave functionality disabled, or if you don't trust the program's
stability... ;-)

account

Type: string

For control channels with fill_by set to account: Set this setting to the
account id (numeric, or part of the username) of the account containing the
contacts you want to see in this channel.

allow_takeover

Type: boolean

When you're already connected to a BitlBee server and you connect (and
identify) again, BitlBee will offer to migrate your existing session to the new
connection. If for whatever reason you don't want this, you can disable this
setting.

always_use_nicks

Type: boolean

Jabber groupchat specific. This setting ensures that the nicks defined by the
other members of a groupchat are used, instead of the username part of their
JID. This only applies to groupchats where their real JID is known (either
"non-anonymous" ones, or "semi-anonymous" from the point of view of the channel
moderators)

Enabling this may have the side effect of changing the nick of existing
contacts, either in your buddy list or in other groupchats. If a contact is in
multiple groupchats with different nicks, enabling this setting for all those
would result in multiple nick changes when joining, and the order of those
changes may vary.

Note that manual nick changes done through the rename command always take
priority

auto_connect

Type: boolean

With this option enabled, when you identify BitlBee will automatically connect
to your accounts, with this disabled it will not do this.

This setting can also be changed for specific accounts using the account set
command. (However, these values will be ignored if the global auto_connect
setting is disabled!)

auto_join

Type: boolean

With this option enabled, BitlBee will automatically join this channel when you
log in.

auto_reconnect

Type: boolean

If an IM-connections breaks, you're supposed to bring it back up yourself.
Having BitlBee do this automatically might not always be a good idea, for
several reasons. If you want the connections to be restored automatically, you
can enable this setting.

See also the auto_reconnect_delay setting.

This setting can also be changed for specific accounts using the account set
command. (However, these values will be ignored if the global auto_reconnect
setting is disabled!)

auto_reconnect_delay

Type: string

Tell BitlBee after how many seconds it should attempt to bring a broken
IM-connection back up.

This can be one integer, for a constant delay. One can also set it to something
like "10*10", which means wait for ten seconds on the first reconnect, multiply
it by ten on every failure. Once successfully connected, this delay is re-set
to the initial value. With < you can give a maximum delay.

See also the auto_reconnect setting.

auto_reply_timeout

Type: integer

For Twitter accounts: If you respond to Tweets IRC-style (like "nickname:
reply"), this will automatically be converted to the usual Twitter format
("@screenname reply").

By default, BitlBee will then also add a reference to that person's most recent
Tweet, unless that message is older than the value of this setting in seconds.

If you want to disable this feature, just set this to 0. Alternatively, if you
want to write a message once that is not a reply, use the Twitter reply syntax
(@screenname).

away

Type: string

To mark yourself as away, it is recommended to just use /away, like on normal
IRC networks. If you want to mark yourself as away on only one IM network, you
can use this per-account setting.

You can set it to any value and BitlBee will try to map it to the most
appropriate away state for every open IM connection, or set it as a free-form
away message where possible.

Any per-account away setting will override globally set away states. To un-set
the setting, use set -del away.

away_devoice

Type: boolean

With this option enabled, the root user devoices people when they go away (just
away, not offline) and gives the voice back when they come back. You might
dislike the voice-floods you'll get if your contact list is huge, so this
option can be disabled.

Replaced with the show_users setting. See help show_users.

away_reply_timeout

Type: integer

Most IRC servers send a user's away message every time s/he gets a private
message, to inform the sender that they may not get a response immediately.
With this setting set to 0, BitlBee will also behave like this.

Since not all IRC clients do an excellent job at suppressing these messages,
this setting lets BitlBee do it instead. BitlBee will wait this many seconds
(or until the away state/message changes) before re-informing you that the
person's away.

base_url

Type: string

There are more services that understand the Twitter API than just Twitter.com.
BitlBee can connect to all Twitter API implementations.

For example, set this setting to http://identi.ca/api to use Identi.ca.

Keep two things in mind: When not using Twitter, you must also disable the 
oauth setting as it currently only works with Twitter. If you're still having
issues, make sure there is no slash at the end of the URL you enter here.

carbons

Type: boolean

Jabber specific. "Message carbons" (XEP-0280) is a server feature to get copies
of outgoing messages sent from other clients connected to the same account.
It's not widely supported by most public XMPP servers (easier if you host your
own), but this will probably change in the next few years.

This defaults to true, which will enable it if the server supports it, or fail
silently if it's not. This setting only exists to allow disabling the feature
if anyone considers it undesirable.

See also the self_messages setting.

charset

Type: string

This setting tells BitlBee what your IRC client sends and expects. It should be
equal to the charset setting of your IRC client if you want to be able to send
and receive non-ASCII text properly.

Most systems use UTF-8 these days. On older systems, an iso8859 charset may
work better. For example, iso8859-1 is the best choice for most Western
countries. You can try to find what works best for you on http://
www.unicodecharacter.com/charsets/iso8859.html

color_encrypted

Type: boolean

If set to true, BitlBee will color incoming encrypted messages according to
their fingerprint trust level: untrusted=red, trusted=green.

chat_type

Type: string

There are two kinds of chat channels: simple groupchats (basically normal IM
chats with more than two participants) and names chatrooms, more similar to IRC
channels.

BitlBee supports both types. With this setting set to groupchat (the default),
you can just invite people into the room and start talking.

For setting up named chatrooms, it's currently easier to just use the chat add
command.

commands

Type: boolean

With this setting enabled, you can use some commands in your Twitter channel/
query. See help twitter for the list of extra commands available.

debug

Type: boolean

Some debugging messages can be logged if you wish. They're probably not really
useful for you, unless you're doing some development on BitlBee.

This feature is not currently used for anything so don't expect this to
generate any output.

default_target

Type: string

With this value set to root, lines written in a control channel without any
nickname in front of them will be interpreted as commands. If you want BitlBee
to send those lines to the last person you addressed in that control channel,
set this to last.

display_name

Type: string

Currently only available for jabber groupchats.

For jabber groupchats: this sets the default value of 'nick' for newly created
groupchats. There is no way to set an account-wide nick.

display_namechanges

Type: boolean

With this option enabled, root will inform you when someone in your buddy list
changes his/her "friendly name".

display_timestamps

Type: boolean

When incoming messages are old (i.e. offline messages and channel backlogs),
BitlBee will prepend them with a timestamp. If you find them ugly or useless,
you can use this setting to hide them.

fill_by

Type: string

For control channels only: This setting determines which contacts the channel
gets populated with.

By default, control channels will contain all your contacts. You instead select
contacts by buddy group, IM account or IM protocol.

Change this setting and the corresponding account/group/protocol setting to set
up this selection.

With a ! prefix an inverted channel can be created, for example with this
setting set to !group you can create a channel with all users not in that
group.

Note that, when creating a new channel, BitlBee will try to preconfigure the
channel for you, based on the channel name. See help channels.

group

Type: string

For control channels with fill_by set to group: Set this setting to the name of
the group containing the contacts you want to see in this channel.

handle_unknown

Type: string

By default, messages from people who aren't in your contact list are shown in a
control channel (add_channel) instead of as a private message (add_private)

If you prefer to ignore messages from people you don't know, you can set this
one to "ignore". "add_private" and "add_channel" are like add, but you can use
them to make messages from unknown buddies appear in the channel instead of a
query window.

This can be set to individual accounts, which is useful to only ignore accounts
that are targeted by spammers, without missing messages from legitimate unknown
contacts in others. Note that incoming add requests are visible regardless of
this setting.

ignore_auth_requests

Type: boolean

Only supported by OSCAR so far, you can use this setting to ignore ICQ
authorization requests, which are hardly used for legitimate (i.e. non-spam)
reasons anymore.

mail_notifications

Type: boolean

Some protocols can notify via IM about new e-mail. If you want these
notifications, you can enable this setting.

mail_notifications_handle

Type: string

This setting is available for protocols with e-mail notification functionality.
If set to empty all e-mail notifications will go to control channel, if set to
some string - this will be the name of a contact who will PRIVMSG you on every
new notification.

message_length

Type: integer

Since Twitter rejects messages longer than 280 characters, BitlBee can count
message length and emit a warning instead of waiting for Twitter to reject it.

You can change this limit here but this won't disable length checks on
Twitter's side. You can also set it to 0 to disable the check in case you
believe BitlBee doesn't count the characters correctly.

stream

Type: boolean

For Twitter accounts, this setting enables use of the Streaming API. This
automatically gives you incoming DMs as well.

For other Twitter-like services, this setting is not supported.

target_url_length

Type: integer

Twitter replaces every URL with fixed-length t.co URLs. BitlBee is able to take
t.co urls into account when calculating message_length replacing the actual URL
length with target_url_length. Setting target_url_length to 0 disables this
feature.

This setting is disabled for identica accounts by default and will not affect
anything other than message safety checks (i.e. Twitter will still replace your
URLs with t.co links, even if that makes them longer).

mode

Type: string

By default, BitlBee will create a separate channel (called #
twitter_yourusername) for all your Twitter contacts/messages.

If you don't want an extra channel, you can set this setting to "one"
(everything will come from one nick, twitter_yourusername), or to "many"
(individual nicks for everyone).

With modes "chat" and "many", you can send direct messages by /msg'ing your
contacts directly. Incoming DMs are only fetched if the "stream" setting is on
(default).

With modes "many" and "one", you can post tweets by /msg'ing the
twitter_yourusername contact. In mode "chat", messages posted in the Twitter
channel will also be posted as tweets.

mobile_is_away

Type: boolean

Most IM networks have a mobile version of their client. People who use these
may not be paying that much attention to messages coming in. By enabling this
setting, people using mobile clients will always be shown as away.

nick

Type: string

You can use this option to set your nickname in a chatroom. You won't see this
nickname yourself, but other people in the room will. By default, BitlBee will
use your username as the chatroom nickname.

nick_format

Type: string

By default, BitlBee tries to derive sensible nicknames for all your contacts
from their IM handles. In some cases, IM modules (ICQ for example) will provide
a nickname suggestion, which will then be used instead. This setting lets you
change this behaviour.

Whenever this setting is set for an account, it will be used for all its
contacts. If it's not set, the global value will be used.

It's easier to describe this setting using a few examples:

FB-%full_name will make all nicknames start with "FB-", followed by the
person's full name. For example you can set this format for your Facebook
account so all Facebook contacts are clearly marked.

[%group]%-@nick will make all nicknames start with the group the contact is in
between square brackets, followed by the nickname suggestions from the IM
module if available, or otherwise the handle. Because of the "-@" part,
everything from the first @ will be stripped.

See help nick_format for more information.

nick_source

Type: string

By default, BitlBee generates a nickname for every contact by taking its handle
and chopping off everything after the @. In some cases, this gives very
inconvenient nicknames. Some servers use internal identifiers, which are often
just numbers.

With this setting set to full_name, the person's full name is used to generate
a nickname. Or if you don't like long nicknames, set this setting to first_name
instead and only the first word will be used. Note that the full name can be
full of non-ASCII characters which will be stripped off.

nick_lowercase

Type: boolean

If enabled, all nicknames are turned into lower case.

See also the nick_underscores setting. This setting was previously known as 
lcnicks.

nick_underscores

Type: boolean

If enabled, spaces in nicknames are turned into underscores instead of being
stripped.

See also the nick_lowercase setting.

oauth

Type: boolean

This enables OAuth authentication for an IM account; right now the Twitter
(working for Twitter only) and Jabber (for Google Talk only) module support it.

With OAuth enabled, you shouldn't tell BitlBee your account password. Just add
your account with a bogus password and type account on. BitlBee will then give
you a URL to authenticate with the service. If this succeeds, you will get a
PIN code which you can give back to BitlBee to finish the process.

The resulting access token will be saved permanently, so you have to do this
only once. If for any reason you want to/have to reauthenticate, you can use 
account set to reset the account password to something random.

anonymous

Type: boolean

This enables SASL ANONYMOUS login for jabber accounts, as specified by
XEP-0175.

With this setting enabled, if the server allows this method, a password isn't
required and the username part of the JID is ignored (you can use
anonymous@jabber.example.com). Servers will usually assign you a random numeric
username instead.

ops

Type: string

Some people prefer themself and root to have operator status in &bitlbee, other
people don't. You can change these states using this setting.

The value "both" means both user and root get ops. "root" means, well, just
root. "user" means just the user. "none" means nobody will get operator status.

otr_policy

Type: string

This setting controls the policy for establishing Off-the-Record connections.

A value of "never" effectively disables the OTR subsystem. In "opportunistic"
mode, a magic whitespace pattern will be appended to the first message sent to
any user. If the peer is also running opportunistic OTR, an encrypted
connection will be set up automatically. On "manual", on the other hand, OTR
connections must be established explicitly using otr connect. Finally, the
setting "always" enforces encrypted communication by causing BitlBee to refuse
to send any cleartext messages at all.

password

Type: string

Use this global setting to change your "NickServ" password.

This setting is also available for all IM accounts to change the password
BitlBee uses to connect to the service.

Note that BitlBee will always say this setting is empty. This doesn't mean
there is no password, it just means that, for security reasons, BitlBee stores
passwords somewhere else so they can't just be retrieved in plain text.

paste_buffer

Type: boolean

By default, when you send a message to someone, BitlBee forwards this message
to the user immediately. When you paste a large number of lines, the lines will
be sent in separate messages, which might not be very nice to read. If you
enable this setting, BitlBee will buffer your messages and wait for more data.

Using the paste_buffer_delay setting you can specify the number of seconds
BitlBee should wait for more data before the complete message is sent.

Please note that if you remove a buddy from your list (or if the connection to
that user drops) and there's still data in the buffer, this data will be lost.
BitlBee will not try to send the message to the user in those cases.

paste_buffer_delay

Type: integer

Tell BitlBee after how many (mili)seconds a buffered message should be sent.
Values greater than 5 will be interpreted as miliseconds, 5 and lower as
seconds.

See also the paste_buffer setting.

port

Type: integer

Currently only available for Jabber connections. Specifies the port number to
connect to. Usually this should be set to 5222, or 5223 for SSL-connections.

priority

Type: integer

Can be set for Jabber connections. When connecting to one account from multiple
places, this priority value will help the server to determine where to deliver
incoming messages (that aren't addressed to a specific resource already).

According to RFC 3921 servers will always deliver messages to the server with
the highest priority value. Mmessages will not be delivered to resources with a
negative priority setting (and should be saved as an off-line message if all
available resources have a negative priority value).

private

Type: boolean

If value is true, messages from users will appear in separate query windows. If
false, messages from users will appear in a control channel.

This setting is remembered (during one session) per-user, this setting only
changes the default state. This option takes effect as soon as you reconnect.

protocol

Type: string

For control channels with fill_by set to protocol: Set this setting to the name
of the IM protocol of all contacts you want to see in this channel.

proxy

Type: string

A list of file transfer proxies for jabber. This isn't the connection proxy.
Sorry, look in bitlbee.conf for those.

It's a semicolon-separated list of items that can be either JID,HOST,PORT or
two special values, <local> (to try a direct connection first) and <auto> (to
try to discover a proxy). For example, "<local>;
proxy.somewhere.org,123.123.123.123,7777".

The address should point to a SOCKS5 bytestreams server, usually provided by
jabber servers. This is only used for sending files. Note that the host address
might not match what DNS tells you, and the port isn't always the same.

The correct way to get a socks proxy host/port is a mystery, and the file
transfer might fail anyway. Maybe just try using dropbox instead.

query_order

Type: string

This changes the order in which the questions from root (usually authorization
requests from buddies) should be answered. When set to lifo, BitlBee
immediately displays all new questions and they should be answered in reverse
order. When this is set to fifo, BitlBee displays the first question which
comes in and caches all the others until you answer the first one.

Although the fifo setting might sound more logical (and used to be the default
behaviour in older BitlBee versions), it turned out not to be very convenient
for many users when they missed the first question (and never received the next
ones).

resource

Type: string

Can be set for Jabber connections. You can use this to connect to your Jabber
account from multiple clients at once, with every client using a different
resource string.

resource_select

Type: string

Because the IRC interface makes it pretty hard to specify the resource to talk
to (when a buddy is online through different resources), this setting was
added.

Normally it's set to priority which means messages will always be delivered to
the buddy's resource with the highest priority. If the setting is set to 
activity, messages will be delivered to the resource that was last used to send
you a message (or the resource that most recently connected).

root_nick

Type: string

Normally the "bot" that takes all your BitlBee commands is called "root". If
you don't like this name, you can rename it to anything else using the rename
command, or by changing this setting.

save_on_quit

Type: boolean

If enabled causes BitlBee to save all current settings and account details when
user disconnects. This is enabled by default, and these days there's not really
a reason to have it disabled anymore.

self_messages

Type: string

Change this setting to customize how (or whether) to show self-messages, which
are messages sent by yourself from other locations (for example, mobile
clients), for IM protocols that support it.

When this is set to "true", it will send those messages in the "standard" way,
which is a PRIVMSG with source and target fields swapped.

Since this isn't very well supported by some clients (the messages might appear
in the wrong window), you can set it to "prefix" to show them as a normal
message prefixed with "-> ", or use "prefix_notice" which is the same thing but
with a NOTICE instead.

You can also set it to "false" to disable these messages completely.

This setting only applies to private messages. Self messages in groupchats are
always shown, since they haven't caused issues in any clients so far.

More information: https://wiki.bitlbee.org/SelfMessages

server

Type: string

Can be set for Jabber- and OSCAR-connections. For Jabber, you might have to set
this if the servername isn't equal to the part after the @ in the Jabber
handle. For OSCAR this shouldn't be necessary anymore in recent BitlBee
versions.

show_ids

Type: boolean

Enable this setting on a Twitter account to have BitlBee include a two-digit
"id" in front of every message. This id can then be used for replies and
retweets.

show_offline

Type: boolean

If enabled causes BitlBee to also show offline users in Channel. Online-users
will get op, away-users voice and offline users none of both. This option takes
effect as soon as you reconnect.

Replaced with the show_users setting. See help show_users.

show_users

Type: string

Comma-separated list of statuses of users you want in the channel, and any
modes they should have. The following statuses are currently recognised: online
(i.e. available, not away), special (specific to the protocol), away, and 
offline.

If a status is followed by a valid channel mode character (@, % or +), it will
be given to users with that status. For example, online@,special%,away+,offline
will show all users in the channel. Online people will have +o, people who are
online but away will have +v, and others will have no special modes.

simulate_netsplit

Type: boolean

Some IRC clients parse quit messages sent by the IRC server to see if someone
really left or just disappeared because of a netsplit. By default, BitlBee
tries to simulate netsplit-like quit messages to keep the control channels
window clean. If you don't like this (or if your IRC client doesn't support
this) you can disable this setting.

ssl

Type: boolean

Currently only available for Jabber connections. Set this to true if you want
to connect to the server on an SSL-enabled port (usually 5223).

Please note that this method of establishing a secure connection to the server
has long been deprecated. You are encouraged to look at the tls setting
instead.

status

Type: string

Most IM protocols support status messages, similar to away messages. They can
be used to indicate things like your location or activity, without showing up
as away/busy.

This setting can be used to set such a message. It will be available as a
per-account setting for protocols that support it, and also as a global setting
(which will then automatically be used for all protocols that support it).

Away states set using /away or the away setting will override this setting. To
clear the setting, use set -del status.

strip_html

Type: boolean

Determines what BitlBee should do with HTML in messages. Normally this is
turned on and HTML will be stripped from messages, if BitlBee thinks there is
HTML.

If BitlBee fails to detect this sometimes (most likely in AIM messages over an
ICQ connection), you can set this setting to always, but this might sometimes
accidentally strip non-HTML things too.

strip_newlines

Type: boolean

Turn on this flag to prevent tweets from spanning over multiple lines.

show_old_mentions

Type: integer

This setting specifies the number of old mentions to fetch on connection. Must
be less or equal to 200. Setting it to 0 disables this feature.

tag

Type: string

For every account you have, you can set a tag you can use to uniquely identify
that account. This tag can be used instead of the account number (or protocol
name, or part of the screenname) when using commands like account, add, etc.
You can't have two accounts with one and the same account tag.

By default, it will be set to the name of the IM protocol. Once you add a
second account on an IM network, a numeric suffix will be added, starting with
2.

timezone

Type: string

If message timestamps are available for offline messages or chatroom backlogs,
BitlBee will display them as part of the message. By default it will use the
local timezone. If you're not in the same timezone as the BitlBee server, you
can adjust the timestamps using this setting.

Values local/utc/gmt should be self-explanatory. timezone-spec is a time offset
in hours:minutes, for example: -8 for Pacific Standard Time, +2 for Central
European Summer Time, +5:30 for Indian Standard Time.

tls

Type: boolean

By default (with this setting enabled), BitlBee will require Jabber servers to
offer encryption via StartTLS and refuse to connect if they don't.

If you set this to "try", BitlBee will use StartTLS only if it's offered. With
the setting disabled, StartTLS support will be ignored and avoided entirely.

tls_verify

Type: boolean

Currently only available for Jabber connections in combination with the tls
setting. Set this to true if you want BitlBee to strictly verify the server's
certificate against a list of trusted certificate authorities.

The hostname used in the certificate verification is the value of the server
setting if the latter is nonempty and the domain of the username else. If you
get a hostname related error when connecting to Google Talk with a username
from the gmail.com or googlemail.com domain, please try to empty the server
setting.

Please note that no certificate verification is performed when the ssl setting
is used, or when the CAfile setting in bitlbee.conf is not set.

to_char

Type: string

It's customary that messages meant for one specific person on an IRC channel
are prepended by his/her alias followed by a colon ':'. BitlBee does this by
default. If you prefer a different character, you can set it using set to_char.

Please note that this setting is only used for incoming messages. For outgoing
messages you can use ':' (colon) or ',' to separate the destination nick from
the message, and this is not configurable.

translate_to_nicks

Type: boolean

IRC's nickname namespace is quite limited compared to most IM protocols. Not
any non-ASCII characters are allowed, in fact nicknames have to be mostly
alpha-numeric. Also, BitlBee has to add underscores sometimes to avoid nickname
collisions.

While normally the BitlBee user is the only one seeing these names, they may be
exposed to other chatroom participants for example when addressing someone in
the channel (with or without tab completion). By default BitlBee will translate
these stripped nicknames back to the original nick. If you don't want this,
disable this setting.

type

Type: string

BitlBee supports two kinds of channels: control channels (usually with a name
starting with a &) and chatroom channels (name usually starts with a #).

See help channels for a full description of channel types in BitlBee.

typing_notice

Type: boolean

Sends you a /notice when a user starts typing a message (if supported by the IM
protocol and the user's client). To use this, you most likely want to use a
script in your IRC client to show this information in a more sensible way.

user_agent

Type: string

Some Jabber servers are configured to only allow a few (or even just one) kinds
of XMPP clients to connect to them.

You can change this setting to make BitlBee present itself as a different
client, so that you can still connect to these servers.

utf8_nicks

Type: boolean

Officially, IRC nicknames are restricted to ASCII. Recently some clients and
servers started supporting Unicode nicknames though. To enable UTF-8 nickname
support (contacts only) in BitlBee, enable this setting.

To avoid confusing old clients, this setting is disabled by default. Be careful
when you try it, and be prepared to be locked out of your BitlBee in case your
client interacts poorly with UTF-8 nicknames.

web_aware

Type: string

ICQ allows people to see if you're on-line via a CGI-script. (http://
status.icq.com/online.gif?icq=UIN) This can be nice to put on your website, but
it seems that spammers also use it to see if you're online without having to
add you to their contact list. So to prevent ICQ spamming, recent versions of
BitlBee disable this feature by default.

Unless you really intend to use this feature somewhere (on forums or maybe a
website), it's probably better to keep this setting disabled.

xmlconsole

Type: boolean

The Jabber module allows you to add a buddy xmlconsole to your contact list,
which will then show you the raw XMPP stream between you and the server. You
can also send XMPP packets to this buddy, which will then be sent to the
server.

If you want to enable this XML console permanently (and at login time already),
you can set this setting.

rename - Rename (renick) a buddy

Syntax: 

rename <oldnick> <newnick>
rename -del <nick>

Renick a user in your buddy list. Very useful, in fact just very important, if
you got a lot of people with stupid account names (or hard ICQ numbers).

rename -del can be used to erase your manually set nickname for a contact and
reset it to what was automatically generated.

< itsme> rename itsme_ you
 * itsme_ is now known as you

yes - Accept a request

Syntax: 

yes [<number>]

Sometimes an IM-module might want to ask you a question. (Accept this user as
your buddy or not?) To accept a question, use the yes command.

By default, this answers the first unanswered question. You can also specify a
different question as an argument. You can use the qlist command for a list of
questions.

no - Deny a request

Syntax: 

no [<number>]

Sometimes an IM-module might want to ask you a question. (Accept this user as
your buddy or not?) To reject a question, use the no command.

By default, this answers the first unanswered question. You can also specify a
different question as an argument. You can use the qlist command for a list of
questions.

plugins - List all the external plugins and protocols

Syntax: 

plugins [info <name>]

This gives you a list of all the external plugins and protocols.

Use the info subcommand to get more details about a plugin.

qlist - List all the unanswered questions root asked

Syntax: 

qlist

This gives you a list of all the unanswered questions from root.

register - Register yourself

Syntax: 

register [<password>]

BitlBee can save your settings so you won't have to enter all your IM passwords
every time you log in. If you want the Bee to save your settings, use the 
register command.

Please do pick a secure password, don't just use your nick as your password.
Please note that IRC is not an encrypted protocol, so the passwords still go
over the network in plaintext. Evil people with evil sniffers will read it all.
(So don't use your root password.. ;-)

To identify yourself in later sessions, you can use the identify command. To
change your password later, you can use the set password command.

You can omit the password and enter it separately using the IRC /OPER command.
This lets you enter your password without your IRC client echoing it on screen
or recording it in logs.

identify - Identify yourself with your password

Syntax: 

identify [-noload|-force] [<password>]

BitlBee saves all your settings (contacts, accounts, passwords) on-server. To
prevent other users from just logging in as you and getting this information,
you'll have to identify yourself with your password. You can register this
password using the register command.

Once you're registered, you can change your password using set password
<password>.

The -noload and -force flags can be used to identify when you're logged into
some IM accounts already. -force will let you identify yourself and load all
saved accounts (and keep the accounts you're logged into already).

-noload will log you in but not load any accounts and settings saved under your
current nickname. These will be overwritten once you save your settings (i.e.
when you disconnect).

You can omit the password and enter it separately using the IRC /OPER command.
This lets you enter your password without your IRC client echoing it on screen
or recording it in logs.

drop - Drop your account

Syntax: 

drop <password>

Drop your BitlBee registration. Your account files will be removed and your
password will be forgotten. For obvious security reasons, you have to specify
your NickServ password to make this command work.

blist - List all the buddies in the current channel

Syntax: 

blist [all|online|offline|away] [<pattern>]

You can get a more readable buddy list using the blist command. If you want a
complete list (including the offline users) you can use the all argument.

A perl-compatible regular expression can be supplied as pattern to filter the
results (case-insensitive).

group - Contact group management

Syntax: 

group [ list | info <group> ]

The group list command shows a list of all groups defined so far.

The group info command shows a list of all members of a the group <group>.

If you want to move contacts between groups, you can use the IRC /invite
command. Also, if you use the add command in a control channel configured to
show just one group, the new contact will automatically be added to that group.

transfer - Monitor, cancel, or reject file transfers

Syntax: 

transfer [<cancel> id | <reject>]

Without parameters the currently pending file transfers and their status will
be listed. Available actions are cancel and reject. See help transfer <action>
for more information.

transfer cancel - Cancels the file transfer with the given id

Syntax: 

transfer <cancel> id

Cancels the file transfer with the given id

< ulim> transfer cancel 1
< root> Canceling file transfer for test

transfer reject - Rejects all incoming transfers

Syntax: 

transfer <reject>

Rejects all incoming (not already transferring) file transfers. Since you
probably have only one incoming transfer at a time, no id is necessary. Or is
it?

< ulim> transfer reject

Chapter 6. Twitter

Twitter allows you to use a set of commands in the Twitter channel/query. See 
help set commands.

Anything that doesn't look like a command will be treated as a new message.
Watch out for typos, or to avoid this behaviour, set the commands setting to 
strict, which causes the post command to become mandatory for posting. See help
set commands.

Here is a short description of the commands available:

undo [<#id>]

    Delete your last message (or one with the given ID)

rt <screenname|#id>

    Retweet someone's last message (or one with the given ID)

reply <screenname|#id>

    Reply to a message (with a reply-to reference)

rawreply <screenname|#id>

    Reply to a message (with no reply-to reference)

report <screenname|#id>

    Report the given user (or the user who posted the message with the given
    ID) for sending spam. This will also block them.

follow <screenname>

    Start following a person

unfollow <screenname>

    Stop following a person

favourite <screenname|#id>

    Favourite the given user's most recent message, or the given ID.

post <message>

    Post a message

url <screenname|#id>

    Show URL for a message to open it in a browser (and see context)

Chapter 7. Misc Stuff

Table of Contents

Groupchats
Creating groupchats
Away states
Changing your nickname
Dealing with channels
Creating a channel
Configuring a control channel
Nickname formatting
Nickname formatting - modifiers
Identifying to your BitlBee account
New stuff in BitlBee 1.2.6
New stuff in BitlBee 1.3dev
New stuff in BitlBee 3.0
New stuff in BitlBee 1.3dev (details)
New stuff in BitlBee 3.0.5
New stuff in BitlBee 3.2
New stuff in BitlBee 3.2.2
New stuff in BitlBee 3.4
New stuff in BitlBee 3.4.1
New stuff in BitlBee 3.4.2
New stuff in BitlBee 3.5

Groupchats

BitlBee now supports groupchats on all IM networks. This text will try to
explain you how they work.

As soon as someone invites you into a groupchat, you will be force-joined or
invited (depending on the protocol) into a new virtual channel with all the
people in there. You can leave the channel at any time, just like you would
close the window in regular IM clients. Please note that root-commands don't
work in groupchat channels, they only work in control channels (or to root
directly).

Of course you can also create your own groupchats. Type help groupchats2 to see
how.

Creating groupchats

To open a groupchat, use the chat with command. For example, to start a
groupchat with the person lisa_msn in it, just type chat with lisa_msn. BitlBee
will create a new virtual channel with root, you and lisa_msn in it.

Then, just use the ordinary IRC /invite command to invite more people. Please
do keep in mind that all the people have to be on the same network and contact
list! You can't invite Yahoo! buddies into an MSN groupchat.

Some protocols (like Jabber) also support named groupchats. BitlBee supports
these too. You can use the chat add command to join them. See help chat add for
more information.

If you don't know the name of a named groupchat, you can try the chat list
command to get a list of chatrooms from a server. See help chat list for usage
instructions.

Away states

To mark yourself as away, you can just use the /away command in your IRC
client. BitlBee supports most away-states supported by the protocols.

Away states have different names across different protocols. BitlBee will try
to pick the best available option for every connection:

Away
NA
Busy, DND
BRB
Phone
Lunch, Food
Invisible, Hidden

So /away Food will set your state to "Out to lunch" on your MSN connection, and
for most other connections the default, "Away" will be chosen.

You can also add more information to your away message. Setting it to "Busy -
Fixing BitlBee bugs" will set your IM-away-states to Busy, but your away
message will be more descriptive for people on IRC. Most IM-protocols can also
show this additional information to your buddies.

If you want to set an away state for only one of your connections, you can use
the per-account away setting. See help set away.

Changing your nickname

BitlBee now allows you to change your nickname. So far this was not possible
because it made managing saved accounts more complicated.

The restriction no longer exists now though. When you change your nick (just
using the /nick command), your logged-in status will be reset, which means any
changes made to your settings/accounts will not be saved.

To restore your logged-in status, you need to either use the register command
to create an account under the new nickname, or use identify -noload to
re-identify yourself under the new nickname. The -noload flag tells the command
to verify your password and log you in, but not load any new settings. See help
identify for more information.

Dealing with channels

You can have as many channels in BitlBee as you want. You maintain your channel
list using the channel command. You can create new channels by just joining
them, like on regular IRC networks.

You can create two kinds of channels. Control channels, and groupchat channels.
By default, BitlBee will set up new channels as control channels if their name
starts with an &, and as chat channels if it starts with a #.

Control channels are where you see your contacts. By default, you will have one
control channel called &bitlbee, containing all your contacts. But you can
create more, if you want, and divide your contact list across several channels.

For example, you can have one channel with all contacts from your jabber
account in it. Or all contacts from the group called "Work".

Type help channels2 to read more.

Creating a channel

When you create a new channel, BitlBee will try to guess from its name which
contacts to fill it with. For example, if the channel name (excluding the &)
matches the name of a group in which you have one or more contacts, the channel
will contain all those contacts.

Any valid account ID (so a number, protocol name or part of screenname, as long
as it's unique) can also be used as a channel name. So if you just join &
jabber, it will contain all your jabber contacts. And if you have a Facebook
account set up, you can see its contacts by just joining &facebook.

To start a simple group chat, you simply join a channel which a name starting
with #, and invite people into it. All people you invite have to be on the same
IM network and contact list.

If you want to configure your own channels, you can use the channel set
command. See help channels3 for more information.

Configuring a control channel

The most important setting for a control channel is fill_by. It tells BitlBee
what information should be used to decide if someone should be shown in the
channel or not. After setting this setting to, for example, account, you also
have to set the account setting. Example:

< wilmer> chan &wlm set fill_by account
< root> fill_by = `account'
< wilmer> chan &wlm set account msn
< root> account = `msn'

Also, each channel has a show_users setting which lets you choose, for example,
if you want to see only online contacts in a channel, or also/just offline
contacts. Example:

< wilmer> chan &offline set show_users offline
< root> show_users = `offline'

See the help information for all these settings for more information.

Nickname formatting

The nick_format setting can be set globally using the set command, or per
account using account set (so that you can set a per-account suffix/prefix or
have nicknames generated from full names for certain accounts).

The setting is basically some kind of format string. It can contain normal text
that will be copied to the nick, combined with several variables:

%nick

    Nickname suggested for this contact by the IM protocol, or just the handle
    if no nickname was suggested.

%handle

    The handle/screenname of the contact.

%full_name

    The full name of the contact.

%first_name

    The first name of the contact (the full name up to the first space).

%group

    The name of the group this contact is a member of

%account

    Account tag of the contact

Invalid characters (like spaces) will always be stripped. Depending on your
locale settings, characters with accents will be converted to ASCII.

See help nick_format2 for some more information.

Nickname formatting - modifiers

Two modifiers are currently available: You can include only the first few
characters of a variable by putting a number right after the %. For example, 
[%3group]%-@nick will include only the first three characters of the group name
in the nick.

Also, you can truncate variables from a certain character using the - modifier.
For example, you may want to leave out everything after the @. %-@handle will
expand to everything in the handle up to the first @.

Identifying to your BitlBee account

There are several methods to identify (log in) to your registered BitlBee
account. All of these are equivalent:

The 'identify' command

    sent to &bitlbee or root. See help identify for details.

/msg nickserv identify

    Same as above, but sent to NickServ. Useful with some auto-identify
    scripts.

/nickserv or /ns

    Same as above, but using the command aliases to NickServ.

Server password

    A field in the server connection settings of your irc client.

SASL PLAIN

    A newer method, good choice if your client supports it. (Note: "SASL" is 
    not related to "SSL")

To configure your client to auto-identify, the last two methods are
recommended. SASL if you have it, but server password is often the easiest.

Note: If you changed bitlbee.conf to have AuthMode = Closed, server password
will be used for that instead. If you have never heard of that setting before,
you can ignore it and just use it.

New stuff in BitlBee 1.2.6

Twitter support. See help account add twitter.

New stuff in BitlBee 1.3dev

Support for multiple configurable control channels, each with a subset of your
contact list. See help channels for more information.

File transfer support for some protocols (more if you use libpurple). Just /DCC
SEND stuff. Incoming files also become DCC transfers.

Only if you run your own BitlBee instance: You can build a BitlBee that uses
libpurple for connecting to IM networks instead of its own code, adding support
for some of the more obscure IM protocols and features.

Many more things, briefly described in help news1.3.

New stuff in BitlBee 3.0

BitlBee can be compiled with support for OTR message encryption (not available
on public servers since encryption should be end-to-end).

The MSN module was heavily updated to support features added to MSN Messenger
over the recent years. You can now see/set status messages, send offline
messages, and many strange issues caused by Microsoft breaking old-protocol
compatibility should now be resolved.

Twitter extended: IRC-style replies ("BitlBee:") now get converted to proper
Twitter replies ("@BitlBee") and get a reference to the original message (see 
help set auto_reply_timeout). Retweets and some other stuff is also supported
now (see help set commands).

New stuff in BitlBee 1.3dev (details)

Most of the core of BitlBee was rewritten since the last release. This entry
should sum up the majority of the changes.

First of all, you can now have as many control channels as you want. Or you can
have none, it's finally possible to leave &bitlbee and still talk to all your
contacts. Or you can have a &work with all your work-related contacts, or a &
msn with all your MSN Messenger contacts. See help channels for more
information about this.

Also, you can change how nicknames are generated for your contacts. Like
automatically adding a [fb] tag to the nicks of all your Facebook contacts. See
help nick_format.

When you're already connected to a BitlBee server and you connect from
elsewhere, you can take over the old session.

Instead of account numbers, accounts now also get tags. These are automatically
generated but can be changed (help set tag). You can now use them instead of
accounts numbers. (Example: acc gtalk on)

Last of all: You can finally change your nickname and shorten root commands
(try acc li instead of account list).

New stuff in BitlBee 3.0.5

OAuth2 support in Jabber module (see help set oauth). For better password
security when using Google Talk, Facebook XMPP, or for using MSN Messenger via
XMPP. Especially recommended on public servers.

Starting quick groupchats on Jabber is easier now (using the chat with command,
or /join + /invite).

SSL certificate verification. Works only with GnuTLS, and needs to be enabled
by updating your bitlbee.conf.

New stuff in BitlBee 3.2

Upgradeed to Twitter API version 1.1. This is necessary because previous
versions will stop working from March 2013. At the same time, BitlBee now
supports the streaming API and incoming direct messages.

New stuff in BitlBee 3.2.2

The OTR plugin now uses libotr 4.0 (AKA libotr5 in debian based distros)

A few minor fixes/additions, like being able to use /oper to change passwords
with account tag set -del password

New stuff in BitlBee 3.4

Lots of bugfixes! Important: Recompiling third party plugins such as
bitlbee-steam or bitlbee-facebook is required!

twitter: Filter channels - Search by keyword/hashtag or a list of users. See
the HowtoTwitter wiki page for more details!
twitter: Add "rawreply" command, like reply but bitlbee won't add @mention.
Also add "favorite" / "fav" command aliases.
twitter: Start stream from last tweet on connect/reconnect to avoid showing
duplicate tweets
jabber: Fixed crashes with file transfers (they still fail at bypassing NATs,
but at least they fail without crashing)
purple: Improved support for gadugadu, whatsapp and telegram.
msn: disabled in this release since the protocol we used (MSNP18) stopped
working.
Add a 'pattern' parameter to the blist command, to filter it.
The utf8_nicks setting should be more reliable now.

See the full changelog for details!

New stuff in BitlBee 3.4.1

msn: Upgraded protocol version to MSNP21, works again
jabber: Add "hipchat" protocol, for smoother login. Takes the same username as
the official client. Note that unlike the 'hip-cat' branch, this doesn't
preload channels. See the HowtoHipchat wiki page for details
jabber: Gmail notifications support
twitter: Show quoted tweets inline. Added "url" command, can be used to quote
tweets.

New stuff in BitlBee 3.4.2

irc: Self-messages (messages sent by yourself from other IM clients), see help
set self_messages. IRCv3.1 support and part of 3.2. Many important groupchat
related bugfixes.
jabber: Carbons, see help set carbons. Removed facebook XMPP, use
bitlbee-facebook instead. SASL ANONYMOUS login, see help set anonymous.
hipchat: Channels can now be added with chat add hipchat "channel name" which
tries to guess the channel JID.
skype: Show all messages as groupchats since we can't tell which ones are
private. This plugin is mostly-deprecated and mostly-broken, use the skypeweb
purple plugin or msn instead.
purple: Fix problems remembering SSL certificates as trusted. Groupchat related
fixes. Better error reporting. Fixed setting jabber away states.

And lots of bugfixes / stability improvements. See the full changelog for
details!

New stuff in BitlBee 3.5

New commands: chat list and plugins. New settings: nick_lowercase, 
nick_underscores
twitter: Hide muted tweets / no-retweets, add mute/unmute commands. Show full
version of extended tweets.
jabber:always_use_nicks channel setting. Don't send parts in a chat if someone
is still connected from other devices. Personal oauth token login for hipchat.
purple: Setting /topic. Fixes for SIPE and LINE. Don't ask for password if not
needed (hangouts, telegram). Set nicks to %full_name for a few protocols
(hangouts, funyahoo, icq, line)

See the full changelog for details!

New stuff in BitlBee 3.6

Removed msn, skype, yahoo, oscar. Use the skypeweb and icyque purple plugins.
Fix twitter (disable stream setting, set tweet length to 280)
Add server-time IRCv3 capability
Large performance improvements for large contact lists

See the full changelog for details!

