OneTeam desktop: unique features highlight

OneTeam for the desktop has unique and advanced features, like conversation threading, command line, history browsing, remote debugging, correction, and last but not least Jingle Relay Nodes.

OneTeam is a fully featured XMPP client for the desktop, developped by ProcessOne. We are currently running a private-alpha program, in order to provide early testing of this product, and for us to gather user feedback.

As this OneTeam private-alpha program comes to an end, we wanted to share with you some of the most interesting features of this XMPP client, mostly used inside ProcessOne today. In this article, you will be shown features such as:

  • Conversation threading
  • Command line
  • History browsing
  • Remote debugging
  • Correction
  • Jingle Relay Nodes


We hope you will like to read these lines. Enjoy!

Conversation threading

In a chat conversation, multiple parallel discussions may occur. In these screenshot, we will show how you can manage these.

Here is an example conversation with two questions and two answers:
Participants can click a message of a thread, and OneTeam will send a message to this thread.

You can hover any message in thread 1, and only highlight messages in thread 1:

The opposite is also true for thread 2:

Otherwise, you can display only thread 1 and filter out thread 2, by selecting the thread with the widget on top-right of the chat tab:

Of course it is also true with other threads, and you go can back to a full display of the chat:

The threading highlighting and filtering is very handy, especially in groupchats where this features really structures the conversations, and eliminates lots of misunderstanding. People love it, and would love to see it widely adopted. They really consider it a killer feature, and really consider it should be in 2010 in all XMPP clients.

Command line

Specially crafted for the power users, OneTeam features a command line interface, accessible in all chat input fields. These command start with the character “/”, like in IRC. Simply use the tab key to get a completion. Only “/” then tab will let you cycle through all the commands available in your context:

  • me: the very popular /me, as described in XEP-0245
  • join: in order to join a chatroom, the argument must be a valid MUC JID
  • invite: in the context of a MUC, to invite a person in the present MUC, the argument must be a valid person’s JID
  • inviteto: in the context of a one-to-one chat, to invite this person to a MUC
  • call: this speaks for itself, it launches a voice call
  • whois: shows someone’s vCard
  • remotedebug: we’ll see that special feature further in this article
  • topic: in the context of a MUC, changes the “topic”
  • leave: to get out of a groupchat
  • nick: in the context of a MUC, changes your nickname
  • kick and ban: in the context of a MUC, these last commands speak for themselves


This feature is already implemented in other advanced clients such as Gajim. This set of commands is just a sample, please ask for more in your wishlist.

History browsing

OneTeam shows neat features as the history is concerned.

First, a chat tab is never empty in OneTeam: it is always filled with the latest conversation messages with your contact (or contacts when in a groupchat).

Second, there is the arrow at the top of the chat tab, that will let you browse back in time with a simple click.
It is a simple move 10 messages before the first one displayed. It is very handy since it is the simplest and fastest way to browse your history. User feedback is surprisingly positive on this very useful feature.

These first two features are available inside the chat tab, which is very helpful since you don’t have to move away from it for most of you history needs.

Then third, there is the “History Manager” which is a complehensive search interface, that lets you perform keyword searches, but also searches in one-to-one chats and chatrooms.

We have learned that the history is still a chat, even if not live, thus it needs to be located in the chat tab. Most other clients offer history management, but in third party dialogs that are difficult to find or use. OneTeam offers the shortest path to most of the users needs.

Remote debugging

Since OneTeam is mostly written in XUL and JS, a remote debugging feature is not only possible, but also very useful.

Simply type /remotedebug in a one-to-one chat in order to allow this person to remote debug your client. He will receive a message with a button, such as this one:

From there, he will click the button, this will open a commands console on his desktop, but these commands will not be executed on his client, but on yours. You then receive his commands on your “Commands console”, and you can watch them.

Alternatively, you can open your “Commands console” and type remoteDebug.allow("JID")

Here is what it looks like if you are the person that has authorized debugging to another client. If I type account.myJID in my console, I get my own JID:
If I type the command account.myJID in a console for a remote user that has authorized me, I get his JID:
image Of course, you can type all other available JS commands.

This feature has been proven as a killer feature for our developpers, in order to investigate and reproduce scenarios in different, remote context.


We have implemented another power user feature: the ability to correct your own lastest sent message. Simply use the vi/vim syntax: s/wrongString/goodString/

For example, it you type:
OneTeam: I love it's design

You can then correct, by typing:

It will then be fixed, and displayed in all clients supporting the correction feature as:
OneTeam: I love its design

A short yellow highlight notice appears at the very moment the correction is sent. Beware, in order not to cheat and pollute other cients’ histories, you can correct only your lastest sent message, and only once.

We have not yet proposed a simple UI for this, but it may come soon. After we implemented this feature demoed at SeaBeyond event in December 2009, a protoXEP has been written that defines such an XMPP extension: we hope it will find its way to the Standards Tracks at the XSF. We will then re-implement that feature on top of this specification.

Jingle Relay Nodes

OneTeam has been the very first client implementation in the world of the Jingle Nodes, authored by Thiago Camargo. It has been demonstrated at FOSDEM 2009 in Brussels.

This brings simple network tricks to enable easy voice and video calls, but also file transfer, and virtually any binary stream.

OneTeam = IM 2.0

This little tour of the most interesting features of OneTeam is finished for now, but we plan even more interesting features, and enhancements to already implemented features.

As you can see OneTeam has many advanced and killer features, and as a whole this makes us believe, thanks to user feedback, that we have reached the beginning of what could be the “IM 2.0″ era.

In the next few days, we may have a surprise for you. Stay tuned!