Java GSS Command Line Interface Client (JGSSCLI)

JGSSCLI is a command line for GSS, and in particular the Pithos online storage service.

It is open source and released under the terms of the BSD licence.


  • JGSSCLI is portable; it runs wherever a Java Virtual Machine runs. GSS and Pithos are accesible through web browsers and plugins, but these offer only a Graphical User Interface (GUI). Sometimes a command line application is more appropriate. Command like users may appreciate the choice anyway, especially since WebDAV does not work on every platform.
  • JGSSCLI is predictable; it runs in the same way on any platform supporting Java. This is not necessarily true for other types of access to GSS. For instance, browsers may impose their own limits on certain operations, such as maximum file size for uploads. Indeed, we have noticed that really big files can only be uploaded by 64-bit browsers on 64-bit operating systems. JGSSCLI does not suffer from any such dependencies.
  • JGSSCLI can be used in scripts.
  • JGSSCLI is faster than web browser access as it does not require the client to login each and every time.

How to Use JGGCLI

  1. Download the latest version.
  2. Unzip the file
  3. Create a directory called
    in your home directory. In MS-Windows 7 this is something like
    In Mac OS X, Linux, etc., your designated home. # Create a file called <id> in the directory you just created. The contents of the file must be four lines as follows:
    Name:<Name Surname>
    Username:<Your full username in Pithos>
    Token:<Your current Pithos token>

    Your full username in Pithos is the one you see displayed when you login with your browser on the upper right part of the screen (below the logos). You can see your current token by clicking on menu
    and then
    Show Credentials

    Note that you only need to enter your token once. You can renew it later from inside JGSSCLI, using the corresponding command.
  4. That's it. You can now invoke it with
    java -jar jgsscli.jar <your command here> 


  • get <remote file> <local file> 

Gets (downloads) the remote file to the destination pointed to by the local file.

  •  ls <remote path> 

Lists the contents of the remote path indicated. If passed the -l switch, it will
produce a long output that will contain all the item's metadata in JSON format.

  •  mkdir <remote path> 

Makes a new directory at the remote path indicated. The remote path may contain a series
of directories, all of which will be created if needed (it works like mkdir -p in POSIX systems).

  •  put <local file> <remote file> 

Uploads a local file to the destination indicated.

  •  rm <remote file> 

Permanently deletes a remote file.

  •  token 

Refreshes the user token.

  •  trash <remote file> 

Moves a remote file to the trash.

  •  rfa <remote file> 

Makes a remote file readable by everybody. The file is then accessible by anybody with a web connection, by its URI listed among the other properties when ls -l is given.

  •  nrfa <remote file> 

Removes the "read for all" property for the file. That does not mean that the file is not readable by others (it may have been shared to specific users or groups).

  •  md <json spec> <remote file> 

Modify the file's properties as indicated by the JSON structure passed as argument. The contents of the JSON structure are as described in the GSS API.