CLI reference
Usage text below is generated directly from the shipped CLI (mendapi <command> --help), so it cannot drift from the implementation.
mendapi — Dependabot, but for every API you depend on. Your code never leaves your machine: scan, review, and fix run locally with no network code (mechanically enforced by the test suite). Usage: mendapi <command> [options] Commands: sync Fetch the latest API change feed from provider release channels (network) scan Scan a repo for usage impacted by upstream API breaking changes review Review medium-confidence findings (LLM semantic pass, deterministic apply) fix Preview or apply deterministic migration fixes (dry-run by default) llmfix Draft fixes for LLM-assisted changes with your own LLM (explicit opt-in, --list works offline) deps Inventory which provider API surfaces this repo uses (evidence-backed, local only) revalidate Audit migration packs for staleness against newer upstream changes (local only) pr Turn a fix into a reviewable git branch + PR-ready description (local by default) mcp Run a Model Context Protocol server on stdio (tools: scan, fix, changes, deps; local only) Run `mendapi <command> --help` (or with no args) for command options.
mendapi sync
Fetch the latest API change feed from provider release channels (SDK release feeds + official changelogs) into the local SQLite database. This is the only command that opens a network connection. Inserts are content-addressed, so re-running is idempotent.
mendapi scan
Scan a repository for usage impacted by upstream API breaking changes. Local only, read-only, zero network.
Usage: node scanner.js [--repo <path>] [--provider <name>] [--change-id <id>] [--out <file.json>] [--json] [--quiet] [--include-prereleases]
mendapi review
Review medium-confidence findings. Deterministic verdict files by default; add --llm to use your own LLM (BYO compute).
Usage: node app/review.js <impact.json> --pending
node app/review.js <impact.json> --verdicts <verdicts.json> [--out reviewed.json] [--dry-run]
node app/review.js <impact.json> --llm [--out reviewed.json] [--dry-run] [--max N] (BYO LLM; requires MENDAPI_LLM_* config)mendapi fix
Preview or apply deterministic migration packs. Dry-run by default: emits a unified diff that git apply accepts cleanly. Stale packs (upstream changed again since the pack was built) refuse to apply without --ack-stale.
Usage: node fixer.js --repo <path> --migration <name> [--apply] [--out-dir <dir>] [--ack-stale] [--json]
node fixer.js --from-report <impact.json> [--repo <path>] [--apply] [--out-dir <dir>] [--json]
Available migrations: openai-v3-to-v4, stripe-v7-to-v8, aws-sdk-v2-to-v3-s3, stripe-node-v22-httpclient-interface, stripe-us-bank-preferred-settlement-speed-removal, stripe-terminal-tipping-bgn-removal, stripe-payment-record-card-details-removal, stripe-payment-record-boleto-tax-id-null-guard, cloudflare-kv-legacy-routes, shopify-customer-account-draftorder-price, shopify-customer-last-incomplete-checkout, shopify-marketing-engagement-cumulative, hubspot-blogposts-api-move, shopify-order-fulfillment-not-required, twilio-verify-attempts-summary-servicesid, twilio-messaging-brand-registration-a2p-casing, twilio-linkshortening-messagingservicesids-removal, paypal-server-sdk-v1-controller-renames, paypal-server-sdk-v2-options-object, paypal-orders-v2-swish-pix-payment-source-removal, paypal-vault-v3-wallet-profile-fields-removal, paypal-vault-v3-apple-pay-card-fields-removal, paypal-vault-v3-information-link-error-field-removal, paypal-billing-subscriptions-v1-subscriber-address-removal, paypal-billing-subscriptions-v1-shipping-address-trim, paypal-billing-subscriptions-v1-subscriber-pii-removal, paypal-partner-referrals-v2-office-bearers-removal, paypal-partner-referrals-v2-contact-detail-trim, paypal-invoicing-v2-error-link-method-enum-shrink, paypal-invoicing-v2-send-202-body-unwrap, plaid-node-v43-v44-breaking-renames, vercel-web-analytics-dhe-cipher-suite-removal, vercel-project-extended-max-duration-removal, vercel-project-public-source-removal, vercel-store-agent-skill-url-to-agent-skills, vercel-vcr-image-id-or-digest-rename, vercel-integration-resource-edge-config-read-move, cloudflare-typescript-v7-deterministic-renames, cloudflare-typescript-v7-named-path-params, cloudflare-account-roles-to-permission-groups, slack-cli-hooks-file-move, slack-sdk-v8-errorsmendapi llmfix
Draft fixes for LLM-assisted changes with your own LLM. Explicit opt-in via MENDAPI_LLM_* config; emits DRAFT patches only and never modifies your repo. --list works offline.
Usage: node app/llmfix.js --from-report <impact.json> [--repo <path>] [--max N] [--out-dir <dir>] [--list] Requires MENDAPI_LLM_* config (BYO compute; see app/llmprovider.js). Emits DRAFT patches only; never modifies the repo.
mendapi deps
Inventory which provider API surfaces this repo uses (provider × endpoint/module × file:line, evidence-backed). Add --match to check which recorded breaking changes hit your exact endpoints.
Usage: node deps.js [--repo <path>] [--json] [--out <file.json>] [--match]
mendapi revalidate
Audit migration packs for staleness against newer upstream changes recorded in the database. Local only.
Usage: node revalidate.js [--json] [--db <path>]
mendapi pr
Turn a fix into a reviewable git branch + PR-ready description. Local by default; nothing is pushed unless you pass --push.
Usage: node pr.js --repo <git-repo> (--migration <name> | --from-report <impact.json>) [--out-dir <dir>] [--push]