Skip to content

00 / Riffle

Riffle Available now · Version 2.3.2

Compare files.
Resolve conflicts.

Compare files, resolve merge conflicts, and review Git changes in one Mac app. Read the diff, edit a file, or stage the changes you want to keep. Riffle works with Git, Tower, and the command line, with a Claude Code plugin for reviewing your agent's edits.

0x / The review

Review a whole set of changes

Open a working tree, staged changes, branch, commit, or pull request as a file list beside the diff.

FIG. 01 / Git review
Browse changed files, read the selected diff, and stage individual Git hunks without leaving the review
$29.99
One-time license
14 days
Free Pro trial
Free
Two-way file comparisons
macOS 14+
Minimum macOS version

01 / What's New

2.0

Review changes
and act on them

Riffle 2.0 adds staging from the review window, file history and blame, clipboard comparisons, and a pixel inspector. It is a free update for existing license owners.

N01

Stage changes from the review

Stage, unstage, or discard whole files or individual Git hunks while reading a working-tree review.

  • Partly staged files are marked in the file list
  • Discard asks for confirmation and sends files to the Trash
N02

Find your way through larger reviews

View changed files as a flat list, grouped by directory, or in a tree. Filter the list and step through changes across files.

  • Each file shows whether its changes are staged or unstaged
  • The footer shows your current file and change number
N03 ⌥ ⌘ B

See who changed each line

Turn on blame beside the diff to see the author and commit for each line. Click a block to open its commit.

  • Each side shows the history for its own revision
  • Blame stays off until you enable it
N04 ⌥ ⌘ Y

Compare with an earlier version

Open a file's history beside its diff. Select a commit to compare that version with the current file.

  • See the author, date, and message for each commit
  • Historical versions stay read-only
N05

Browse the commits in a review

Switch a branch or pull-request review from Files to History. Read each commit's message and see the files it changed.

  • Open any commit as a separate review
  • Filter the history to find a commit
N06 ⇧ ⌘ N

Compare pasted text

Open an empty comparison and paste text into each side. The diff updates as you type, without saving temporary files.

  • Use the same highlighting and navigation as a file diff
  • Open a file on either side, or save pasted text when needed
N07 ⌥ ⌘ I

Inspect image differences pixel by pixel

Hover over an image comparison to see pixel coordinates, the color on each side, and the difference between them.

  • Check color spaces and channel values
  • Copy a color as hex, CSS, RGBA, or SwiftUI code
N08

Get notified when a live review changes

Leave a review Live and enable notifications to hear when files change, a branch moves, or a merge starts.

  • Notifications are grouped and only appear while Riffle is in the background
  • Click a notification to return to the review

Also in Riffle 2.0

  • Undo merge resolutions with ⌘Z, or revert the whole merge
  • Choose syntax highlighting for pasted text and files without a recognized extension
  • Save either side of a comparison to a new file
  • Fold and unfold unchanged sections while reading a diff
Read the changelog

0x / Gallery

See Riffle at work

File comparisons, merge conflicts, history, and image differences in Riffle.

FIG. 01 / Diff
A Swift file comparison with highlights inside changed lines
FIG. 02 / Merge
Resolve a three-way merge and undo decisions as needed
FIG. 03 / Pasted text
Paste text into both sides of an empty comparison
FIG. 04 / File history
Select an earlier revision from the file history
FIG. 05 / Blame
See who last changed each line and open the related commit
FIG. 06 / Commit history
Browse the commits and files in a branch or pull request
FIG. 07 / Folding
Fold unchanged lines to focus on the differences
FIG. 08 / Image comparison
Compare image quality and inspect pixel colors
FIG. 09 / Light theme
Catppuccin Latte, one of the bundled light themes
FIG. 10 / Dark theme
Synthwave ’84, with a separate theme choice for dark mode

02 / Features

Compare, review,
and resolve

Check a small edit, work through a merge, or review a branch before committing it.

F01

Compare two files

Read files side by side or in a unified diff, with highlighting inside changed lines. Edit and save writable files directly in the comparison.

F02

Resolve merge conflicts

Compare the base, local, and remote versions, choose the lines to keep, and edit the result. Review automatic resolutions and undo any decision.

F03

Compare folders

Find added, removed, and changed files across two folders, then open a file to inspect its differences.

F04

Use your existing tools

Launch Riffle from Git, Tower, or the command line. The Claude Code plugin and MCP server can open reviews of your agent's changes.

F05

Read code in a familiar theme

Syntax highlighting covers 47 languages, with 62 bundled themes. Import a theme, define another language, or install extras from the gallery.

F06

Compare images

View images side by side, overlay them, or highlight their differences. Zoom together and inspect individual pixel colors.

F07

Stage as you review

Stage or unstage whole files or individual Git hunks from a working-tree review. Discard asks for confirmation and sends files to the Trash.

F08

Look up file history

Compare a file with an earlier revision and use blame to see who last changed each line. Open the related commit from the diff.

F09

Follow changes as they happen

Keep a review Live to update it as the repository changes. Step through changes across files, and enable notifications while working in another app.

03 / Feature details

A closer look at
how Riffle works

Choose a feature to see its controls and options.

Choose or combine lines Control each merge resolution
Undo any decision Resolutions and edits share one history
Review automatic merges Change an automatic resolution
Word-level highlighting Find changes within a line
Whitespace and line wrapping See spaces, tabs, and long lines
Name and color tabs Keep several reviews organized
Edit and save The comparison updates after saving
Writable files only Revisions and snapshots stay read-only
Revert edits Return to the saved file
Stage individual hunks Choose which changes to commit
GitHub pull requests Open with riffle review pr 132
Step across files ⌘↓ continues to the next file
Compare earlier versions Select a revision from file history
Blame beside the diff See the author and open the commit
Browse review commits Open a commit as its own review
git difftool --dir-diff and --wait supported
Tower compare and merge Choose Riffle in Tower
Finder, editor, terminal Open the file or its folder
62 themes, plus yours VS Code, shiki, and TextMate files
Add a language Define its syntax in JSON
Browse the gallery Install extra themes and languages
Feature /07 Select a feature

0x / Languages

Syntax highlighting for 47 languages

Riffle recognizes common file extensions, filenames, and script headers. Unrecognized files open as plain text; you can choose a language from the syntax menu or add a definition.

Web and markup — 13

  • HTML
  • CSS
  • SCSS / Sass
  • JavaScript
  • TypeScript
  • JSON
  • XML
  • Markdown
  • PHP
  • Svelte
  • Vue
  • Astro
  • Twig

Systems and compiled — 16

  • Swift
  • Objective-C
  • C
  • C++
  • C#
  • Rust
  • Go
  • Zig
  • Java
  • Kotlin
  • Scala
  • Dart
  • Haskell
  • Erlang
  • Elixir
  • Clojure

Scripting — 6

  • Python
  • Ruby
  • Perl
  • Lua
  • R
  • Shell

Data and query — 6

  • YAML
  • TOML
  • INI
  • SQL
  • GraphQL
  • Protocol Buffers

Build and infrastructure — 6

  • Dockerfile
  • Makefile
  • CMake
  • nginx
  • Apache
  • HCL / Terraform

Hover over a language to see its file extensions.

Add another language

Define a language with a JSON file listing its extensions, keywords, comments, and strings. You can also map an extension to an existing language, such as .blade.php to PHP. Open comparisons update when you add a definition.

The gallery in Settings ▸ Syntax includes extra definitions for Blade, Liquid, Jinja, PowerShell, Julia, Solidity, and other languages. New entries can be added without an app update.

Choose any of the 62 bundled themes, or import a VS Code, shiki, or TextMate theme.

04 / AI Agents

Review the code
your agent changed

The Claude Code plugin opens a review of the files your agent edited. Other MCP clients can use the server to open diffs, reviews, or merges on request. Automatic agent reviews use the free two-way comparisons.

Before and after

Compare against the file before the edit

The plugin copies each file before the agent first edits it. The review compares that copy with the current file, so existing uncommitted changes are already part of the starting point.

It also works outside Git repositories and distinguishes new files from edited ones.

Changed files appear in one review window, with a file list beside the selected diff.

Example review

git diff everything uncommitted

  • auth.ts changed before the agent started
  • config.ts
  • routes.ts

riffle only the agent's edits

  • config.ts
  • routes.ts

Setup

Install Riffle, then add and load the Claude Code plugin. Automatic agent reviews are free.

01  Install Riffle

brew install --cask skulkworks/tap/riffle

Launch Riffle once to set up the command-line tool.

02  Add the marketplace

/plugin marketplace add skulkworks/riffle-agent

Run this inside Claude Code to register the plugin marketplace.

03  Install the plugin

/plugin install riffle@skulkworks

Installs the automatic review hooks and the MCP server.

04  Load the plugin

/reload-plugins

Or start a new session. Use /plugin and /mcp to check that it loaded.

To use the MCP server without the automatic reviews, run claude mcp add riffle -- npx -y riffle-mcp@latest. Other MCP clients can launch npx -y riffle-mcp@latest directly.

Automatic

Automatic reviews

The plugin takes local snapshots around the agent's edits and opens the results in Riffle.

Before the first edit

Copy the file before its first edit in the session. Later changes are still compared with that starting copy.

When the turn ends

Open a review of the changed files, with each original snapshot beside the current file.

When later turns finish

Update the same review with new edits and files, keeping earlier changes and your reading position. Name or color tabs to distinguish several sessions.

If no files changed

Skip files whose contents are unchanged, and open no review if there are no changes.

When the session ends

Delete the temporary snapshots. The plugin reads your files locally to build the comparisons.

On request

Open comparisons on request

Four MCP tools let an agent open a specific comparison, review, or merge for you.

open_diff

Open a comparison of two files or folders. Folder comparisons require Pro.

open_review

Open a Git working tree, staged changes, branch, commit, or pull-request review. Requires Pro.

review_agent_changes

Reopen the review of changes made during the current session, compared with the original snapshots.

request_merge

Open a three-way merge and wait for you to save the resolved result. Requires Pro.

Example requests

Ask the agent to open the comparison you need while you work.

“Refactor the auth module, then open the changes for me to review.”

The plugin opens a review when the turn ends. Check the changes, edit writable files if needed, and continue the session in the same review window.

via automatic

“Open a review of PR 214 so I can read it before we merge.”

Riffle fetches the pull request through the gh command-line tool and opens its changed files. You can add comments and submit a review in the app.

via open_review

“Diff the config against the backup you made earlier.”

Riffle opens the two files side by side so you can inspect the differences.

via open_diff

“Open this rebase conflict in Riffle so I can resolve it.”

Riffle opens the merge and the agent waits for you to save your resolution.

via request_merge

The plugin is open source under the MIT license. View its review hooks and MCP server on GitHub.

View the plugin on GitHub

0x / Pricing

One price, no subscription

Try every feature free for 14 days. Two-way file and image comparisons stay free afterwards. Pro adds three-way merge, folder comparison, and Git reviews for $29.99 once.

Feature
Free $0 After the 14-day trial
Pro $29.99 Pay once, use on 3 Macs Buy Pro
Two-way file comparison
Edit and save files in the diff
Image comparison
Syntax highlighting and themes
Git, Tower, and command-line integration
Three-way merge
✗
Folder comparison
✗
Review Git branches, commits, and pull requests
✗
Automatic updates

05 / FAQ

Questions and answers

Comparisons, integrations, pricing, and getting started.

Download Riffle from this page or install it with Homebrew using the command below. The app checks for updates automatically.

Pro costs $29.99 once and covers three Macs. There is no subscription. You can manage your activations in the customer portal.

Two-way file diffs, image comparisons, editing writable files, syntax highlighting, themes, and command-line integration. Pro adds three-way merge, folder comparison, and Git reviews.

Yes. Review a working tree, staged changes, a branch, a commit, or a GitHub pull request as a file list beside the diff. Pull requests are fetched using the gh command-line tool. Git reviews are included in the trial and Pro.

Yes, if the comparison points to a writable file. Edit in the pane and press ⌘S to save and update the diff. Historical revisions, temporary Git copies, and before-edit snapshots stay read-only. Riffle preserves the file's encoding and line endings, and asks before overwriting a file changed elsewhere.

Yes. Settings → Syntax lets you import VS Code, shiki, and TextMate themes, or define a language with a JSON file. You can also install themes and languages from the gallery.

Yes. Settings → Integration can install the command-line tool, configure Git diff and merge, and register Riffle with Tower. Other clients can use Riffle through Git settings or a custom command. See the integrations guide for setup steps.

Yes. The Claude Code plugin takes a snapshot before the agent first edits each file, then opens a review of those changes. Later turns update the same review. An MCP server also lets agents open comparisons, Git reviews, and merge windows. Setup commands are in the AI Agents section above.

The plugin's automatic reviews use free two-way diffs. A Pro license is needed when an agent opens a folder comparison, Git review, or three-way merge.

Riffle is available as a direct download or through Homebrew. The download is signed with an Apple Developer ID, notarized by Apple, and includes automatic updates.

macOS 14 Sonoma or later, on Apple silicon or Intel.

Every feature is available for 14 days from first launch, with no credit card required. Afterwards, keep the free comparisons or buy Pro for merge, folder comparison, and Git reviews.

06 / Download

Open your next diff in Riffle

Download Riffle and compare a pair of files, review a branch, or work through a merge. Install the Claude Code plugin if you want automatic reviews of your agent's edits.

brew install --cask skulkworks/tap/riffle

Version 2.3.2 · Apple silicon and Intel · macOS 14 or later · 14-day Pro trial, then free two-way comparisons. · Changelog · Integrations

Listed on MacNative

07 / Contact

Get in touch

Have a question or a feature idea? Send a message below. For a bug report, include your macOS version, Riffle version, and the steps that caused the problem.

Location Colorado, USA
Community Join the Discord