Setting up SSH access

Our core services are already working really well! But while we're finishing the web user interface, we'll happily set up user accounts, workspaces, projects, and repositories for you.

Simply email the following details to :

  • the email address that you with to use for communications and login
  • the nickname* to uniquely identify you
  • the public SSH key(s) for your user account, to use for accessing your repositories
  • the workspace name(s) that you wish to use to manage your projects (workspace names must be unique).
  • the project names* that you wish associate with your workspace(s), each of which will have a source and wiki Mercurial repository,.

* See Namespace rules below for details on valid names.

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.

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's a few definitions of 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: when the web interface and team functionality is ready, users may be assigned to an Admin Team, which will have administrator rights for managing subscriptions, team membership and user permissions.]


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.

[Planned: when the web interface and team functionality is ready, no-read, read-only and read-write access will be separately assignable for source and wiki repositories.]


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.

Accessing your repositories over SSH

The uri for accessing your repositories on cinnabar follows 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/

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 available 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!