---
title: Changed command
description: Show which workspace packages changed since a commit or tag.
---
> ## Documentation Index
> Fetch the complete documentation index at: https://melos.invertase.dev/llms.txt
> Use this file to discover all available pages before exploring further.

<Info>
  Supports all [Melos filtering](/filters) flags, except `--diff`, which this
  command takes as its argument.
</Info>

Lists the local packages that have changed since a given commit or tag.

```bash
melos changed
```

## What counts as changed

A package counts as changed when a file inside its directory changed. Melos does
not attribute changes outside the workspace packages to any package. Examples
include the root `pubspec.yaml` file and the CI configuration.

A package directory contains its nested packages. A change to the
`packages/a/example` directory is also a change to the `packages/a` directory.
With `useRootAsPackage` enabled, any change in the repository is a change to the
root package.

## Default comparison

Without an argument, Melos compares each package against its own latest release
tag. The output is the list of packages that have changes to release.

Packages that have no release tag yet have never been released. That includes
packages without a version in their `pubspec.yaml` file. Melos always lists those
packages as changed.

## Compare against a commit or tag

Pass a commit or tag to compare against as an argument:

```bash
melos changed v1.2.0
melos changed 4ba1b8f
```

Specify a range of commits using the git shorthand syntax
`START_COMMIT..END_COMMIT` and `START_COMMIT...END_COMMIT`:

```bash
melos changed HEAD~5..HEAD
```

## Include dependents

To also list the packages that depend on the changed packages, use
`--include-dependents`. For example, build only the apps that a change in a
shared package affects:

```bash
melos changed --include-dependents
```

## Format output

Format the output with the same options as the
[`list`](/reference/commands/list) command.

## --long (-l)

Shows extended or verbose information. Defaults to `false`.

```bash
melos changed --long
melos changed -l
```

## --relative (-r)

When printing output, uses package paths relative to the root of the workspace.
Defaults to `false` (or full paths).

```bash
melos changed --relative
melos changed -r
```

## --parsable (-p)

Shows parsable output instead of a column view. Defaults to `false`.

```bash
melos changed --parsable
melos changed -p
```

## --json

Shows information as a JSON array. Defaults to `false`.

```bash
melos changed --json
```

## --graph

Shows the dependency graph as a JSON-formatted adjacency list. Defaults to
`false`.

```bash
melos changed --graph
```

## --gviz

Shows the dependency graph in Graphviz DOT language. Defaults to `false`.

```bash
melos changed --gviz
```

## --mermaid

Shows the dependency graph as a Mermaid diagram. Defaults to `false`.

```bash
melos changed --mermaid
```
