Skip to main content
/explain-changes is a slash command that generates AI-powered explanations for any git diff. Unlike the Explain Changes button which explains changes from a completed task, this command lets you explain changes between any two git references - commits, branches, tags, PRs, staged changes, or your working directory.

Requirements

The /explain-changes command requires a git repository. Make sure you’re working in a directory that has been initialized with git.
For PR explanations, you’ll need the GitHub CLI (gh) installed and authenticated. For GitLab merge request explanations, you’ll need the GitLab CLI (glab) installed and authenticated. Unlike the Explain Changes button, this command does not require checkpoints to be enabled since it uses git references directly.

Using the Command

Type /explain-changes in the chat input. Cline will:
  1. Analyze your git history to understand what changes exist
  2. Gather context by reading relevant files
  3. Determine appropriate git references to compare
  4. Generate a diff view with streaming inline explanations

How It Works

When you use /explain-changes, Cline:
  1. Gathers context: Runs git commands to understand your repository state
  2. Identifies changes: Determines which files changed between references
  3. Reads relevant files: Builds context for better explanations
  4. Calls generate_explanation: Creates the diff view and streams explanations
  5. Displays results: Opens a multi-file diff with inline comments

Use Cases

Explain the Last Commit

The most common use case - understand what changed in the most recent commit:
/explain-changes
Cline will examine HEAD and compare it to HEAD~1, explaining all the changes in that commit. When to use:
  • After pulling changes from a teammate
  • Reviewing your own work before pushing
  • Understanding what a merge commit brought in

Explain Uncommitted Changes

Understand your work-in-progress changes before committing:
/explain-changes for my uncommitted work
Cline compares HEAD to your working directory, explaining all modified files. When to use:
  • Before staging changes to ensure they’re complete
  • After a long coding session to remember what you changed
  • To verify changes before creating a commit

Explain Staged Changes

Review exactly what you’re about to commit:
/explain-changes for my staged changes
Cline examines only the changes you’ve staged with git add. When to use:
  • Final review before committing
  • When you’ve staged a subset of changes and want to verify
  • To ensure you haven’t accidentally staged unintended files

Explain a Specific Commit

Understand any commit in your history:
/explain-changes for commit abc123
Or by commit message:
/explain-changes for the commit that added authentication
Cline will find the commit and explain what it changed. When to use:
  • Investigating when a bug was introduced
  • Understanding historical decisions
  • Learning how a feature was implemented

Explain a Range of Commits

Understand multiple commits at once:
/explain-changes for the last 3 commits
Or a specific range:
/explain-changes from v1.0.0 to v1.1.0
Cline compares the endpoints and explains all changes between them. When to use:
  • Understanding what changed in a release
  • Reviewing a series of related commits
  • Catching up after being away from the project

Explain a Pull Request

Get AI explanations for any PR:
/explain-changes for PR #42
Cline uses the GitHub CLI to fetch PR details and explain the changes. When to use:
  • Reviewing someone else’s PR
  • Understanding a PR before approving
  • Learning from PRs in open source projects
  • Preparing to give PR feedback

Explain Branch Differences

Compare any two branches:
/explain-changes between main and feature-branch
Or see what’s changed on a feature branch:
/explain-changes for everything on my-feature that's not in main
When to use:
  • Before merging a feature branch
  • Understanding divergence between branches
  • Planning a merge or rebase strategy
  • Reviewing what a colleague has been working on

Explain Changes to Specific Files

Focus on particular files or directories:
/explain-changes for src/auth in the last 5 commits
Cline filters the diff to show only relevant changes. When to use:
  • Understanding changes to a specific module
  • Tracking modifications to critical files
  • Learning how a particular feature evolved

Explain Changes Since a Tag

Understand what’s changed since a release:
/explain-changes since v2.0.0
Cline compares the tag to HEAD and explains all subsequent changes. When to use:
  • Preparing release notes
  • Understanding what’s new since a deployment
  • Identifying changes for a changelog

Explain a Merge Commit

Understand what a merge brought in:
/explain-changes for the merge from feature-x
Cline explains all the changes that were merged. When to use:
  • After merging a large feature branch
  • Understanding what a merge conflict resolution changed
  • Reviewing what others merged into main

Explain Stashed Changes

Review what’s in your stash:
/explain-changes for my stashed changes
Cline examines stash@ and explains its contents. When to use:
  • Before applying a stash
  • Deciding whether to keep or drop a stash
  • Remembering what you stashed days ago

Interactive Comments

Just like the Explain Changes button, the generated comments are fully interactive:

Reply to Comments

Ask follow-up questions directly in any comment thread:
  • “Why was this function refactored?”
  • “What’s the purpose of this new parameter?”
  • “Could this cause any breaking changes?”
  • “Is this change backwards compatible?”
The AI responds with context-aware explanations, understanding both the code and the broader changes.

Move to Main Chat

Click the title area of any comment thread to move that conversation into Cline’s main chat. This is useful when:
  • You want Cline to make additional changes
  • The discussion reveals something that needs more investigation
  • You want to continue working with full Cline capabilities
  • A review comment sparks an idea for improvements

The generate_explanation Tool

Under the hood, /explain-changes uses the generate_explanation tool with these parameters:
ParameterDescriptionExample
titleDescriptive title for the diff view”Changes in commit abc123”
from_refGit reference for the “before” stateHEAD~1, main, origin/main
to_refGit reference for the “after” state (optional)HEAD, develop
If to_ref is omitted, the tool compares against the working directory.

Tips for Better Explanations

  1. Be specific: Instead of just /explain-changes, tell Cline what you want explained. “Explain the authentication changes in PR #42” gives better context than just “explain PR #42”.
  2. Ask about intent: The AI can explain not just what changed but why. Ask follow-up questions like “What problem was this solving?”
  3. Chain with other commands: Use /explain-changes after investigating an issue to understand potential fixes, then continue with Cline to implement improvements.
  4. Use for learning: When onboarding to a new codebase, use /explain-changes on significant PRs or commits to understand how features were built.