Simplified Install for Self-hosted Runners

We recently revamped our freemium plan to be the most comprehensive free CI/CD tier for developers on the planet. In addition to making powerful features and resources available on the Free plan, we’ve extended self-hosted runners to all CircleCI plans.

Today, we’re thrilled to introduce a simplified user experience for self-hosted runners on our platform. This includes first-class support for self-hosted runners right in the CircleCI UI!

You can install and use a self-hosted runner in less than 5 minutes. We’ll also help you keep track of your activity in a single view with our new runner-focused user interface.

Getting Started:

Have an org admin go to → Organization Settings → Self-Hosted Runners and accept the Runner Terms. After that, anyone in your organization will be able to install a self-hosted runner through the UI and see your active self-hosted runners on an inventory screen. Comment below with any questions.

See our blog for more details.

Let us know what you think!

1 Like

Your post may have got ahead of the blog post :slight_smile:

It is looking a lot cleaner than the old cli workflow.

I hope we will gain the feature to delete defined runners at some point - or at least a doc page that takes a person through the steps required.


Hi! Apologies for that. You should see the blog post now :slight_smile:

Deleting resource classes

“Deleting” Runners

Are you looking to delete the runner itself or the resource class? To “delete” the runner, you can just unload the service and then it’ll eventually be cleaned up from the Self-hosted Runner Inventory page after 3 days.

1 Like


In my case, it is a number of historic resource classes that I need to remove at some point. As I noted I have an email exchange with support that has given me the commands to run, but as most people will now be using this via the GUI they will need a GUI based option.

As long as the licence system is linked to active runners, rather than defined runners an auto clean up feature is a nice idea, but this has to be clearly documented - It is quite possible to build a workflow that uses a runner at say month-end that is not running for the rest of the month. In my own environment currently have VMs that are suspended for days at a time, rather than shut down and restarted. So the status page will become rather dynamic and the runner licence limit if linked to active runners could impact a client if they started up a number of suspended systems.

One minor thing - The accept page for the T&Cs is shown every session you access ‘Self-Hosted Runners’ from under ‘Organization Settings’. This whole section seems to be out of control USA centric lawyer boilerplate* - I need to accept this once on behalf of the company and be done with it. The page needs to ask for acceptance once - just like your main T&Cs do.

  • “out of control USA centric lawyer boilerplate*” -your agreements for some reason state a user must be eighteen or older - In the UK at least “age of majority” has zero to do with employment age. If I worried about your T&Cs I would have been unable to select your service in the first place as future business plans could involve school leavers and/or work placement roles, which in the UK can mean 16-18 year olds. The agreement should be between the legal business and not its individual staff members.
1 Like

Good feedback about needing a simpler way to delete resource classes through, ideally through the UI.

and to be clear, we won’t shut down your Runners for you, they simply won’t show up on the inventory screen if we haven’t heard from them in 3 days.

For the license, you shouldn’t have to go to the “Self-Hosted Runners” section in Organization Settings other than the first time you agree to the T&Cs. Once you do that once, you should be able to just navigate to the inventory screen from the left-hand nav within that says “Self-Hosted Runners”? The terms will still show up in Organization Settings if you do navigate there, but it’ll show as a “check box” that you’ve already agreed to.

Having now used this new interface to deploy my first group of runners all running under a single resource class I can add the following feedback.

  • The current improvements have skipped anything to do with the circleci cli command so the issue of doing things like clearing up old configurations in the GUI is very much an issue that needs to be addressed. At the moment the claim that this change has greatly reduced the setup time of a runner is only true in part - some things have just been deferred to the future.

  • The interface provides no indication of the system that the runner is running on - so the only real option is to set the Runner name to the hostname - while this works it does not really offer a great solution as the name given to a runner may or may not have any direct link to the hostname.

  • A more general issue for the whole dashboard environment. No information is provided regarding what runner/node is used to run a job. This makes sense for CircleCI hosted runners as allocation is going to be random from a large pool of instances. Knowing which of my own runners is having a problem is rather important going forwards as I could have system issues that impact a build.

To sum up the last 2 issues, I currently can not see from the console

  • what node a runner is operating on.
  • what runner (and so what node) a job has been passed to.

Another issue that needs to be resolved (in time) is the fact that when you create a Custom Resource Class in the GUI you are able to enter an optional description. Currently as far as I can tell you can only view this information using the command-line tool.