Installed components are your files, so they never change on their own. When a component improves, you choose when to take the new version.
diff compares your copy with the registry:pnpm dlx shadcn@latest diff npx shadcn@latest diff tag-input
Without a name it lists components that have updates. With a name it prints the line-by-line difference.
The safest flow uses git, so nothing you changed is lost.
Commit or stash your work, so the update shows up as its own diff.
git statuspnpm dlx shadcn@latest add @tealmac/tag-input --overwrite
git diff components/ui/tag-input.tsxKeep the upstream changes you want, and put back your own with
git checkout -p or your editor's merge view. Then run your tests and commit.
MyButton around the
installed component keeps your changes out of the file you update.