Accessing your repositories over SSH

URIs for accessing your repositories on Cinnabar follow this pattern:


So, for example, if your workspace name is 'chrysalis-software' with a project called 'angry-moths', your url will be:


You can access your repositories at the default SSH port, port 22.

We recommend setting up your projects by editing the hgrc file, at {your_repository}/.hg/hgrc, as follows:

default = ssh://{workspace_name}/{project_name}
ssh = ssh -i {path_to_your_public_ssh_key}

So for example:

default = ssh://
ssh = ssh -i ~/.ssh/

Workspaces, Projects, & Repositories

In Cinnabar, we have designed a tool that is both powerful and usable. It might be a little different to what you're used to, but we think it's an improvement. To help, here are some of the key terms we use.


A workspace is where you store your projects. Each workspace requires a subscription, regardless of the number of projects it contains.

[Coming soon: Individual users may be assigned administrator rights for managing the workspace.]


A project lives within a workspace, and represents a software project. Each project automatically includes two repositories; a source code repository and a wiki repository.

[Coming soon: teams may be assigned no-read, read-only, and read-write permissions — separately assignable for source code and wiki repositories — for projects the teams are assigned to.]


This represents a Mercurial repository. When a project is created, both a source and a wiki repository will be automatically created, ready for you to start using Mercurial over SSH. You will be ready to start a new project, or push your existing code and its changeset history.

Namespace rules

There are some restrictions on usernames, project names, and workspace names.

In summary

Names should look like real words, or the names of people, companies, organisations or projects. Names should not be common web application paths (e.g. 'edit', 'add', 'index.html', 'robots.txt' cannot be used), or look like filenames (e.g. you might need to rename 'angry_moths_game.js' to 'angry_moths_game_js').

Exact details

The exact rules for usernames, workspace names and project names are:

  • names must start and end with an alphanumeric character: A-Z, a-z, and 0-9
  • names must consist only of alphanumeric characters, hyphens, underscores and dots (period characters): A-Z, a-z, 0-9, -, _, and .
  • names must be 3 or more characters in length
  • names must have more than four characters after the last dot (e.g. 'chocolate_cake.doc' isn't okay, but 'chocolate.cakes' and 'cake_settings.plist' are)
  • names must not conflict with the finite list of names we've reserved to provide Cinnabar services
  • names are not case sensitive, so two names cannot exist that differ only in case (e.g. both 'AngryMoths' and 'angrymoths' cannot exist)

If there is a name that you legitimately need which is treated as invalid by our rules, let us know, and we will see what we can do.

Migrating to Cinnabar from another service

Mercurial makes migrating from another service a breeze, as each clone contains the full changeset history of the repository.

Steps for migration:

  1. Sign up for a workspace with Cinnabar.
  2. For each project:
    1. Clone your repo to a directory on your local machine; $ hg clone {original url or path} {new path}
    2. Edit the {repo path}/.hg/hgrc file to point to your new project url at Cinnabar and to specify your SSH key (see Accessing your repositories over SSH above). [paths]
      default = ssh://{workspace_name}/{project_name}
      ssh = ssh -i {path_to_your_public_ssh_key}
    3. Push your code and changeset history to Cinnabar; $ hg push

Generating SSH Keys

Access to repositories is over secure encrypted SSH connections.

To do this, each user will need to have generated a key pair, consisting of a private and a public key, and you will need to upload your public SSH key to your user account. You can choose to use an existing key pair that you already use, or create a new one. You can also upload multiple SSH keys to use with your user account.

Remember that it is the public key that you upload to Cinnabar, not your private key.

Linux, *nix, & macOS

You will probably have SSH already installed. To create an SSH key, at the command line, enter:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/joelschier/.ssh/id_rsa): cinnabar-key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in cinnabar-key.
Your public key has been saved in
The key's randomart image is:
+---[RSA 2048]----+
|    ..*.. .      |
| . . o.= o .     |
|. .  .oo. .      |
| . .. o. .       |
| ..oooo S +      |
|  * EB o + o     |
| o.B..+ o + .    |
|o.+.+  o . o     |
|++o. . .ooo      |

And then follow the prompts, choosing a filename for the keys. By default, the private key won't have a filename extension, whereas the public key will have the extension .pub.

Remember, it is the public key that you provide to others, including when you upload to Cinnabar, not the private key.

On Windows

You need to have an SSH client installed on Windows. Some versions of Windows have OpenSSH already added (including Windows 10 and Windows Server 2019). See the Windows docs at 'OpenSSH in Windows'. You will be able to create keys by typing in Powershell or cmd:

cd ~\.ssh\

Follow the prompts, and you will see a similar output as for Linux, *nix, and macOS systems above.

Another option is PuTTY (a free SSH and Telnet client), which can be used to generate SSH keys also.

Ways to help

We've received some really encouraging emails from people, providing feedback and asking if there's anything they can do to help. Thank you! Here's two easy ways to help:

1. Use Cinnabar & spread the word

We're a small company working to get a new service off the ground, and we're not very well known yet. We aim to offer a great service, with helpful customer support, at a really competitive price. If you like what we do, please let others know!

2. Use Cinnabar & give us feedback

We've loved hearing from you, and have already made a number of improvements based on your feedback. Keep it coming — email us at with your suggestions!