FAQ & troubleshooting
Does inup edit my files or run install?#
It depends on the mode:
- Interactive (the default): nothing is written until you confirm. When you press
Enteron your selection, inup bumpspackage.json(andpnpm-workspace.yamlfor catalog entries) and runs your package manager’s install to update the lockfile. --jsonand--check: read-only — they report and exit, never touchingpackage.jsonor the lockfile.--apply: the only non-interactive write path — it applies the bumps and runs install. See CI & scripting.
By default the range prefix is preserved (^/~); pass --save-exact to write exact versions instead.
Why is a package (or directory) being skipped?#
A few things cause inup to skip something:
- Ignored packages — anything matching
ignorein.inuprcor-i, --ignore(glob supported, e.g.@babel/*). - Excluded directories — anything matching
excludein.inuprcor-e, --exclude(regex). - Default skip list — inup does not descend into
node_modules,dist,build,coverage,out,lib,es,esm, orcjs. If a real package lives under one of those (e.g.lib/), add it toscanDirsin.inuprc. - Scan depth — package discovery stops at
--max-depth(default10) directories deep.
How does inup know which package manager to use?#
It auto-detects from your lockfile (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb/bun.lock). Force it with --package-manager npm|yarn|pnpm|bun when a repo has more than one lockfile.
Do private registries and .npmrc work?#
Yes. inup resolves registries and credentials with npm’s own model, reading your project, user, and global .npmrc: scoped registries (@scope:registry=…) and credentials (_authToken, username/_password, legacy _auth), with ${ENV_VAR} values expanded. A token is only ever sent to the registry its config binds it to. No extra setup — if npm can install it, inup can read it.
It printed JSON / a plain list instead of opening the UI#
That’s the headless fallback, and it’s intentional. inup runs headless — never opening the interactive UI — when any of these is true:
- stdout isn’t a TTY (e.g. piped:
inup | cat), - the
CIenvironment variable is set, - you passed
--json,--check, or--apply.
This keeps it from hanging a pipeline. To force the interactive picker, run it in a real terminal without those flags.
How do I turn off colors?#
Pass --no-color, or set the standard NO_COLOR environment variable. FORCE_COLOR is also respected. Useful for log files and CI output.
It warned about a dirty working tree#
In interactive mode, inup warns before changing anything if your git working tree has uncommitted changes, so an upgrade diff stays easy to review and revert. Commit or stash first, or continue past the prompt. Headless mode skips the prompt (it’s read-only unless --apply).
Does inup send any telemetry?#
No. There is no tracking, no telemetry, and no data collection. Package metadata comes straight from the npm registry, download counts from the npm downloads API, and changelogs/release notes from GitHub — nothing else leaves your machine.
What Node version do I need?#
Node 22.19 or newer (engines.node). npx inup uses your local Node; the GitHub Action defaults to Node 22.
Still stuck?#
Run with --debug to write a verbose log (/tmp/inup-debug-YYYY-MM-DD.log), then open an issue with it attached.
Last updated 2026-07-09 · Edit this page on GitHub