I made a CLI tool to keep an eye on your dependencies: Whatsdiff v2 is out!
Sponsored by
unolia.comAll your domains in one place. Helps you find problems, gives you performance and security insights!
Want to sponsor this blog ?
Contact me or use
Github sponsor
I made this tool for myself. After a year of using it, I decided it needed some attention. v2 is here with a website and documentation.
What's Whatsdiff?
Ever run npm update or composer update and wonder what actually changed? Sure, you see package names scroll by, but what releases did you skip? What features or fixes did you get?
Whatsdiff answers that question. It's a CLI tool that compares your dependency files between commits and shows you exactly what changed—with release counts, version ranges, and even full changelogs.
What It Does
At its core, Whatsdiff analyzes composer.lock and package-lock.json files between git commits. Run it after an update, and you'll see:
- Added, removed, updated, and downgraded packages
- Multiple output formats: text, JSON, markdown, or an interactive Terminal UI
- Full release notes for any package and version range
- AI integration via an MCP server for assistants like Claude Code
How to you use it?
Basic usage is to just run it after an update of your dependencies.
# Last updatewhatsdiff # Between specific commits, tags, or brancheswhatsdiff between v1.0.0 v2.0.0
Want to see what's in those 5 Laravel releases?
It pulls from multiple sources: local vendor directories, GitHub Releases, or repository changelogs.
whatsdiff changelog laravel/framework 12.33.0...12.36.1 --type=composer
You can also integrate this into CI/CD by using the check command to detect if specific packages have changed, exit codes make it perfect for automation (0 = true, 1 = false, 2 = error).
# Check if a critical package was updatedif whatsdiff check livewire/livewire --is-updated --quiet; then echo "Running extended test suite..."fi
You can also use it to create your own tools, use the JSON output format to create your own tool:
whatsdiff --format=json
The real cool stuff
Terminal UI
Not a fan of scrolling through terminal output? Launch the TUI:
whatsdiff tui
Browse packages, view details, and read changelogs with arrow keys and vim-style navigation.
Model Context Protocol (MCP) Server
For AI-powered workflows, Whatsdiff includes an MCP server that lets AI assistants:
- Find compatible versions for dependency constraints
- Fetch release notes between versions
- Check available upgrades (patch, minor, major)
- Analyze dependency trees
Perfect for integrating with Claude Code or other AI tools.
This helped Claude Code a lot when I need to upgrade a major version of a framework or a package.
Conclusion
If you want to give it a try, install it globally via Composer:
composer global require whatsdiff/whatsdiff
I used it a whole year before talking about it. It's been super helpful to keep track of what changed in my projects.
When I take on a old project, the first thing I do is update dependencies and run whatsdiff to see what changed.
npm update && composer update -W && npm run build && whatsdiff
Check it out at whatsdiff.app or github.com/whatsdiff/whatsdiff.
Syntax highlighting provided by torchlight.dev