@upseam/cli
v0.2.0
Published
Finds external API changes that affect a repository: SDK, pinned API version, changes since, matched code
Readme
@upseam/cli
Find the external API changes that affect your repository: the SDK you use, the API version you pin, what changed since then, and the lines of your code each change touches. It runs locally, with no account and no server.
npx @upseam/cli inspectRequires Node.js 22 or later. Installed globally, the command is upseam.
Providers and languages
stripe, shopify, shopify-storefront, openai, anthropic and gemini
in JavaScript, TypeScript and Python repositories. The change database ships inside the
package, so inspect fetches nothing at run time.
What it prints
$ npx @upseam/cli inspect
Stripe: stripe 16.12.0, API version 2024-06-20 (pinned), 490 events after it, 55 breaking, matches 2 high, 0 low
2025-03-31.basil Adds subscription item-level billing periods and removes subscription-level periods [breaking]
https://docs.stripe.com/changelog/basil/2025-03-31/deprecate-subscription-current-period-start-and-end
src/billing.ts:9 return new Date(subscription.current_period_end * 1000);
...Without a provider, inspect checks every SDK it finds: a summary line and
the matched changes per provider; --all prints everything. A terminal gets
colour, links and short animations (UPSEAM_NO_ANIMATION=1 turns them off,
NO_COLOR also the colour); piped or in CI it is plain text. AI providers
have no API version: inspect lists retirements your code hits.
Commands
| Command | What it does |
| ---------------------------------------------------- | ----------------------------------------------------------------- |
| upseam inspect [provider] [path] | Every SDK found, or one provider: changes since, matched lines. |
| upseam report [path] --dry-run | Print the issue body Upseam keeps for the repository. |
| upseam fix [path] --dry-run | Patch one mechanical change with your own model; print the diff. |
| upseam init [path] | Set up the Upseam GitHub App in a repository, file by file. |
inspect, init and agent take --json for scripts and agents; the JSON
never changes with the terminal. Without a provider it is
{"path", "inspections", "unavailable"}. upseam --help lists every command with
examples; upseam --version (-v) prints the version. Exit codes: 0
done, 1 error, 2 usage.
init
npx @upseam/cli init lists the SDKs it finds, proposes
.github/upseam.yml, shows each file before writing it and never commits
or pushes. --dry-run --json prints the plan and writes nothing. The
init prints the Upseam GitHub App install link,
https://github.com/apps/upseam/installations/new?state=npm, and links the
docs at https://upseam.dev/docs/.
Privacy
No telemetry. These commands are local only: init, inspect and
report --dry-run. The state=npm in the install link only tells Upseam,
after you install the App, that the install came from the CLI; the CLI
sends nothing itself. Network calls happen only when you ask for them:
report --githubcalls the GitHub API with your GitHub token.fixsends the change and the matched files to the model vendor you choose, with your key;fix --githubpushes a branch and opens a pull request.agent routeandagent prunesend the task to TypeSafe with yourTYPESAFE_API_KEY.
Feedback
Bugs, feedback and provider requests: https://github.com/upseam/upseam/issues/new/choose. Private matters: [email protected].
License
MIT. The bundled third-party licenses are in THIRD-PARTY-LICENSES.txt.
