# atmos helm diff

Show a real unified diff between the chart Atmos would render and a baseline —
the currently deployed release, a local manifest file, or the manifests in your
GitOps deployment repository. The chart is rendered client-side with the Helm Go
SDK and compared with the [helm-diff](https://github.com/databus23/helm-diff)
engine, so changes read as familiar `+`/`-` lines. Secret values are redacted.

## Usage

```shell
atmos helm diff <component> --stack <stack> [options]

# Diff against the deployed release (requires cluster access).
atmos helm diff monitoring -s plat-ue2-dev

# Diff against a local baseline manifest (offline, no cluster).
atmos helm diff monitoring -s plat-ue2-dev --from-manifest=current.yaml

# Diff against the GitOps deployment repository (offline, git access only).
atmos helm diff monitoring -s plat-ue2-dev --against=target
```

## Baselines

`diff` compares the freshly rendered chart against one baseline, selected by flag
precedence (`--from-manifest` → `--against` → deployed release):

- **Deployed release (default)**
  The manifest of the currently installed release, read from the cluster. A release that does not exist yet shows every object as added. This is the only mode that needs cluster access.
- **`--from-manifest=<path>`**
  A local baseline manifest file. Fully offline — no cluster, no git.
- **`--against=target[:<name>]`**
  The manifests currently published in a non-cluster 
  provision target
   (e.g. a git deployment repository). Reads the target's current state and diffs against it — the producer side of a GitOps workflow. Offline (git access only). Without 
  :<name>
   the 
  provision.default
   target is used.

## Flags

- **`--stack`, `-s` (required)**
  Atmos stack.
- **`--against=<source>` (optional)**
  Baseline to diff against: 
  release
   (the deployed release, default) or 
  target[:<name>]
   for a git deployment-repo provision target.
- **`--from-manifest=<path>` (optional)**
  Diff against a local baseline manifest file instead of the cluster (offline).
- **`--context=<n>` (optional)**
  Number of unchanged context lines shown around each change. Defaults to 
  3
  .
- **`--all` / `--affected` / `--include-dependents` (optional)**
  Process multiple Helm components in dependency order.

:::note
[`atmos helm plan`](/cli/commands/helm/plan) is an alias for `diff`. To render the
chart without comparing, use [`atmos helm template`](/cli/commands/helm/template).
The diff uses the helm-diff library directly — you do **not** need to install the
`helm-diff` CLI plugin.
:::
