How to Submit

There are two ways of submitting your code: using the submit form or the submit client.

The Submit Form

If you are logged in, you have a link Submit to a submit form that you can use to upload code. The form supports submitting multiple files, to do this you simply select all the files you want to submit in the file chooser dialog.

The Submit Client

Using the submit client requires a bit more setup work, but once this is done it is much more convenient to use than the submit form.

Please note that the submit client is provided <strong>as-is</strong> and we cannot guarantee that it will work on your system. It is a simple program that automatically (using a configuration file) logs in to the web page and uses the submit page.

Downloading a configuration file and client

Before running the submission client, you need to download a configuration file. This file should be placed in your home directory, or in the same directory as, and be called .kattisrc. You also need to download the client. To run the client, you need python installed on your machine.


The submit client depends on Python (either 2 or 3) and the requests library. You have to install both to run the client.

Running the client

The easiest way to run the client is if you have named your source code to problemid.suffix, where suffix is something suitable for the language (e.g., .java for Java, .c for C, .cc or .cpp for C++, .py for Python, .cs for C#, .go for Go). Let's assume you're solving the problem Hello World (with problem id "hello") and that your java solution is in the file Then you can simply run with as command-line argument, and the client will make the correct guesses. You will always be prompted before a submission is sent.

More advanced options

The submit client can handle multiple files in a submission. For such submissions, the filename and suffix of the first file listed on the command line is the basis of the guesses. It is ok to list a file multiple times, e.g. *.java.

In case the client guesses wrong, you can correct it by specifying a command line option. Running -h will list all options. The options as of writing this page are:

  • -p <problem_id> - overrides problem guess
  • -m <mainclass> - overrides mainclass guess
  • -l <language> - overrides language guess
  • -f - forces submission (i.e. no prompt)