You are reading the docs for v0.0.1-beta-1. View the latest docs.
Skip to content

Compare kinhin to other CI options ​

What other tools do, what kinhin does, and what kinhin is missing.

← Home · Why kinhin

kinhin is a runner autoscaler: it keeps your existing CI (GitHub Actions, GitLab, Gitea, Forgejo) and feeds it fresh, isolated Mac capacity. Plenty of other tools solve a neighbouring problem, and several solve this exact one. This page is a guide to the landscape, not a leaderboard. Most of these tools are good, and the right pick depends on what you already run and how many machines you have.

How to read this page ​

  • Facts about other projects were read from their own docs on 2026-10-08 and are linked at the end. Projects change, so check the source before you decide. If something here is wrong or out of date, please open an issue and it will be fixed.
  • Where a tool's docs did not mention something, this page says "no documented ..." rather than claiming the tool cannot do it.
  • kinhin's own claims use the same words as Forge support. Live-tested means run against a real server. Unit-tested only means automated tests against fakes, never a real instance. GitHub Actions, Gitea, Forgejo and GitLab CE are live-tested; Buildkite, Azure Pipelines and Bitbucket Pipelines are planned.
  • No prices or benchmark numbers appear here. Hosted services change pricing often, so use each vendor's own pricing page.

At a glance ​

Self-hosted Mac runner tools (the same layer as kinhin) ​

ToolWhat it isForgesAutoscalingHostsLicense
kinhinMenu bar app, CLI and daemon that autoscales ephemeral runners on one MacGitHub, GitLab CE, Gitea, Forgejo (Buildkite, Azure DevOps, Bitbucket united-tested only, not tested live yet)Yes, from the queue, capped by the Mac's cores, RAM and diskOne MacApache-2.0
runscalerCommand line autoscaler for Docker containers or Tart macOS VMsGitHubYes, on GitHub's runner scale set API, scales from zeroOne hostMIT
CiliconmacOS app that runs ephemeral Tart-format VMsGitHub Actions, Buildkite, GitLab Runner, custom scriptsNo documented queue-based scalingOne MacMIT
TarteletmacOS app that runs ephemeral Tart VMs as runnersGitHubRuns up to two runnersOne MacMIT
OrchardOrchestrator for Tart VMs across a cluster of MacsNone (not a CI integration)Schedules VMs on requestMany MacsSee repository
GitLab Runner + Tart executorGitLab custom executor that creates a Tart VM per jobGitLabConcurrency set by hand with concurrentOne or more MacsSee repository
Anka Build (Veertu)Commercial macOS VM platform with controller and registryJenkins, TeamCity, GitLab, GitHub Actions, Buildkite, Azure DevOpsController queues and load balancesMany Macs, own or hostedCommercial
Orka (MacStadium)Kubernetes-native macOS VM platformPlugins for GitHub Actions, GitLab, Buildkite, Azure DevOps, Jenkins, Drone, TeamCityElastic pools, burst capacityMacStadium cloud, AWS, or your own MacsCommercial

Full CI systems and Linux-oriented tools ​

ToolWhat it ismacOS jobsAutoscaling
Woodpecker CIA complete CI server with agents and plugins (replaces your CI)Local backend only, with no isolationSeparate autoscaler, described as not feature-complete, documented for Hetzner Cloud
Actions Runner Controller (ARC)Kubernetes operator for GitHub Actions runnersNo documented macOS supportRunner scale sets, ephemeral container runners

Hosted macOS CI (no hardware to own) ​

ServiceWhat it is
GitHub-hosted runnersmacOS images on Apple Silicon and Intel, a fresh VM for each job
GitLab hosted runnersmacOS runners on Apple Silicon, in beta and limited to some plans
Cirrus RunnersHosted GitHub Actions runners on Apple Silicon, single-use VMs built on Tart
NamespaceHosted runners including macOS on Apple Silicon
DepotHosted GitHub Actions runners including macOS on some plans

Closest tools: self-hosted Mac runners ​

runscaler ​

What it does. An open source autoscaler for GitHub Actions. It registers a runner scale set, waits for GitHub to hand out jobs, and starts either a Docker container or a Tart macOS VM for each one using a just-in-time runner configuration. It scales from zero, needs no Kubernetes, can keep a warm pool of pre-booted macOS VMs for fast pickup, and has a doctor --fix command that cleans up orphans.

What kinhin does. kinhin also uses GitHub's scale set API with just-in-time registration for GitHub accounts, and it also runs one ephemeral instance per job. It adds six more forges, four runtimes (Tart, apple/container, Docker, host), a menu bar app and LaunchAgent daemon, a capacity cap computed from your Mac, per-repo and per-workflow routing, and baked or per-project toolchains. It also has an opt-in warm pool: set warm_pool and kinhin keeps Tart VMs booted and waiting, so a job skips the clone and boot.

What kinhin lacks. The warm pool is off by default and covers only base-image Tart jobs; jobs routed to a per-project image, and the other runtimes, still pay the clone and boot time. kinhin is also much newer in some of its paths: outside GitHub Actions, nothing has been run against a real server yet.

Pick runscaler when you only use GitHub and want a small command line tool.

Cilicon and Tartelet ​

What they do. Both are macOS apps that run ephemeral Tart-format VMs as CI runners. Cilicon handles GitHub Actions, Buildkite, GitLab Runner and custom scripts. Tartelet handles GitHub and runs up to two runners at a time. Neither documents scaling to the queue.

What kinhin does. It watches the queue and sizes the fleet for you, serves several forges at once, and covers Linux jobs.

What kinhin lacks. Their scope is smaller, which is also their appeal. If one VM at a time is enough, a smaller tool has fewer moving parts.

Orchard ​

What it does. Orchard is a controller and workers that manage Tart VMs across a cluster of Apple Silicon Macs, with a CLI and a REST API. Its docs describe orchestration of VMs, not a CI integration.

What kinhin does. kinhin works at a different layer: it talks to your forge, decides how many runners the queue needs, and places them on one Mac.

What kinhin lacks. Multi-Mac clustering. kinhin manages the Mac it runs on and does not schedule across machines. If you have a rack of Macs, an orchestrator like Orchard, Anka or Orka is the better foundation.

GitLab Runner with the Tart executor ​

What it does. A GitLab custom executor creates an isolated, ephemeral Tart VM for each job. Concurrency is a number you set in config.toml.

What kinhin does. Scaling follows the queue instead of a fixed number, and the same fleet can serve other forges. kinhin's GitLab support is live-tested on GitLab CE.

What kinhin lacks. Maturity on GitLab: the executor has a longer track record.

Anka Build and Orka ​

What they do. Both are commercial platforms for fleets of Mac VMs with central management. Anka Build has a controller, a template registry and nodes that run on your own Macs, managed hosting or AWS EC2 Mac, with SSO, high availability and USB device attach. Orka is Kubernetes-native, runs on MacStadium's cloud, on AWS or on your own Macs, and offers burst capacity.

What kinhin lacks. Everything that comes with a commercial fleet product: many-node scale, high availability, vendor support and hybrid cloud. kinhin is free, single-host and built by one developer.

What kinhin offers instead. A small, free tool you can install in a minute for a single Mac, with no controller to run.

Full CI systems and Linux-oriented tools ​

Woodpecker CI ​

What it does. Woodpecker is a complete, Apache-2.0 CI/CD system: a server, agents, a web UI, a plugin ecosystem and its own pipeline syntax. It is light (the project cites roughly 100 MB for the server and 30 MB for an agent at idle) and can run on a Raspberry Pi. It works with GitHub, Gitea, Forgejo, GitLab, Bitbucket and Bitbucket Datacenter. Its docs describe connecting multiple forges to one server as experimental.

The important difference is the category. Woodpecker replaces your CI. kinhin does not. kinhin keeps your GitHub Actions or GitLab workflows unchanged and supplies the machines they run on. Woodpecker asks you to run a CI server and write Woodpecker pipelines.

macOS. Per Woodpecker's supported platforms page, the server has no macOS build and the Docker and Kubernetes backends do not run on macOS. The agent does run on macOS, but only with the local backend, which runs pipeline commands directly on the agent host with no isolation. Its docs warn that a pipeline can read the agent's configuration, including the agent secret, and recommend it only for trusted private setups. So on a Mac the choices are: run the agent directly on the Mac, or put it inside a VM you manage yourself. We found no documented Tart support in Woodpecker. Running an agent inside a Tart VM looks plausible but is something you would build and operate yourself.

Concurrency. Each agent runs one workflow at a time by default (WOODPECKER_MAX_WORKFLOWS defaults to 1). Woodpecker has a separate autoscaler project, which its docs call not feature-complete, and its example is Hetzner Cloud. We found no documented autoscaling for Apple hardware.

What kinhin does. Ephemeral Tart VMs (and Linux containers or microVMs) per job with the capacity cap, plus queue-driven scaling for the CI you already have. GitHub Actions (Tart macOS VMs, apple/container) and Gitea Actions (Docker) are live-tested; the other forges are not yet.

What kinhin lacks. Everything a CI system itself provides: no server, UI, pipeline language or plugins of its own. Woodpecker also has Windows agents and Windows container support, and runs on Linux, FreeBSD and Windows servers. kinhin runs on an Apple Silicon Mac only and has no Windows runners.

Pick Woodpecker when you want a small, self-hosted CI server that you fully control, mostly for Linux or container workloads. Pick kinhin when you already use GitHub Actions or another supported forge and want parallel, clean Mac jobs on your own hardware.

Actions Runner Controller (ARC) ​

What it does. ARC is GitHub's Kubernetes operator for self-hosted runners. It scales runner scale sets (per repository, organization or enterprise) up and down with the number of workflows, and runners can be ephemeral and container-based.

What kinhin does. It fills the gap on a Mac: macOS VMs and Apple's container runtime, with no Kubernetes needed. We found no documented macOS support in ARC's own README.

What kinhin lacks. Kubernetes-scale elasticity, multiple nodes, and the cloud operations tooling that comes with it. If your jobs are Linux and you already run a cluster, ARC is the natural choice.

Hosted macOS CI ​

What they do. GitHub-hosted runners give you macOS images on Apple Silicon and Intel with a fresh VM per job and no hardware to own. GitLab offers hosted macOS runners in beta on some plans. Cirrus Runners, Namespace and Depot offer hosted GitHub Actions runners that include macOS on Apple Silicon. Cirrus Runners are built on Tart and billed per concurrent runner rather than per minute. RunsOn, which runs in your own AWS account, documents Linux and Windows but says macOS stays on GitHub-hosted runners. Dedicated iOS services such as Bitrise, Codemagic and Xcode Cloud also exist but are not compared here.

What kinhin lacks. Burst capacity beyond one Mac, an SLA, support, and zero maintenance. With hosted CI there is no Mac to look after and no image to bake.

What kinhin offers instead. Your own hardware at a fixed cost, so you can run as many jobs as the Mac can hold without a per-minute meter, plus control over images, toolchains and network. This is the problem kinhin was built to solve after the free monthly minutes ran out.

A note on Tart ​

kinhin's macOS VMs are Tart VMs, and most of the self-hosted tools above use Tart too. Tart is now published under the openai organization on GitHub. Its repository carries the Functional Source License (FSL-1.1-ALv2), which allows any purpose other than a "Competing Use" (commercially offering a product that substitutes for Tart), and says internal use is a permitted purpose. Read the license yourself, and ask a lawyer if your use is unusual. Apple's own terms also limit a Mac to two macOS VMs at once, which applies to every Tart-based tool here (see Why kinhin).

What kinhin is missing ​

An honest summary, with the roadmap for what is planned:

  • No multi-Mac clustering or cloud burst. One Mac is one fleet.
  • Apple Silicon Mac hosts only. No Intel Macs, Linux or Windows hosts.
  • No Windows runners. A possibility after v0.1.0, not a promise.
  • No CI server, UI or pipeline language of its own. kinhin relies on your forge for those.
  • The warm pool is limited to base-image Tart jobs. Warm VMs also take slots under the two-macOS-VM ceiling. See Warm pool.
  • Four forges GitHub, Gitea, Forgejo and GitLab CE are supported and live-tested; Buildkite, Azure Pipelines and Bitbucket Pipelines are planned. GitHub has run on Tart macOS VMs and apple/container only. See what has been tested and the beta roadmap.
  • The in-app updater is not exercised yet, and there is no soak-test result.
  • No commercial support or SLA. One maintainer.

What kinhin has ​

  • An opt-in warm pool of pre-booted Tart macOS VMs, so a job skips clone and boot (Warm pool).
  • One engine for four forges and four runtimes, with routing per repo, workflow or runs-on: label (Runtimes).
  • Fresh, isolated, ephemeral instances by default, with the runner deregistered and the instance deleted after each job.
  • A capacity cap computed from your Mac, with host headroom reserved (How scaling works).
  • A menu bar app, CLI and daemon that share one config and one fleet.
  • Toolchain baking, pinning and a shared cache (Toolchains).
  • No telemetry, and tokens in the Keychain.

Which should I choose? ​

  • One Mac, you keep GitHub Actions or GitLab, and you want parallel clean jobs: kinhin.
  • A small, self-hosted CI server you control, mostly Linux: Woodpecker CI.
  • Linux jobs on a Kubernetes cluster you already run: Actions Runner Controller.
  • Many Macs in a rack or cloud: Orchard, Anka Build or Orka.
  • No hardware at all, and per-job cost is acceptable: a hosted macOS service.

Not sure? The Quick start takes a few minutes, and a report of what worked or did not is the most useful thing you can send.

Sources ​

Checked on 2026-10-08.