Mainfast
Five GitHub checksRuns in your own CI

Merges that silently break main, caught before they ship.

Mainfast is five GitHub checks for the ways a merge quietly breaks main: a merge commit that drops changes, migrations that fork the history, required checks that protect nothing, CODEOWNERS that drifted, and agent PRs without proof. One config file, MIT licensed.

GitHub Actions workflow
name: Mainfast Intact
on:
  pull_request:
  push:
    branches-ignore: [main]
permissions:
  contents: read
  checks: write
jobs:
  intact:
    runs-on: ubuntu-latest
    steps:
  # …

How it works

  1. Add one step to a GitHub Actions workflow for each check you want. It runs with your own GITHUB_TOKEN, in your own runners.
  2. Optionally add .mainfast.yml at the repository root, one section per check. Checks read it from the base branch, so a pull request cannot loosen its own check.
  3. Each check posts a check run, a job summary, or one sticky PR comment, and every finding carries a one-line fix.
  4. Require the check (or the commit status for Mainfast Migrations) in branch protection or a ruleset, so a finding blocks the merge.
  5. Found a bug or a false positive, or want something added? Open a GitHub issue: the link is in the footer of every page. Anyone can, free, with no key.

Before you install

  • Using a coding agent? Point it at /llms.txt: it has the one-line install, the JSON commands and the MCP setup.
  • A GitHub repository where you can add workflow files under .github/workflows/.
  • GitHub Actions enabled. The checks run as Actions in your own workflows with your own GITHUB_TOKEN. Mainfast Pro is the hosted GitHub App instead: one install, no workflow files.
  • Each workflow grants only the permissions its check needs (see the product pages). No administration permission is ever needed.
  • Mainfast Intact, Mainfast Migrations and the pull_request job of Mainfast Evidence need a checkout with fetch-depth: 0. Mainfast Rollcall and Mainfast Owners need no checkout.
  • Optional: .mainfast.yml (or .mainfast.yaml) at the repository root. An unknown top-level key is an error, so a typo never silently switches a check back to defaults.
  • Optional: add the JSON Schema to your editor from https://raw.githubusercontent.com/mainfast/mainfast/main/schema/mainfast.schema.json.
  • Only Mainfast Owners has an optional extra: an org-token with Organization, Members: read, for org membership and team checks.
  • Third-party actions in the examples are pinned to full commit SHAs. The CLI of Mainfast Intact needs Node 20+ and git.
  • The Mainfast actions in the examples use the moving tag @v0, which follows each new release. To stay on one exact version and choose when to update, replace @v0 with a full commit SHA.

Pricing

Free

$0the GitHub Actions, for everyone
  • The five GitHub Actions are free and open source (MIT) for everyone, at any size. They never fail or block a merge for licensing.
  • On a private repository above 5 active contributors, each Action adds one notice to the job summary. It never fails, blocks or changes a check.
  • Org-wide shared config with extends is free too. It works today in Mainfast Intact, Mainfast Rollcall and Mainfast Owners.
  • The hosted GitHub App is also free for public repositories, and for private organisations with up to 5 active contributors.
  • Active means: opened a pull request or pushed in the last 30 days. Bots are not counted.
  • No sign-up needed.
  • Anyone can report bugs, false positives and ideas in GitHub issues, free, with no key. Issues are public, so leave out private code and secrets.

Merges that silently break main, caught before they ship.