Same policy.
Four implementations.
Rules drift between CI providers. Shared JavaScript could put repository logic in one place.
Early access / building in the open
Less machinery between an idea and a green check.
Fast repository checks, programmable automations, and custom AI hooks. Across the CI you already use.
See what it could look like01 / The overhead problem
A missing license. A broken link. One policy rule. The work is small. The machinery around it isn’t.
The check is the point. Everything else should earn its place.
Rules drift between CI providers. Shared JavaScript could put repository logic in one place.
Conditions and workarounds accumulate. Use real code when a configuration file stops helping.
Queueing, setup, storage, and runner time are part of the bill. Give small checks a smaller place to run.
02 / A little config. Real code when you need it.
Describe a check once. Reuse its logic. Start beside your existing pipeline, one small task at a time.
# API preview · not a released schema
on: pull_request
checks:
repository:
use: ./checks/repository.js
with:
requireLicense: true
// .runnerless.js · API preview
import { repository } from './checks/repository.js';
export default {
on: 'pull_request',
checks: {
repository: () => repository({
requireLicense: true,
}),
},
};
# .runnerless.yml · API preview
# YAML describes when. Shared JS defines the check.
on: pull_request
checks:
repository:
use: ./checks/repository.js
with:
requireLicense: true
# Keep large builds in your existing CI.
# Adopt one small check at a time.
// checks/repository.js · shared by YAML and JavaScript
// API preview: repository context is supplied by the runtime.
export function repository({ requireLicense }, context) {
return !requireLicense || context.files.has('LICENSE');
}
01 Same repository check in every mode.
02 Shared logic in checks/repository.js.
03 Proposed syntax, subject to change.
Working examples / ci-toolkit today
These automations already run in our ci-toolkit Cloudflare Worker. They’re concrete starting points for Runnerless, whose runtime and integrations are still in development.
Explore all 12 current capabilities and 6 Runnerless concepts ↗
01 / Actual ci-toolkit configuration
Check PR titles and individual commit messages against Conventional Commits. The effective policy comes from the trusted default branch, so a PR cannot authorize itself.
.ci-toolkit.yml · supported today
How PR title checks work ↗api_version: ci-toolkit/v1alpha1
pull_requests:
title:
format: conventional-commits
commit_messages:
format: conventional-commits
Apply codex: auto-review to request a review for the
current PR head. The review gate checks the trusted verdict and
unresolved threads before going green.
An authorized /merge comment requests a squash merge.
Pending checks or an outdated base enable auto-merge; conflicts
and draft PRs return a blocker. Existing checks still decide
eligibility.
A trusted BuildBuddy status triggers artifact validation and publication to an immutable public URL, then updates one PR comment. Checksums and configured retention travel with the report.
BuildBuddy → artifact → PR comment
The toolkit.release-please@v1 automation prepares
version-file and changelog changes in a release PR, then creates
the configured tag and GitHub Release after merge.
Commits → release PR → tag + release
03 / Connect the work
The planned integration story: small checks, useful artifacts, and a path from source to deployment.
Cloudflare / planned integration
Verify a compiled Worker, optimize the output, and publish it as part of a programmable workflow. Make deployment logic reusable across repositories.
Repository verification
Check manifests, required files, licenses, links, and repository policy without treating every sanity check like a full build.
Artifact handling
Find, validate, move, and retain artifacts across GitHub Actions, CircleCI, GitLab CI, and BuildBuddy.
Planned adapters / community extensible
Deployment workflows
Cloudflare first in this preview. Vercel, AWS, GCP, and Azure are part of the planned integration story.
Keep large builds where they work today. Connect the steps around them.
04 / Your AI. Your boundaries.
Bring AI into a workflow where it helps. Decide which tools it can call, which context it can read, and which actions require your approval.
AI inference and network-dependent workflows have their own latency. The one-second target is for small, local checks.
Planned hooks / configurable tool access
05 / Built to be opened up
The plan is an open-source, extensible runtime with integrations the community can build on.
Use a hosted service or run it yourself. Serverless platforms or conventional servers. The ambition is portable automation, with deployment choices that fit your team.
The public runtime and contribution workflow are still to come. Join early access to help shape what lands first.
Less waiting. More doing.
Early interest. No product access yet.
A few practical questions
Not yet. We’re building the product and gathering early interest. This is the launch page for that work, not a released execution engine. There is no announced launch date.
No. The planned approach supports YAML, JavaScript, and both together. Keep existing CI and adopt individual checks incrementally. The configuration above is an API preview.
Keep compilation, large test suites, and resource-intensive builds on the infrastructure that suits them. Runnerless focuses on small checks and automation around existing pipelines.
That is not the target. AI inference, external tools, and network calls take their own time. The one-second ambition applies to small, local checks, and is not a measured benchmark.
Self-hosting is part of the product plan, alongside a hosted offering. We’re exploring serverless and conventional server deployments. Deployment packages are not released yet.
Tell us which checks and integrations you need using the optional questions after signup, or email hello@runnerlesshq.com. The open-source repository and contribution guide will follow.
Allow optional Datadog performance diagnostics and masked session replay. Signup works either way. Details