Cursor Origin logo above an Origin PR to Buildkite to Anka VM flow for macOS CI on hardware you control.

Cursor Origin, Buildkite, and Anka: macOS CI on Agent-Hosted Repos

Cursor Origin is in early beta on paid plans. It is Cursor’s git host: the repo and the pull request live in Cursor. CI still has to run somewhere else.

Buildkite still needs somewhere to run the job. For iOS and macOS that somewhere is a real Mac. Put an ephemeral and on-demand versioned Anka VM on it, not a shared desktop.

What Cursor Origin is

Origin stores code and shares it with your Cursor team. You work with it from the Codebase tab and from cursor.com/codebase. Clone, push, and pull use normal git. You can open, review, and merge pull requests there. You can also browse and search the tree in the browser.

You can create a repo on Origin, including from a Cursor agent. You can also mirror a GitHub repo. A mirror keeps GitHub as the source of truth and syncs PR comments both ways. A repo you create on Origin is Origin-hosted: Origin is the source of truth.

Origin does not run the job. The Apps tab can attach Vercel for deploys and Depot or Buildkite for CI. Buildkite still needs a machine. For macOS that machine is a Mac with an Anka VM.

Below is how the three pieces connect.

The job

An agent opens a pull request on an Origin-hosted repo. You want xcodebuild, simulator tests, and signing to run against that PR, then report a check back where you already review the diff.

Why a shared Mac is a bad runner

A Buildkite agent on a laptop or a dedicated Mac Mini will execute the job. It will also inherit whatever Xcode, simulators, and certificates already live on that disk. Two pipelines that need two Xcode versions fight. A leftover DerivedData folder from last night’s run poisons this morning’s. A failed job leaves packages installed. It could even risk deleting files it shouldn’t from the machine, creating a headache to recover.

macOS CI/CD has always had this problem. Origin gives you the repo and the trigger. It does not give you isolation. That part is still on you to solve with Anka VMs.

What each piece does

Origin hosts the repo and the pull request. Clone URL is standard git:

https://origin.cursor.com/{owner}/{repo}.git

Buildkite is the CI you attach from the repo’s Apps tab, after the app is installed at the codebase level. It can run native Buildkite pipelines. It can also run existing GitHub Actions workflows, but only on repos Cursor hosts, not GitHub mirrors.

Anka is the guest. The anka-buildkite-plugin clones a template for the job, starts the VM, copies the host’s Buildkite agent into the guest, runs buildkite-agent bootstrap there, then deletes the clone on success, failure, or cancel. You do not install an agent inside the template.

Origin’s CI constraint

Origin’s repository settings spell this out: Buildkite works on Origin-hosted repositories only. A repo you mirrored from GitHub keeps CI on GitHub.

If the pipeline has to fire from Origin’s Apps tab, create the repo on Origin (or detach a mirror so Origin becomes the source of truth). Mirroring is fine for browsing and two-way PR comments. It will not get you Buildkite from Origin.

Origin itself is early beta: Pro, Teams, and Enterprise, not free plans. Access rolls out in stages. The codebase name you claim during setup cannot be changed in beta.

Set up the Anka side

Install the Anka CLI on each Mac that will run jobs. Install the Buildkite agent on those same hosts and confirm they appear in your Buildkite org. Raise spawn in buildkite-agent.cfg if one node should run two VMs at once.

On EC2 Mac, start the agent with no-pty=true so Anka CLI licensing works as a non-root user.

The plugin does not require a special template tag. Any Anka VM you can clone is enough. A prepared template with Xcode and your signing assets still saves every job from installing those from scratch.

A pipeline step

Pin the plugin at veertuinc/anka#v2.1.0:

steps:
  - label: "Build"
    key: "build-key"
    command: make build
    plugins:
      - veertuinc/anka#v2.1.0:
          vm-name: 26.3-arm64
          mount-host-path: "${BUILDKITE_BUILD_PATH}"
          bootstrap-args: "--skip-checkout"

  - label: "Test"
    key: "test-key"
    command: make test
    depends_on:
      - "build-key"
    plugins:
      - veertuinc/anka#v2.1.0:
          vm-name: 26.3-arm64
          mount-host-path: "${BUILDKITE_BUILD_PATH}"
          bootstrap-args: "--skip-checkout"

Each step gets its own clone. Repeat mount-host-path on every step that needs the share. Use key when you use depends_on.

mount-host-path needs Anka 3.9.0 or newer, and it is Apple silicon only. The share shows up under /Volumes/My Shared Files/ (default guest folder name buildkite). Do not try to override BUILDKITE_BUILD_PATH in step env; Buildkite ignores it. For a different host directory, set your own variable and point mount-host-path at that.

Set bootstrap-args: "--skip-checkout" so the plugin does not try to git clone from origin.cursor.com inside the VM. Unless your template already has Origin credentials, git commands in the guest will fail anyway.

Pull a tagged template from a registry with vm-registry-tag and always-pull: true. Registry failures do not fail the build, so watch the registry yourself. Or set always-pull: false, skip the registry, and pre-prepare the VM on the host with the Anka CLI.

Set cleanup: false only when you need to inspect a clone. The agent then needs cancel-grace-period=60; the default ten seconds is not enough for teardown.

Connect Origin to Buildkite

  1. Claim a codebase name at cursor.com/codebase if nobody on the team has yet.
  2. Create an Origin-hosted repository (not a GitHub mirror).
  3. Install Buildkite at the codebase Apps settings, then enable it on that repo’s Apps tab.
  4. Point the Buildkite pipeline at the Origin remote (https://origin.cursor.com/{owner}/{repo}.git) and at the YAML above.
  5. Open a pull request on Origin and confirm the check lands on that PR.

Good fit

Use this stack when the repo already lives on Origin and you want macOS CI on Macs you own (or EC2 Macs you already pay for), with a fresh VM per job.

If you’re interested in a quote or chatting with our team, join us at https://slack.veertu.com or email us at support@veertu.com.

Share this post

Anka wordmark above two isolated VM windows: macOS 14 with Xcode 15, and macOS 15 with Xcode 16, on one Mac.
Running Several macOS and Xcode Versions Side by Side on One Mac
Run concurrent Anka macOS VMs with different OS and Xcode stacks on one host: density math for vCPU and RAM, and why per-project templates beat a shared mutable machine.
Read More
anka-and-kubernetes
On-Demand macOS VMs in Azure DevOps Pipelines with Anka
Run macOS VMs in Azure DevOps Pipelines with Anka. Anklet-style on-demand agents are blocked by Microsoft self-hosted pools today; use a registered agent plus per-job Anka VMs.
Read More
AWS + Anka Build Cost Diagramv3
Ephemeral macOS VMs on AWS EC2 Mac with Anka
Run ephemeral macOS VMs on AWS EC2 Mac with Anka and Anklet. Pack more iOS CI capacity per instance, start jobs in seconds, and cut cost.
Read More
Screenshot 2025-01-08 at 2.16
Enterprise macOS GitHub Actions Runners with Anka
Run self-hosted macOS GitHub Actions at enterprise scale with Anka and Anklet: ephemeral Apple Silicon VMs, more control than hosted runners.
Read More
The Anka product ladder: Develop, Flow, Build, and EC2 Mac as four ascending steps, with Crypt, MCP, Anka Scan, and AMI Scan named below
Which Anka Product Do You Actually Need? A Walkthrough of the Whole Lineup
A situation-first guide to every Veertu product: Anka Develop, Anka Flow, Anka Build, AWS EC2 Mac, Anka Crypt, Anka MCP, Anka Scan, and EC2 Mac AMI Scan, including the moment you move from one to the next.
Read More
anka2024v1-1536x768
A Year of Anka: Highlights from 2024
We’re starting a new annual tradition here at Veertu with our A Year of Anka blog posts. We want our customers to know how the product has grown over the past year and think this is a great avenue to do so. Please enjoy and happy holidays from all...
Read More
anka-or-1
Anka vs Orka in 2024
It has been several years since we made our first side by side comparison between Anka and Orka. A lot has changed, and we believe it’s important to make sure the information out there is accurate. We’ll be specifically addressing a newer...
Read More
networking-performancev1
Unlocking Superior macOS VM Network Performance: Introducing Anka's new networking mode for Apple Silicon
Large and complex enterprises using Anka have many different demands, and we have worked to continue to develop innovative technology to meet these demands. Enterprise infrastructure hardware is often on the cutting edge, and they need advanced capabilities...
Read More
gitlab-with-anka
Anka Cloud Gitlab Executor
Veertu’s Anka and the new Anka Cloud Gitlab Executor Veertu’s Anka is a suite of software tools built on the macOS virtualization platform. It enables the execution of single or multi-use macOS virtual machines (VMs) in a manner similar to Docker....
Read More
mac-scan-v1
Real-Time CVE Scanning of your macOS Build Systems
It’s common that an organization’s macOS build system will download thousands, sometimes tens of thousands of third-party dependencies every hour. When building and testing iOS applications, it typically downloads and installs third-party...
Read More