PHPackages                             srwiez/whatsdiff - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. srwiez/whatsdiff

Abandoned → [whatsdiff/whatsdiff](/?search=whatsdiff%2Fwhatsdiff)Library[CLI &amp; Console](/categories/cli)

srwiez/whatsdiff
================

See what's changed in your project's dependencies

v2.6.0(2d ago)77272MITPHPPHP ^8.2CI failing

Since Sep 13Pushed 2w ago1 watchersCompare

[ Source](https://github.com/whatsdiff/whatsdiff)[ Packagist](https://packagist.org/packages/srwiez/whatsdiff)[ GitHub Sponsors](https://github.com/SRWieZ)[ RSS](/packages/srwiez-whatsdiff/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (123)Versions (35)Used By (0)

whatsdiff
=========

[](#whatsdiff)

[![GitHub release (with filter)](https://camo.githubusercontent.com/a29bf9b0bee58f90d5fa791fd099b03c27499f78364f7bb230ab30c2e9b93d22/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f7768617473646966662f776861747364696666)](https://camo.githubusercontent.com/a29bf9b0bee58f90d5fa791fd099b03c27499f78364f7bb230ab30c2e9b93d22/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f7768617473646966662f776861747364696666)[![Packagist PHP Version](https://camo.githubusercontent.com/8c51f8f0168b54901c90bcb78dcbcf978b38003553133f177341041c7add5408/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f7768617473646966662f7768617473646966662f706870)](https://camo.githubusercontent.com/8c51f8f0168b54901c90bcb78dcbcf978b38003553133f177341041c7add5408/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f7768617473646966662f7768617473646966662f706870)[![Packagist License (custom server)](https://camo.githubusercontent.com/9329875e96c90b5d472d28f33595684f5e5d1b1f8dc4fccb36b1a82f648a1707/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7768617473646966662f776861747364696666)](https://camo.githubusercontent.com/9329875e96c90b5d472d28f33595684f5e5d1b1f8dc4fccb36b1a82f648a1707/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7768617473646966662f776861747364696666)[![GitHub Workflow Status (with event)](https://camo.githubusercontent.com/890bfef3bc8bc77b13d63a2a61de7fa00da54d7d7aad9855b8de257f6ec56c90/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7768617473646966662f7768617473646966662f746573742e796d6c)](https://camo.githubusercontent.com/890bfef3bc8bc77b13d63a2a61de7fa00da54d7d7aad9855b8de257f6ec56c90/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7768617473646966662f7768617473646966662f746573742e796d6c)

What's diff is a CLI tool to help you inspect what has changed in your dependencies after a `composer update`, `npm update`, or `pnpm update`.

[![whatsdiff Terminal UI](assets/cli-tui.png)](assets/cli-tui.png)

Visit [whatsdiff.app](https://whatsdiff.app) for complete documentation and usage examples.

✨ Features
----------

[](#-features)

- **Analyse changes** in `composer.lock`, `package-lock.json`, and `pnpm-lock.yaml` between commits
- **Read changelog** and release notes of updated packages
- **Interactive Terminal UI**
- **Multiple output formats** (text, JSON, markdown)
- **MCP server** to help LLM understand how to upgrade your project dependencies
- **CI/CD integration** to check if specific packages have changed

🚀 Installation
--------------

[](#-installation)

Via [Composer](https://getcomposer.org/) global require command

```
composer global require whatsdiff/whatsdiff
```

or by [downloading binaries](https://github.com/whatsdiff/whatsdiff/releases/latest) on the latest release, currently only these binaries are compiled on the CI:

- macOS x86\_64
- macOS arm64
- linux x86\_64
- linux arm64
- windows x64

📚 Usage
-------

[](#-usage)

For complete documentation, visit [whatsdiff.app/docs](https://whatsdiff.app/docs)

### [Analyse Command](https://whatsdiff.app/docs/cli-analyse)

[](#analyse-command)

Show what changed after your last `composer update`, `npm update`, or `pnpm update`:

```
whatsdiff
# or explicitly
whatsdiff analyse
```

### [Between Command](https://whatsdiff.app/docs/cli-between)

[](#between-command)

Compare dependencies between two commits, branches, or tags:

```
# Compare between two tags
whatsdiff between v1.0.0 v2.0.0

# Compare between commits
whatsdiff between abc123 def456

# Compare from a commit to HEAD
whatsdiff between abc123
```

### [Terminal UI Mode](https://whatsdiff.app/docs/cli-tui)

[](#terminal-ui-mode)

Launch an interactive Terminal UI with keyboard navigation:

```
whatsdiff tui
```

### [Check Command](https://whatsdiff.app/docs/cli-check)

[](#check-command)

Check if a specific package has changed (useful for CI/CD):

```
# Check if a package was updated
whatsdiff check livewire/livewire --is-updated

# Check if a package was added
whatsdiff check new/package --is-added

# Use in scripts with exit codes
if whatsdiff check critical/package --is-updated --quiet; then
  echo "Critical package updated, running extra tests..."
fi
```

### [Changelog Command](https://whatsdiff.app/docs/cli-changelog)

[](#changelog-command)

View release notes for updated packages:

```
whatsdiff changelog guzzlehttp/guzzle 7.7.0...7.8.1 --type=composer --summary

# Or aggregate changelogs for every updated package since the last commit
whatsdiff changelog

# Aggregate between two refs, restricted to composer
whatsdiff changelog --from=v1.0.0 --to=v2.0.0 --include=composer
```

### [Audit Command](https://whatsdiff.app/docs/cli-audit)

[](#audit-command)

List known security advisories that affect your installed dependencies. Works on `composer.lock`, `package-lock.json`, and `pnpm-lock.yaml`, like `composer audit` / `npm audit` / `pnpm audit` but with whatsdiff's output formats:

```
# Audit current working-tree lockfiles, suggest the lowest safe upgrade per CVE
whatsdiff audit

# CI-friendly: exit non-zero only when a high or critical advisory is found
whatsdiff audit --fail-on=high

# Audit the lockfile at a specific commit/tag instead of the working tree
whatsdiff audit --at=v2.3.0

# Diff mode: only report advisories newly introduced between two refs
whatsdiff audit --from=v2.2.0 --to=v2.3.0

# JSON output, skip suggested-fix lookups for speed
whatsdiff audit --format=json --no-fix
```

> npm and pnpm audits query the GitHub Advisory Database once per package, so the first run on a large `package-lock.json` or `pnpm-lock.yaml` may be slow; subsequent runs are cached.

### [Configuration](https://whatsdiff.app/docs/cli-configuration)

[](#configuration)

Manage cache and other settings:

```
# View all configuration
whatsdiff config

# Disable cache
whatsdiff config cache.enabled false

# Set cache time limits (in seconds)
whatsdiff config cache.min-time 600
```

### Output Formats

[](#output-formats)

All commands support multiple output formats:

```
# JSON output
whatsdiff --format=json

# Markdown output
whatsdiff --format=markdown

# Disable cache for a single run
whatsdiff --no-cache
```

### AI Agent Auto-Detection

[](#ai-agent-auto-detection)

When `whatsdiff` is invoked from inside an AI coding agent (Claude Code, Cursor, Gemini CLI, Codex, Copilot CLI, OpenCode, Replit, Devin, Augment, Amp, Antigravity, Pi, Kiro, etc.), it detects the environment via well-known variables (powered by [`laravel/agent-detector`](https://github.com/laravel/agent-detector)) and defaults `--format` to `json` so the agent receives structured output without parsing colored text. Passing `--format=text`(or any other explicit value) always overrides the auto-detected default.

🔧 Contributing
--------------

[](#-contributing)

This project follows PSR coding style. You can use `composer pint` to apply.

All tests are executed with pest. Use `composer pest`

It's recommended to execute `composer qa` before commiting (alias for executing Pint and Pest)

### Testing

[](#testing)

This project use [Pest](https://pestphp.com/) for testing.

```
composer test
```

### Build from sources

[](#build-from-sources)

This project use [box](https://github.com/box-project/box), [php-static-cli](https://github.com/crazywhalecc/static-php-cli) and [php-micro](https://github.com/dixyes/phpmicro). A build script has been created to build the project. (tested only on macOS x86\_64)

```
composer build
```

Then you can build the binary that you can retrieve in `build/bin/`

👥 Credits
---------

[](#-credits)

**whatsdiff** was created by Eser DENIZ.

📝 License
---------

[](#-license)

**whatsdiff** PHP is licensed under the MIT License. See LICENSE for more information.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance98

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 98.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Total

19

Last Release

2d ago

Major Versions

v1.6.0 → v2.0.02025-10-28

PHP version history (2 changes)v1.0.0PHP ^8.1

v2.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/735894a4f6e39aa85e3d136abc9cf0be92da593d88731382384185293cbfe965?d=identicon)[SRWieZ](/maintainers/SRWieZ)

---

Top Contributors

[![SRWieZ](https://avatars.githubusercontent.com/u/1408020?v=4)](https://github.com/SRWieZ "SRWieZ (182 commits)")[![jsifuentes](https://avatars.githubusercontent.com/u/2856219?v=4)](https://github.com/jsifuentes "jsifuentes (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

clicli-appcomposertool

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/srwiez-whatsdiff/health.svg)

```
[![Health](https://phpackages.com/badges/srwiez-whatsdiff/health.svg)](https://phpackages.com/packages/srwiez-whatsdiff)
```

###  Alternatives

[whatsdiff/whatsdiff

See what's changed in your project's dependencies

771.2k](/packages/whatsdiff-whatsdiff)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M568](/packages/shopware-core)[laravel/framework

The Laravel Framework.

34.8k543.8M19.9k](/packages/laravel-framework)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21866.0M1.7k](/packages/drupal-core)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M418](/packages/drupal-core-recommended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
