Retrieved article excerpt
Open article · Retrieved 2026-09-14T12:22:04.995500+00:00
# AI-native dependency upgrades, right in your terminal.
apiweiser-cli watches your dependencies, confirms which updates
actually break your code, and opens the pull request with the
fix — before you ever run the upgrade.
`curl -fsSL https://apiweiser-cli-fe.vercel.app/install.sh | sh` Copy
### Maps every real call site
Resolves how your code actually calls each dependency using TypeScript's type checker, not import-tracing — every link in a chained call is caught, even through wrapped or reassigned values.
### Classifies releases, not guesses
Watches each dependency's GitHub releases, asks an LLM whether the latest one is breaking, and only acts once Renovate independently confirms the update is available — including security upgrades Renovate surfaces by checking releases against the OSV vulnerability database.
### Builds a codemod once, reuses it everywhere
The coding agent runs on every proposed migration, but if the cached codemod already covers a repo's call sites, there's nothing to rewrite, so it doesn't spend extra tokens doing so. When a repo's call sites don't fit yet, it extends the existing codemod instead of starting over, so coverage only grows.
### Opens the pull request
Bumps the dependency in package.json and the lockfile, applies the codemod for real, then branches, commits, and opens a PR against your repo — you just review and merge.
## From breaking release to open PR
Once a release is classified as breaking, a coding agent
builds and tests the migration, apiweiser bumps the
dependency for real, and the PR lands on your repo — no
further action needed from you beyond reviewing it.
apiweiser-cli
chalk 4.1.2 → 5.0.0 breaking
→ coding agent building & testing codemod…
→ bumping chalk to ^5.0.0, applying migration…
- chalk.stderr.supportsColor
+ supportsColorStderr
✓ opened PR: Migrate chalk 4.1.2 -> 5.0.0
~/.apiweiser-cli/codemods/chalk/4.1.2\_to\_5.0.0
✓ built once (vercel/pkg) — coding agent wrote & tested it
↳ default imports only — 0 edits on ts-loader
✓ extended (ts-loader) — namespace + require() added
✓ reused (your-repo) — already covers it, agent confirms and skips to PR
## Every repo makes the next one cheaper
The coding agent is invoked on every proposed migration — but
if the cached codemod already covers a repo's call sites,
there's nothing new to write, so it doesn't burn extra tokens
rebuilding one. When it doesn't cover them yet, the agent
extends the existing codemod instead of starting from scratch
— so the registry gets more capable, not just bigger, with
every repo it touches.