Profanity - a simple console based XMPP chat client.
profanity [-vh] [-l level] [-a account]
Profanity is a simple lightweight console based XMPP chat
client. Its emphasis is on having a simple and configurable command driven
UI, see the homepage at:
<https://profanity-im.github.io>
- -v, --version
- Show version and build information.
- -h, --help
- Show help on command line arguments.
- -a, --account
ACCOUNT
- Auto connect to an account on startup, ACCOUNT must be an existing
account.
- -c, --config
- Use an alternative config file.
- -l, --log
LEVEL
- Set the logging level, LEVEL may be set to DEBUG, INFO (the
default), WARN or ERROR.
- -f, --logfile
- Specify a different logfile
- -t, --theme
THEME
- Specify which theme to use. THEME must be one of the themes
installed in $XDG_CONFIG_HOME/profanity/themes
- Tab,
Shift+Tab
- Tab completion next, previous. Works for commands, nicks and quotes (when
input line starts with >).
- ALT+1..Alt-0
or F1..F10
- Choose window 1..10.
- ALT+q..Alt-p
(in QWERTY layout)
- Choose window 11..20.
- ALT+LEFT
- Choose previous chat window.
- ALT+RIGHT
- Choose next chat window.
- PAGEUP
- Page the active window up.
- PAGEDOWN
- Page the active window down.
- ALT+PAGEUP
- Page the occupants or roster panel up.
- ALT+PAGEDOWN
- Page the occupants or roster panel down.
- ALT+a
- Jump to the next unread window.
- ALT+v
- Mark current window for later reading with an attention flag.
- ALT+m
- Switch between windows marked with the attention flag.
- ALT+c
- Run external editor (see profanity-editor(1)) for current input
line.
- CTRL+DOWN
- Store current input line in history but do not execute it.
Note: Profanity is using GNU Readline library to handle
input so default configuration file ~/.inputrc affects operation. In
addition to that $XDG_CONFIG_HOME/profanity/inputrc is read after all
default keybindigs are set so one can override or add settings there. For
reference, see Readline documentation: info readline "Command Line
Editing" "Readline Init File" "Readline Init File
Syntax" and the list of available Profanity commands in
inputwin.c. Standard Readline keybindings are supported, including
C-r for interactive history search and C-x C-r for reloading
inputrc without restart.
The user guide can be found at
<https://profanity-im.github.io/userguide.html>.
Profanity supports various kinds of encryption: OMEMO, OTR, PGP,
OX. You can only enable one of them per correspondent at a time.
- OMEMO
- OMEMO (/omemo) is defined in XEP-0384. It uses an implementation of the
Signal protocol for key management and to synchronize messages among
different clients. It works even when other clients are offline. And
offers Perfect Forward Secrecy and Plausible deniability. Servers need to
support PEP (XEP-0163). We implement the "siacs" version of
OMEMO. Version 0.3.0, which is currently the widest adopted option. OMEMO
is the only encryption option in Profanity that also supports encryption
for MUCs (XEP-0045) and file transfer via HTTP upload (XEP-0363).
- OTR
- OTR (/otr) is defined in XEP-0364. It uses a combination of the AES
symmetric-key algorithm, the Diffie–Hellman key exchange, and the
SHA-1 hash function. It offers deniable authentication and Perfect Forward
Secrecy. To initialize a session both clients need to be online at the
same time. A session is between two clients, so multiclient chats are not
working. Which is a feature not a bug. OTR does by design not work for
MUCs.
- OpenPGP
- OpenPGP (/pgp) is defined in XEP-0027. Is uses a public and secret key. It
is also known as Legacy OpenPGP and has been deprecated. It doesn't
provide protection against replay attacks. MUCs and file transfer via HTTP
upload are not specified and thus not supported.
- OX
- OX (/ox) is defined in XEP-0373 and XEP-0374. It's a more modern way to
use OpenPGP on XMPP and tries to fix the shortcomings of legacy XEP-0027.
Servers need to support PEP (XEP-0163). MUCs and file transfer via HTTP
upload are not specified and thus not supported.
- DETAILS
- For more details read the relevant XEPs and look at the overview at
<https://wiki.xmpp.org/web/XMPP_E2E_Security>
There is some XMPP specific terminology that might be unknown for
fresh users. We will try to describe them here since they are often
references in the help and man pages.
- JID
- Stands for Jabber ID. It refers to an XMPP address. Historically XMPP was
also known as Jabber. MAM Stands for Message Archive Management
(XEP-0313) and describes the ability to store messages on the server and
retrieve them later. MUC Stands for Mutli-User Chats (XEP-0045) and
are also called, groups, group chats, chatrooms or conferences.
Roster The roster is your contact list. By default displayed at the
right side on the console window. See RFC6121. XEP XMPP is aa
extendable protocol. There are core features and optional features
described in XMPP Extension Protocols, short XEPs.
Profanity itself has a lot of built-in help. Check the
/help command for more information. Type "/help help" for
information on how to use help itself. Profanity ships with one man page for
each built-in command, e.g. there is profanity-account(1) for
/account.
Configuration for Profanity is stored in
$XDG_CONFIG_HOME/profanity/profrc , details on commands for
configuring Profanity can be found at
<https://profanity-im.github.io/reference.html> or the respective
built-in help or man pages.
Bugs can either be reported by raising an issue at the Github
issue tracker:
<https://github.com/profanity-im/profanity/issues>
or to the mailing list at:
<https://lists.posteo.de/listinfo/profanity>
Copyright (C) 2012 - 2019 James Booth
<boothj5web@gmail.com>. Copyright (C) 2019 - 2023 Michael Vetter
<jubalh@iodoru.com>. License GPLv3+: GNU GPL version 3 or later
<https://www.gnu.org/licenses/gpl.html> This is free software; you are
free to change and redistribute it. There is NO WARRANTY, to the extent
permitted by law.
Profanity was created by James Booth
<boothj5web@gmail.com> with many contributions from others, see
the full list at:
<https://github.com/profanity-im/profanity/graphs/contributors>