Logo and LinkDocumentation

This is an overview on the JagoClient program.

JagoClient is

Features are:

The User Interface, Localization

First of all, all menu entries and dialogs are available in several languages. Most probably, Java will choose your locale automatically. If it does not, or if you want to use a different language, you can enter your locale string into the "Set Language" entry of the "Action" menu in the main window. If you cannot read this menu, select "Close and Use English". Then restart JagoClient.

If you want to translate JagoClient into your language, please contact me, unless you know enough details about Java localization.

In case, you want to fix a problem with the character display in your language, try to look for "font.properties" in the Java directory. Then copy the proper "font_XX.properties" for you locale to "font.properties" (save the file first!). Use the locale with the name XX for JagoClient. Of course, you will have to install all fonts, which are mentioned in the "font.properties" file and used by JagoClient.

JagoClient keeps the sizes and positions of the windows in a file named GO.CFG. It tries to write the file into the user directory. So you need write access to this directory. In multi-user environments, you should set up a local JagoClient directory for each user with an installation script. Then a script can start JagoClient from this directory. You need to pass the JagoClient directory as -home parameter to gain access to the help texts in this case.

Most systems allow cut and paste from text fields. In Windows, use CONTROL-C to copy text from anywhere to the clipboard and CONTROL-V to paste it into a JagoClient input field. The terminal window has a pop-up menu for cut and paste, which is accessible with the right mouse button.

The input fields, which send commands to the server, have a history. To reenter old commands press cursor up or down.

The Main Window

The startup window is the first window you see, when you start JagoClient the normal way. It displays the go servers, your partners and some buttons. Switch between the server panel and the partners panel with the corresponding buttons.

In this window you can either connect to a go server, or connect to a partner, or open a local board. If you wish to connect to a server, you will have to edit the connection parameters (see below) and press the Connect button. The same applies to partner games. To open a local board, choose the corresponding menu item.

To setup your server connection, press the Edit or Add button. A dialog appears, where you have to enter the following items:

Here are the internet names (addresses) and the ports of several servers.

igs.joyjoy.net 6969
nngs.cosmic.org 9696
wing.gr.jp 1515
lgs.hinet.net 9696

There may be more servers already configured in JagoClient. To setup your partner connection, press the Edit or Add button in the lower half. You will have to enter

Your partner needs to start the server with the corresponding menu item. To connect, press the Connect button in the lower half. Enjoy your chat and game! A started server waits for request on the specific port. Do not change the port from the default 6970. You can do so, but need an agreement with your partners, who want to connect with you.

You need to set you server port, but should use 6970. Furthermore, you should give your server a unique name, which describes yourself to others, maybe including your playing strength.

If you start a public server, JagoClient will publish this to all your partner connections, which have a state other than "silent". These servers will again push your server start to other connected servers, unless they have a state "private". A "local" state means that the partners may publish your server start to connected servers, but these may not further publish it. This is the meaning of the partners state flag.

Furthermore, any server which has received your server start will send back a list of open servers known to him. He will of obey the rules of privacy mentioned above.

Using this feature, you can build up a smaller or larger network of open servers.

The main window is also used to set some options. You can e.g.

These options are explained in the on-line help.

Connecting through a Telnet Session

Sometimes a firewall allows you to do telnet to a machine outside the firewall. If this is the case, you can use a telnet session to connect to the internet go servers.

To do this, enter port 23 (Telnet port), and the machines name in the "add connection" dialog. This allows you to connect to your machine via a primitive telnet session. You can then use a telnet command on that machine to connect to the internet go server, such as "telnet igs.nuri.net 6969". Local encoding is not available in this case.

The Terminal Window

This window pops up for each connection. You could open multiple connections, if this makes you happy. The windows displays a large text area for server output, a command line for the input and some buttons.

The internet Go servers are located on some remote machine. Each client or telnet connection talks to this server via an internet port. The conversation is asynchronous. So you can send commands while the server is sending data.

In this client, received output is printed to the terminal window after it has been filtered. You will not see moves of your opponent in this window. Rather these moves are sent directly to your game board. Some messages even display in a separate window to catch your attention. You can switch this behavior off with a menu entry, or you can filter certain messages or warnings from popping up.

On the other hand, all input goes to the server almost un-filtered. Some commands are filtered to avoid strange behavior. However, for these commands you should use the buttons in the terminal window or in the games window.

If you are playing a game, moves will be sent to the server from the game board directly. You can also talk to your opponent or kibitz from the game board. However, this can also be done by typing into the input line of the terminal window or the extra send line in the board window.

You can save all information in the output window to a file with the corresponding menu entry.

Finally, closing this window will abort your IGS or partner connection and close all playing boards.

Partner Connections

With this window, you are connected to a go partner somewhere in the world. To send chat to him, enter the text in the text field below the output window.

To start a game, press game and enter the parameters, then press the Request button. If your partner accepts the game, a board will show up and you can enter moves.

Playing the game is similar to playing over the IGS/NNGS. But timings are more accurate, since only the time is counted while you were thinking. Also, there is no sever to count the result for you. So you have to end the game with the corresponding menu item, remove all prisoners and use the menu entry to count the result. Again, the result will obey the Chinese rules. To convert to Japanese rules is easy. You will have to subtract the handicap stones minus one from the black score, and add an additional point to the white score, if black did the last move. Furthermore, some Seki positions are treated differently.

Note, that your partner has to agree upon the end of the game.

You can request and undo of your partner. This will undo your partner's move and your own and will add 30 seconds of extra time to your partner. The partner can decline the undo.

Board Window

This window contains the following elements:

The Menu

The file menu lets you empty the board, save it to disk or load a game form disk. Emptying and loading are enabled only for local boards. The same applies to changing the board size, which is done automatically for internet games. The format to store games is the Smart Go Format (SGF), which is also accepted by many other programs.

The settings menu lets you choose, if you play, who is to play, or if you do special things. You can set marks to empty places and stones, or set the letters a,b,c... You can even remove stones from the board. Setting up a handicap is done by placing black stones to the board and choosing the "White to play" button. There is also an option to remove all marks. Note that handicaps are automatically done from the IGS server, if white enters the handicap command.

Note, that while playing a game over the internet, the server controls the move. So your move is not valid until it is confirmed by the server. This only applies to the main variation. In side variations, you can do whatever you want.

The score command is used to finish the game. Refer to the help about playing a game for more information.

The Board

The board displays the current situation. Marks are displayed in blue and letters in yellow. The last move is emphasized by a white rectangle. Variations are marked by green dots (refer to the help about variations).

You may use a nice looking wooden board and computer created stones, which are anti-aliased to look smoother. If you do so, you will experience some delay, when changing the board size. But from my viewpoint it is worth the waiting.

Below the board, you see a label, displaying information about the expected action. It will also show, if you are in the main variation by a star (*), and if you are at the end of the main variation by a double star (**). Beside it, you see the coordinates under your mouse cursor.

The Buttons

The undo button works differently over the net and locally. Over the net and at the end of the main variation, it will send the undo command. This command is used to undo the move of the opponent and may only be used, if it is your turn. Elsewhere, this button removes the last move.

The direction buttons are used to go up and down in the variation. The variation buttons are used to switch between variations. The V button will go upwards to the first move of the current variation. The * button will go upwards to the main variation and the ** button will jump to the end of the main variation.

The send button is used on non-local board to send commands to the server quickly. Furthermore, it has abbreviations to talk to your opponent (via the say command) and to kibitz to the game.

Comment Window

This text area lets you add comments to your game. Some comments are added by the server automatically.

Note that comments are reformatted before display. They are stored in paragraphs separated by a single empty line.

Keyboard Shortcuts

You can use keyboard shortcuts to edit the board. You will find a list on-line. Note, that the board must have the keyboard focus to be able to read the keyboard. The board will get the keyboard focus, every time you click into or closely beside it.

The Game Tree

Games are stored as trees. Each node of the tree can have many children. Going down from the root node and taking the first child every time is the main variation. All other variations are considered side variations.

You create a variation to the current move by clicking to an alternative position for this move while holding down the SHIFT key. This kind of variation can be seen easily on the board by the green dots. You can switch to any of these variation by clicking on it and holding down the  CONTROL key.

The numbering starts with one in each variation.

On non-local boards, some actions may be blocked for the main variation, because it is assumed to be controlled by the server. Moves at the end of the main variations may be sent to the server instead of the board. The server sets the move later.

Playing Games

To play a game, you simply click on the current board position. If you are playing over the internet, the move will first be sent to the server until it appears on your board.

Setting the handicap is done in different ways for local and non-local games. In local games, you set the black stones and choose "White to play" to start the game. In internet games, you use the handicap command. Send

handicap 6

to the server for a six stone handicap. The server will set the handicap stones on your board.

You can use the pass command in local and non-local games.

During the game, you may create and inspect variations (see the section about variations). Use the ** button to get back to the current game position.

Finishing the game is different for local and non-local games again.

To finish a local game use the "Remove groups" menu item to remove prisoners and then the "Score" item to get the final score. This score will use the Chinese rules. To convert to Japanese rules is easy. You will have to subtract the handicap stones minus one from the black score, and add an additional point to the white score, if black did the last move. Furthermore, some seki positions are treated differently.

To finish a non-local game, pass. If your opponent passes two, you will get a message from the server. Choose "Remove groups" from the menu and remove all dead groups. These removals will be sent to the server. After removing all dead stones, choose "Score". This will score locally, and send the done command to the server. The server will do its own scoring and notify you of the result.

Teaching Games

You can use the teach command either to start a teaching game of your own, or to replay a stored game. Enter

help teach

to get information on this command. If you replay a saved game with this command, you can tell the server to send the next move with the second icon from the left (or send ">" on the command line). Both types of games will be adjourned, whenever you close the game window.

Using Sound

You can switch on sound, if you like. This will send a message to you, when

You have two sets of sound. The Beeps Only menu entry gives you shorter sounds.

There have been reports about problems with sound. I experience problems myself sometimes. Since the sound interface for applications is not documented, I cannot fix these problems.


You can use JagoClient to play against any program, which supports the Go Modem Protocol (GMP).

You use the GMP menu entry in the main window to play against a computer. Enter the path to the executable of the go playing program followed by other parameters the program needs. See below for details about GnuGo. Then try to establish a connection.

If the path contains blanks, you have to enclose it into double quotes "".

An example is the free GnuGo program. For detailed information, see the homepage of GnuGo development. You can find the sources to this project there, as well as other useful information. GnuGo is under the GPL. Please refer to the development site for details about this license.

On Windows, JagoClient installs with a version of GnuGo and you can start to play immediately.