Skip to content

Smart Squash

Smart Squash analyzes your commits and generates a single, meaningful commit message when squashing.

Smart Squash demo

  1. Navigate to the Commits tab
  2. Select the commit you want to squash into (all commits above it will be squashed)
  3. Press S to open the Smart Squash popup
  4. AI analyzes all commits and generates a combined message
  5. Press Enter to apply or Esc to cancel

The AI considers:

  • Each commit’s message and body
  • The overall intent of the changes
  • Your current branch name for context

Smart Squash follows Conventional Commits:

<type>(<scope>): <description>
<body explaining the combined changes>

The AI determines the most appropriate type based on the commits being squashed:

  • If most commits are feat, the squashed message uses feat
  • Mixed commits get a type reflecting the primary intent
  • Breaking changes are preserved with !
KeyAction
SOpen Smart Squash popup (in Commits tab)
EnterApply squash
EscCancel

Clean up your work-in-progress commits:

fix: typo
wip: trying something
fix: actually fix it
feat: add login button

Becomes:

feat(auth): add login button

Squash fixup commits from review feedback into the original implementation.

Combine related commits before merging to keep main branch history clean.

The commit you select becomes the base — all commits from HEAD down to (and including) that commit will be squashed.

Always read the generated message. The AI synthesizes multiple commits, so verify it captures the overall change accurately.

For large numbers of commits, consider squashing in batches. This gives better results than squashing 20+ commits at once.