how do I create and share a cyber-dojo customized practice session?

Suppose you want to create a starting point whose files are different to the initial default set of files for a language. For example, you might want to create a cyber-dojo where the tests are already written. Or maybe you want to start with some legacy code to practice refactoring.

You can do this very easily in cyber-dojo.  Prepare your files in a regular cyber-dojo.  When you think you have your files how you want them, click the "test" button. If everything is as expected make a note of...
  • the cyber-dojo's 10 character id (from the URL); suppose it is 58E4486EE2
  • the animal; in this case the panda
  • the last traffic light's number; in this case 10

Click on the latest (right-most) traffic light. This will bring up the history-dialog. At the top-left is the "fork" button:

Click the fork button. This will create a new cyber-dojo with its own id, whose starting files are taken from panda's 10th traffic light. A dialog box will appear telling you the new cyber-dojo's id.

Creating a link for other people to fork your starting point

Now, in this example 750D53 is a new empty cyber-dojo which has no users or changes in it yet. As you use it changes to it will accumulate. Eventually you will run out of animals with which to enter. In other words, like all cyber-dojos, it's good for one practice session only.

This begs the question, is there a way to share a starting point which will be pristine every time? The answer is yes, there is.

750D53 was creating by forking from the panda's 10th traffic-light in the cyber-dojo with id 58E4486EE2. The following URL will create of a new forked cyber-dojo with its own ID, by forking from the panda's 10th traffic light of cyber-dojo 58E4486EE2.

<a href="" target="_blank">Start a new cyber-dojo from my awesome starting point</a>

You can now share this on a web page (for example).


  1. I was experimenting on this with my test room without success. Could you help me figure out what's wrong.
    I've forked new room 74A037 from 638B0525DD.

    So I've made such link:
    Gane of Life

    But it doesn't work as expected.

  2. Hi Unknown.
    Taking 638B0525DD as the room to fork from...
    Looking at that room I see there is a deer (no traffic-lights) and a flamingo (lots of traffic-lights).
    Your link is
    But there is no snake in that room.
    You don't specify the animal you "want".
    You specify the animal (and traffic-light) you are forking _from_,
    If you want to fork from flamingo's 57th traffic-light you'll need...
    Hope this helps.

  3. Hi Jon,
    Unlike what we saw over the weekend, the custom start points does work! Here's a link to a gist which explains how to quickstart Python/PyTest/FizzBuzz on CyberDojo.

    1. Awesome! Thank you so much for doing this. Sorry I fouled it up over the weekend.

    2. This comment has been removed by the author.

    3. No problem! And here's the actual URL shortener

    4. However, the fork doesn't work is when we use the `&tag=-1` to pick up the latest iteration.

    5. Which is a bug. Sorry about that. I will look at it as soon as I can.

  4. Meanwhile, I've managed to create a Javascript bookmarklet for sharing a customized cyber-dojo session. Click this link to review the instructions in a gist file

    1. I've added forking from -1
      If, on your server, you do
      $ cyber-dojo update
      then it will understand forking from -1

    2. ...and a demo video of the bookmarklet in action! -

    3. still doesn't cut it. Am I doing something wrong?

      The avatar link is

    4. Sorry I was not clear. I have made the change to the web-service image but have not upgraded the main server yet (just landed). I was assuming you would be creating URLs with a tag=-1 for your own server.

    5. This comment has been removed by the author.

    6. Got it! I will check on my server after it has been updated. BTW, the bookmarklet will work on as well! Thanks again!

  5. "-1" works now after the local "update". Love that color is default now! It would be nice to have the brighter background when displaying on projector. Is that toggle-color kyeboard shortcut still available?