Skip to main content

🚀 Beta: All Pro and Team features are free. Install on GitHub →

THE AUTHORIZATION LAYER FOR AI AGENTS

Know what may proceed. Prove why it did.

CodeRifts decides whether a contract-changing action may execute, and issues portable, cryptographically verifiable proof — bound to the exact operation and change, independently checkable without trusting CodeRifts.

Proof with boundaries, not promises.

Every claim states what it establishes and what it does not, and where enforcement still belongs to you.

Try it now — no signup, no API key

curl -sS https://app.coderifts.com/api/v1/action-verdict \
  -d '{"action_type":"tool_call","tool":{"name":"get_customer","capabilities":["read"]}}'
# what comes back — real bytes, 2026-08-25
decision:          ALLOW
execution_action:  CONTINUE
chain_receipt:     eyJ2IjoyLCJraWQiOiIyMDI2LTA3LWsxIiwiZnAiOiJz…ZfRxNe2q_1-xx8KdNZ6YvPCw
kid:               2026-07-k1   alg: Ed25519
# node verify.js <token> —> {"valid":true,"status":"VERIFIED_CURRENT"}

Excerpt of one live response, signed and verified offline against the published key registry. Verify one yourself →

Check us, not just the product — two sources, one digest

# 1. the tool text the live server hands an agent right now
curl -sS -X POST https://app.coderifts.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
| python3 -c 'import sys,json,hashlib
t=json.load(sys.stdin)["result"]["tools"]
b=json.dumps(t,sort_keys=True,separators=(",",":"),ensure_ascii=False).encode()
print("sha256:"+hashlib.sha256(b).hexdigest())'

# 2. the tool text we published on this site
curl -sS https://coderifts.com/.well-known/mcp/server-card.json \
| python3 -c 'import sys,json;print(json.load(sys.stdin)["surface"]["tools_sha256"])'

# both print
#   sha256:db5cea2fbc69be86e514ea529ec1b1d2ed952bc086e49b85824eeb3d489967fd

This proves the tool text we serve is the tool text we published — it says nothing about whether a model read it or obeyed it. Digest rule and tool count are in the server card.

What this proves — and what it does not

A signed receipt is evidence that a decision was issued for a call that went through the gate — that call was mediated. It is not evidence that every call took that path. For that we publish tested evidence instead: a dated, version-pinned probe you run against your own installation, which also reports what it could not reach. bypass-probe →

Using GitLab or Bitbucket? →

Read-only GitHub access · Core Diff reads schemas only; opt-in gates read source references in memory, never persisted · Security details

All Pro and Team features free during beta · Full feature set · GitHub native · Zero config

Prefer GIF? Open demo-pr-recording.gif

Real PR comment from coderifts/demo#4

1,275,568 OpenAPI specs analyzed — public datasets document breaking changes at scale (APIstic)

Source: APIstic research dataset, USI Lugano (2024)

Most tools show what changed. CodeRifts shows how dangerous it is.

Other tools
Endpoint removed
Field renamed
Type changed

That's it. A list of diffs.

CodeRifts
⚠️ Risk Score: 87/100
💰 Blast radius: 3 downstream services (consumer-aware analysis)
🎯 3 downstream services affected
🔒 Auth scheme removed — Critical
👤 CTO approval required
🚫 Exceeds breaking budget (3/2)
📋 Migration effort: 12 engineering days

* Cost estimates are based on your team’s configured hourly rate and estimated engineering effort. Configure in .coderifts.yml.

The market shows you what changed.

We tell you how dangerous it is.

We tell you who it affects.

We tell you when deployment is blocked.

We tell you how much it will cost.

And we sign OpenAPI, PR-gate & action-verdict verdicts — so you can verify it, not just trust us.

How often does this happen in the wild? See the Global OpenAPI Benchmark: breaking-change rates measured across public APIs.

🛡️ Runtime prevention on the guarded path

@coderifts/agent-guard prevents the call on the guarded path

The runtime guard fails closed: when a breaking contract call goes through the returned tool table (withCodeRifts / the guarded registry), it does not run. That is prevention — the strongest control we ship. Anything the host invokes directly is invisible to it.

Agent quickstart · What each path does (and does not)

🆕 New

MigraGuard: schema changes vs live code

A migration PR that drops a column passes code review and green tests - then production breaks because src/billing/sync.ts still reads it. MigraGuard cross-checks every schema migration against your actual code references and reports on the PR: DROP COLUMN with a live reference is a BLOCK with the exact file and line. Additive changes pass in seconds. Uncertain cases get a WARN, never a silent pass. Built into the same zero-config GitHub App — one install, two reports (API contracts and migrations).

What your team sees on every pull request

<{>
CodeRifts Governance Report bot
Risk Score: 78/100

Risk Breakdown

Revenue Impact
high
Blast Radius
medium
Compatibility
high
Security
low

Breaking Changes

Endpoint Change Type Intent Confidence Severity
DELETE /api/users/{id} Endpoint removed 🏗️ Structural 🟢 High Critical
GET /api/orders Response schema changed ⚙️ Behavioral 🟡 Medium Warning
POST /api/payments Auth scheme removed 🔒 Security 🟢 High Critical

Policy Violations

Exceeds breaking budget (3/2)
Freeze window active until March 15

Recommendations

Add deprecation notice before removing endpoint. Consider versioning the API change.

Signed & Verifiable

Don't trust the verdict. Verify it.

Ed25519-signed verdicts on the OpenAPI diff, PR gates and action-verdict flows — deterministic (same input, same fingerprint), with multi-protocol signing (GraphQL, gRPC, AsyncAPI) on the roadmap. The command below independently verifies that this exact verdict was issued and signed by CodeRifts and has not been altered; determinism itself is reproducible via the public diff API — same input, same fingerprint.

# Signed & Verifiable — coderifts/demo#4
verdict:  deterministic BLOCK · 3 breaking changes
fp:       sha256:70699341…cfec
ir_hash:  sha256:f3de7721…a334
kid:      2026-07-k1
issued:   2026-07-21
alg:      Ed25519

Example from a real run — the live receipt is always fresher. Run the command below to fetch and verify it yourself.

Verify it yourself — four lines, no signup

# 1. mint a signed decision from the public endpoint (no signup, no API key)
curl -sS https://app.coderifts.com/api/v1/action-verdict \
  -d '{"action_type":"tool_call","tool":{"name":"get_customer","capabilities":["read"]}}' \
| python3 -c 'import sys,json;print(json.load(sys.stdin)["chain_receipt"])' > receipt.txt

# 2. get the verifier — one file, no dependencies — and check the signature
curl -sSO https://raw.githubusercontent.com/coderifts/receipt-verifier/main/verify.js
node verify.js "$(cat receipt.txt)"

# -> {"valid":true,"status":"VERIFIED_CURRENT","payload":{ … }}

The verifier comes from GitHub, not from this site — a verifier served by the party being verified would prove less. It resolves the key from the published registry; pass --key pub.pem to check fully offline. This proves the receipt was signed by that key and has not been altered. It does not prove that any particular agent call went through the gate.

Or verify a receipt from a real governed PR

# clone & verify the live demo receipt (honest on GitHub rate-limit / empty body)
git clone https://github.com/coderifts/receipt-verifier && cd receipt-verifier
HTTP=$(curl -sS -o /tmp/cr-demo-comments.json -w '%{http_code}' \
  https://api.github.com/repos/coderifts/demo/issues/4/comments) || exit 1
if [ "$HTTP" != "200" ]; then
  echo "GitHub API HTTP $HTTP — rate limit or error. Try again in a minute, or paste the receipt JSON/token directly:"
  echo "  node verify.js '<receipt>' --keys https://app.coderifts.com/.well-known/coderifts-keys.json"
  exit 1
fi
RECEIPT=$(grep -oE 'eyJ2[A-Za-z0-9._-]+' /tmp/cr-demo-comments.json | tail -1)
if [ -z "$RECEIPT" ]; then
  echo "No receipt token found in PR comments. Paste one directly:"
  echo "  node verify.js '<receipt>' --keys https://app.coderifts.com/.well-known/coderifts-keys.json"
  exit 1
fi
node verify.js "$RECEIPT" \
  --keys https://app.coderifts.com/.well-known/coderifts-keys.json

Node 20+, no npm install. Exit 0 = valid. Resolves the signing key by kid from our published key registry — retired keys remain listed after rotation. Unauthenticated GitHub comment fetch can 403 when rate-limited; the script above fails with a message instead of verifying an empty capture.

Open-source verifier (Node and Python) · Live demo PR · Frozen format spec

Same input, same verdict, same fingerprint — byte-identical across runs. Each run gets a freshly timestamped Ed25519 receipt.

Learn more about portable proof →

Four steps. Zero config.

Zero config is the report path. Turning a red check into a merge gate is optional — Make the Check Block a Merge.

Push

A pull request modifies an API schema.

Calculate

CodeRifts diffs base vs head and scores risk across 4 dimensions.

Evaluate

Governance rules checked: budgets, freezes, ownership, approvals.

Report

Full signed report as a PR comment and check run. Require the check to block merges.

A full governance feature set in a single PR comment

Zero config on GitHub. Works with GitLab, Bitbucket, and any CI/CD pipeline. Policy as code via .coderifts.yml.

4D Risk Scoring

Revenue, blast radius, app compatibility, and security — scored 0-100 on every PR, now powered by the formalized Ω_API engine with auditable components (S_contract, P_break, S_blast, S_agent).

Policy Engine

Governance rules as code, simulated against any spec pair before merge. Advanced rules — breaking budgets, freeze windows, approval matrix — available now.

Change Intent Classification

Every breaking change tagged: structural, behavioral, security, or performance.

AI-Generated Spec Safety

Detects when AI tools modify your API spec with 7 detection signals.

Auth Scheme Diff Severity

Granular security analysis: 5 severity levels with OAuth scope detection.

Deprecation Lifecycle

Enforce minimum deprecation periods, sunset dates, and replacement requirements.

Documentation Coverage

5-dimension docs quality score with PR delta tracking.

API Stability Badge

Embeddable SVG badges for your README: stability grade, breaking-free streak. Scored on the spec as committed — static, not runtime.

PR-Layer Enforcement

Block unsafe merges at the PR layer — not just detection, but enforcement with BLOCK/WARN/ALLOW decisions, blocking once the check is required in branch protection.

Agent Preflight Check

Operation-bound preflight authorization before mutating tool calls — execution proceeds only through the verified guard path.

Policy as Code

Define governance rules in .coderifts.yml — version-controlled and simulated before merge. Advanced gates (breaking budgets, freeze windows, approvals) are available now.

Compliance Ledger

Permanent audit trail of every API change, risk decision, and policy evaluation — immutable and queryable.

SDK

npm install @coderifts/sdk or pip3 install coderifts-sdk — integrate governance checks directly into your agent pipelines. Available now.

Multi-Protocol Diff

Breaking-change detection across OpenAPI, GraphQL, gRPC, and AsyncAPI — one decision format for every protocol.

Agent-Readable Headers

Every decision ships as X-CodeRifts-Decision, Risk-Score, and Safe-For-Agent headers — agents read the verdict without parsing a body.

Explainable Decisions

Append ?debug=true for the full reasoning — cache lookup, score components, and a human-readable decision path.

AI Adoption Telemetry

See which AI crawlers and agents reach your API through the public preflight endpoint.

Owner Dashboard & Metrics

Per-repo decision distribution, cache efficiency, and request volume — for the teams that own the API.

Correlation ID & Audit Trail

Every request carries a correlation id — full traceability across logs, decisions, and PR comments.

Full

Governance feature set in a single PR comment

0

Config required — install and it works

.yml

Policy as code via .coderifts.yml

7,422

Tests — production-grade reliability

7,421 passing and 0 failing — measured across 15 suite globs at commit 82627a1. Check the number yourself: app.coderifts.com/health reports the same test_count live.

Ten drift patterns run today on static spec input — deterministic, the same input yields the same verdict — and nineteen more are on the traffic-capture roadmap. Decision Spec

Enforce release policies with version-aware, machine-checkable rules.

Governance as code

# .coderifts.yml — analyzer policy (can fail the check / stop a merge when required)
# Not the same file as .github/api-policy.yaml (comment-only DSL).
breaking_budget: 3
fail_on_breaking: true
policy:
  no_delete:
    - "/payments/*"
    - "/auth/*"
  freeze:
    start: "2026-03-01"
    end: "2026-03-15"
    reason: "Q1 release freeze"

Two policy files exist — only .coderifts.yml can stop a merge. See Two policy mechanisms.

Breaking budgets

Set max allowed breaking changes per PR

Freeze windows

Block breaking changes during release periods

Domain ownership

Route alerts to the right team by API path

Approval matrix

Require sign-off based on risk level

How it works

CodeRifts reads your OpenAPI specification files (JSON or YAML) directly from your repository on every Pull Request. It never accesses your source code, business logic, or runtime data.

What it analyzes

  • OpenAPI 3.x and Swagger 2.x specifications
  • Schema changes between base and head branch
  • CI configuration for governance gap detection

What it does not access

  • Your codebase (opt-in gates read only referenced files, in memory)
  • Your database
  • Runtime traffic or production data
  • Any file outside the paths you configure

Core Diff reads your configured spec files; opt-in MigraGuard and ActionGuard also read configured migration files, source references and workflow YAML — processed in memory during the check run, never stored or logged.

Who is this for

Platform teams

Dozens of internal APIs, one breaking change away from a bad week. CodeRifts maps blast radius across declared consumers and affected endpoints, enforces breaking budgets and freeze windows, and blocks the merge before the pager goes off.

Blast radius · Policy-as-code

API-first companies

Your contract is your product. Semver-violation forensics, signed verdicts and auto-generated changelogs keep every release honest — and provable to your customers.

Semver · Signed verdicts

Agent builders

AI agents break silently when tool schemas drift. Preflight checks, agent-safe verdicts and MCP governance catch agent-breaking changes at the PR, before your agents hit them.

Agents · MCP governance

Start free. Scale when ready.

Ed25519-signed verdicts on the OpenAPI diff, PR gates and action-verdict flows — on every tier, even Free; multi-protocol signing is on the roadmap.

Free

$0 forever

Catch breaking changes locally

  • Breaking change detection
  • Auto-discovery of spec files
  • Semver suggestion
  • Lifecycle labels
  • API surface stats
  • Commit consistency check
  • Breaking changes table
  • REST in Peace
  • Web UI, CLI & REST API
  • Signed, verifiable verdict receipt
Try in Browser

Pro

Free during beta
$49 /mo (unlimited repos)

Risk intelligence on every PR

  • Everything in Free, plus:
  • GitHub App: zero-config PR comments
  • Runtime guard prevents breaking contract calls on the returned tool table
  • Change intent classification
  • Confidence scoring
  • Catches auth regressions before merge
  • Auth scheme diff severity
  • AI-generated spec safety
  • Generator-aware risk
  • API design linter
  • Auto-changelog
  • Deprecation lifecycle tracker
  • Documentation coverage score
  • Heritage mode
  • CODEOWNERS suggestion
  • Versioning strategy advisor
Install on GitHub
Most Popular

Team

Free during beta
$79 /mo (unlimited repos)

Governance enforcement for your team

  • Everything in Pro, plus:
  • Required check blocks merges when branch protection is set
  • Freeze windows
  • Breaking budget per team
  • Approval matrix
  • Domain ownership & notifications
  • Exception lifecycle manager
  • Migration assessment
  • Governance health score (A-F)
  • Overlap detection
  • PR review insights
  • Feature flag cleanup
  • API stability badges
  • Shadow API detection
  • SDK surface coverage
  • Generated spec drift control
Install on GitHub

Enterprise

$999+ /org/mo

Governance at scale with compliance

  • Everything in Team, plus:
  • Multi-repo compatibility guard
  • Consumer-aware risk scoring
  • Org-level API registry
  • Compliance ledger & audit trail
  • External API drift monitor
  • Historical drift intelligence
  • Slack & Teams notifications
  • SSO & dedicated support
Contact Sales

Get API governance insights in your inbox.

Join developers who care about API stability.

One email per week. No spam.

Featured Case Study

"A single field rename passed code review, passed all tests, and took down POS systems across 19 restaurants for a week."

Read the case study