Skip to content
PreFlight
Command line

Run PreFlight anywhere releases happen.

The same check, from your terminal or your pipeline. The exit code carries the decision, so a release can gate on it. Every run issues the same signed receipt.

preflight — zsh — 80×24
$ preflight verify https://api.quote.example/mcp

Installation

The hosted web, API, and MCP surfaces are live. The CLI package is published as @vinaystwt/preflight-cli and installs the preflight binary.

npm
npm install -g @vinaystwt/preflight-cli
preflight --help
preflight verify --help
preflight verify-receipt --help

Verify an endpoint

Point it at a live endpoint. PreFlight discovers, pays as a buyer, and decides.

shell
preflight verify https://api.quote.example/mcp

Verify from a manifest

The current CLI verifies an endpoint or Agent ID. Manifest-file input is planned for the same release-gate contract, but the hosted API already accepts confirmed manifests.

paid API endpoint
curl -i https://api.usepreflight.xyz/api/v1/verify-release

Exit codes

The process exit code is the contract a pipeline gates on.

0

RELEASE

1

BLOCK

2

UNKNOWN

3

INFRASTRUCTURE

Verify a signed receipt

Anyone can check a receipt against PreFlight's published Ed25519 key, offline of the report.

preflight — zsh — 80×24
$ preflight verify-receipt rcpt_df8dc…10cff

GitHub Actions

yaml
# .github/workflows/preflight.yml
name: preflight
on: [deployment_status]
jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - run: preflight verify ${{ vars.ENDPOINT }}
        # exit 0 RELEASE · 1 BLOCK · 2 UNKNOWN · 3 infrastructure
ResultBLOCK · exit 1

Other CI

Any runner works: the command returns the decision as its exit code and machine JSON on stdout.

JSON output

shell
$ preflight verify <endpoint> --json
{
  "decision": "RELEASE",
  "report_id": "pfr_…",
  "receipt_id": "rcpt_…",
  "receipt_signature": "…",
  "badge_url": "https://api.usepreflight.xyz/api/v1/badge/pfr_….svg",
  "chain_anchor_tx": null
}

Payment behavior

A check is 0.10 USDT over x402. Your agent or CI wallet pays. A run that never completes is not charged, and a safe retry does not charge twice.

Troubleshooting

A non-zero exit with code 3 means PreFlight could not run the check (network, endpoint unreachable). Codes 0 to 2 are real decisions. Use --json for machine parsing.