Docs · Runners

CircleCI and Semaphore on BuildPulse runners

Up to 73% less than CircleCI's own machines, and 1.7x faster. BuildPulse runs CircleCI and Semaphore jobs on the same machines and per-minute prices as our GitHub Actions runners. Create a runner on your CI's side, paste its token into BuildPulse, and change one line in your pipeline.

How it works

BuildPulse watches your CircleCI resource class or Semaphore agent type for waiting jobs. When one is queued, we start an Ubuntu 24.04 machine with Docker at the size you picked. It registers with your CI, runs the job, and is discarded afterwards. Each job gets a fresh machine, usually running in under a minute.

Billing

You pay our per-minute rate for the time the job runs on the machine, from when your CI starts it to when it ends. The boot is not billed. The same 3,000 free base minutes a month that cover GitHub Actions jobs cover these too, and no credit card is needed to use them. Your CI vendor may still charge its own fees: see pricing below.

CircleCI setup

BuildPulse machines join CircleCI as a self-hosted machine runner. Jobs use the machine executor with your resource class.

  1. In CircleCI, open Self-Hosted Runners, create a namespace if your organization has none, then create a resource class, for example your-namespace/bp-x64-4x. Copy the resource class token CircleCI shows once.
  2. In CircleCI User Settings → Personal API Tokens, create a token with read-only access. BuildPulse uses it only to see when jobs are waiting for your resource class. Read-only tokens expire after at most a year; we alert you when it stops working.
  3. In BuildPulse, open Runners → Setup, pick CircleCI and a size. Paste the resource class, its token and the API token. We check them against CircleCI before saving, and store them encrypted in AWS Secrets Manager.
  4. Point a job at the resource class:
version: 2.1
jobs:
  test:
    machine: true
    resource_class: your-namespace/bp-x64-4x
    steps:
      - checkout
      - run: npm ci && npm test

Docker is available to every step, so docker build and docker run work as they do on a CircleCI machine. CircleCI caps how many self-hosted runner jobs run at once: 5 on its Free plan, 20 on Performance, unlimited on Scale (circleci.com/pricing).

Semaphore setup

BuildPulse machines join Semaphore as a self-hosted agent of an agent type you create.

  1. In Semaphore, open Settings → Self-hosted agents and add an agent type, for example s1-bp-x64-4x. Copy its registration token.
  2. In BuildPulse, open Runners → Setup, pick Semaphore CI and a size. Enter your organization (your-org or your-org.semaphoreci.com), the agent type and the registration token. We check them against Semaphore before saving.
  3. Point your pipeline at the agent type:
version: v1.0
name: CI
agent:
  machine:
    type: s1-bp-x64-4x
blocks:
  - name: Test
    task:
      jobs:
        - name: npm test
          commands:
            - checkout
            - npm ci && npm test

checkout, cache, artifact and test-results work as usual. sem-version is not available on any Semaphore self-hosted agent, ours included: install language versions in a command or run the job in a container image.

What it costs

You pay our per-minute rate, the same one on /pricing. Each row below compares machines with the same number of vCPUs.

CircleCI Linux VM

Jobs on a CircleCI self-hosted runner use no CircleCI credits for run time, so the minute costs our rate alone. Against CircleCI's own Linux VM classes, at $0.0006 a credit, that is up to 73% less, and under half the price from 8 vCPU up. The same builds also finish 1.7x faster than on CircleCI's Large (benchmark).

CircleCI machinevCPUCircleCI $/minBuildPulse sizeBuildPulse $/minBuildPulse costs
Medium · 7.5 GB2$0.0062x · 8 GB$0.00433% less
Large · 15 GB4$0.0124x · 16 GB$0.00833% less
X-large · 32 GB8$0.068x · 32 GB$0.01673% less
2X-large · 64 GB16$0.1216x · 64 GB$0.03273% less
2X-large+ · 64 GB32$0.1832x · 128 GB$0.06464% less

CircleCI still bills network transfer for restoring caches and workspaces to a self-hosted runner, at 420 credits per GB past your plan's allowance (persisting data).

Semaphore

Semaphore bills its own $0.0025 a minute for any self-hosted agent, so our column includes it. Semaphore's x86 machines stop at 4 vCPU; BuildPulse runs up to 64. At 4 vCPU one build costs less than on Semaphore's own machine, fee included (benchmark).

Semaphore machinevCPUSemaphore $/minBuildPulse sizeBuildPulse + fee $/minBuildPulse costs
f1-standard-2 · 8 GB2$0.00752x · 8 GB$0.006513% less
f1-standard-4 · 16 GB4$0.0154x · 16 GB$0.010530% less

Vendor prices from CircleCI pricing, its price list, runner overview and Semaphore pricing, checked October 5, 2026.

More

BuildPulse vs CircleCI machines compares CircleCI class by class, with a worked month, and BuildPulse vs Semaphore machines does the same for Semaphore. Questions about a setup? Get in touch.

Try it on one pipeline

Create a resource class or agent type, paste the token, and point one job at it.

3,000 free minutes every month · No credit card required