RibbonDiff — User Guide

Step-by-step help for the RibbonDiff macOS app.

👑 marks a Pro feature (available in Pro Trial or Pro Lifetime). Click the crown for details.

RibbonDiff is a side-by-side, editable diff tool for macOS. The current app includes the Pro-only Workspace, Workspace file search, and Version History workflows, so you can keep, search, and organize a project in a shared sidebar, jump between related comparisons without rebuilding context, and review Git-backed history snapshots directly inside the app. The editor still supports live diffing, per-pane Find, syntax highlighting, adjustable typography, and the familiar center Ribbon that links corresponding change blocks as you scroll.

Contents

1. Quick start

  1. Start with text, files, or a Workspace

    • Paste text into Text 1 (left / Original) and Text 2 (right / Modified), or
    • Open files into the left and right panes from Finder, drag and drop, the menu bar, or Terminal 👑.
    • Open a folder or an existing .rd-workspace document in the Workspace sidebar to compare related files without leaving the same project context 👑.
    • Use Open Workspace… (⇧⌘O) from the File menu to open the Workspace document picker in a new standalone window, or use the sidebar's Open Folder or Workspace File action to bind a workspace to the current window 👑.
  2. Use Workspace for project-based review 👑

    • Select a file in the Workspace sidebar to open it directly into the left side of the comparison.
    • Option-click a file in the sidebar to open it in another tab in the same window.
    • Use Find in Workspace… (⇧⌘F) to search text across the open Workspace, jump directly to matching lines, or Option-click search results into another tab.
    • Use the sidebar action menu or a folder context menu to add files and folders, then finish the inline rename.
    • Command-click or Shift-click to select multiple Workspace items for drag moves or confirmed Trash-backed delete.
    • Click a file that is already open to switch straight to its existing tab.
  3. Edit freely or inspect history

    • Live panes are editable. Historical previews opened through Version History 👑 are read-only.
    • Diff highlighting appears once both sides have content and updates automatically as you type, paste, open files, or switch history snapshots.
    • When a comparison first becomes available, RibbonDiff automatically jumps to the first changed block (if any).
  4. Navigate, review, and save

    • Use the center Ribbon and the Next Change / Previous Change controls to move through large diffs quickly.
    • Save the active pane when you are ready, or save a Workspace document so you can restore the same project tree and expansion state later 👑.
    • If an opened file changes on disk, RibbonDiff now reloads it automatically, or asks before replacing unsaved in-app edits.

2. Interface at a glance

The screenshot above shows the core comparison layout. The same window can also show the Pro-only Workspace sidebar, Workspace file search, and Version History controls when those workflows are active.

Toolbar (top controls row)

The top controls row acts as a lightweight toolbar for window-level actions. Choose View → Hide Toolbar / View → Show Toolbar or press ⌥⌘T to hide or reveal this row. RibbonDiff remembers this visibility setting across launches.

Window actions

Window chrome controls

Workspace sidebar

Change navigation

Pane header (each side)

Each pane has a header row containing:

Version History controls

Window / tab title: when either pane is opened from a file, the macOS window and tab title follows that file name. If both panes are file-backed, the left file name wins. If neither pane is file-backed, the title falls back to RibbonDiff. In Workspace-based sessions, titles behave more naturally as you switch files and tabs. When a file is supplying the title, macOS also shows the standard proxy icon and path menu in the title bar.

The editors + Ribbon

3. Comparing text (how the diff is shown)

RibbonDiff highlights changes using configurable colors:

Diff highlights (line background tints, change markers, and the center Ribbon) appear once both panes have content. Clearing or unbinding either pane hides the diff until both sides have text again. When a comparison first becomes available (for example after opening files, selecting a Workspace file, or pasting into the second pane), RibbonDiff automatically scrolls to the first changed block (if any).

When you compare current content against Version History, RibbonDiff keeps the current file and the historical preview aligned so add/remove highlighting continues to read naturally.

For large diffs, you can jump directly between changed blocks without manually scrolling.

How to use

What counts as a “change”

Notes

4. Workspace 👑

Workspace is available in Pro (Pro Trial or Pro Lifetime). It gives RibbonDiff a project-aware sidebar so you can browse files and compare them without rebuilding context for every new diff.

What Workspace does

Opening a workspace source

Browsing and opening files

Searching Workspace files

Managing files and folders from the sidebar

Selecting and moving Workspace items

Workspace documents

Sidebar cues and Git-aware hints

Note: Workspace is a Pro feature. In Limited mode, RibbonDiff shows the Pro prompt instead of opening the sidebar. See Access levels.

5. Version History 👑

Version History is a Pro-only Workspace feature: for files inside a Git-backed Workspace, RibbonDiff can browse branches and revisions directly inside the app and compare the current file against read-only historical snapshots.

What you can do

Typical workflow

  1. Open a file from a Git-backed Workspace.
  2. Choose a branch, if needed.
  3. Choose a historical revision from the version selector.
  4. Review the read-only snapshot against the current file, using the diff colors and Ribbon to see what changed.

Notes

6. Opening files and folders 👑

All opening workflows in this section require Pro (Pro Trial or Pro Lifetime). That includes drag and drop, File → Open…, Finder opens, Terminal/CLI opens, and opening a Workspace. In Limited mode, RibbonDiff compares typed or pasted text and shows the Pro prompt if you try one of these workflows.

Drag and drop (Finder → pane)

Overwrite protection: RibbonDiff avoids overwriting text accidentally.

Open from the menu (⌘O)

Open a Workspace 👑

Open from Finder (double-click / “Open With…”)

Open from Terminal (CLI)

You can open files from the command line using macOS's built-in open command:

open -a RibbonDiff /path/to/old.txt /path/to/new.txt

If your file paths contain spaces, quote them:

open -a "RibbonDiff" "Old File.txt" "New File.txt"

Tab/window behavior (overwrite protection)

Advanced: reuse modes (CLI wrappers)

Some CLI wrappers can request a different reuse policy when opening files. RibbonDiff reads this policy from an optional control file included in the same open request.

Note: When using Reuse or Force Reuse, opening 3+ files (multiple pairs) may reuse the same tab repeatedly. In that case, the last pair wins. Use Automatic if you want each pair to open in its own new tab/window.

Control file requirements

Example (create a control file, then open two files):

echo '{"mode":"reuse","version":1}' > /tmp/.ribbondiff-cli--control.json
open -a RibbonDiff /tmp/.ribbondiff-cli--control.json old.txt new.txt

7. Saving files and workspaces 👑

Saving files and saving Workspace documents require Pro (Pro Trial or Pro Lifetime). RibbonDiff saves per pane (whichever pane is active). Historical previews from Version History are read-only; save the live file instead.

Save (⌘S)

Save As (⇧⌘S)

Saving Workspaces

Line endings and encoding

RibbonDiff focuses the diff on text content, not file storage details. Line endings and character encodings are normalized internally, so two files can compare as identical even if they use different line-ending styles or different Unicode encodings.

Line endings

Text encoding

Supported encodings

These options appear in the per-pane Encoding badge menu:

Category Encodings
Unicode UTF-8, UTF-8 (with BOM), UTF-16, UTF-16 Little Endian, UTF-16 Big Endian, UTF-32, UTF-32 Little Endian, UTF-32 Big Endian
Japanese Shift_JIS, EUC-JP, ISO-2022-JP, x-mac-japanese
Chinese GB18030, GBK, GB2312, HZ-GB-2312, Big5, Big5-HKSCS
Korean EUC-KR, CP949
Western Windows-1252, MacRoman, Windows-1250 (Central European), Windows-1251 (Cyrillic), Windows-1253 (Greek), Windows-1254 (Turkish), Windows-1257 (Baltic), ISO-8859-1 (Latin-1), US-ASCII
Middle Eastern Windows-1255 (Hebrew), Windows-1256 (Arabic)
Southeast Asian Windows-874 (Thai), Windows-1258 (Vietnamese)

Tip: When you are comparing clipboard text (not a file), the pane defaults are typically LF + UTF-8 for saving.

8. When files change on disk

RibbonDiff handles externally changed files gracefully.

9. Unsaved changes behavior

RibbonDiff tracks unsaved edits independently for each pane.

Note: The close prompt is intentionally “no-save” — save the relevant pane(s) first using ⌘S or ⇧⌘S 👑.

10. Find (search) in either pane

RibbonDiff uses per-pane Find fields in the header row, while still honoring the standard macOS Find shortcuts for the active pane.

Basic use

  1. Click in the left or right editor to make that pane active.
  2. Press ⌘F to focus that pane's Find field in the header. If the editor title bar is hidden, RibbonDiff shows it first. If text is selected in the editor, RibbonDiff uses that selection as the query. Otherwise, if that pane's Find field is empty, RibbonDiff can prefill it from the standard macOS shared Find string.
  3. Type your query. Case-insensitive matches are highlighted as you type.
  4. Press Return or ⌘G for the next match, and ⇧Return or ⇧⌘G for the previous match. Find navigation wraps around when you reach the end or beginning of the pane.

Keyboard shortcuts

Notes

Find in Workspace 👑

When a Workspace is open, choose Find → Find in Workspace… or press ⇧⌘F to search across readable text files in that Workspace. Results appear in the Workspace sidebar, grouped by file, with Git-modified files marked by M. Clicking a matching line opens the file in the left editor and keeps focus on that match; Option-click opens the result in another tab.

11. Syntax highlighting

RibbonDiff includes built-in syntax highlighting and automatic language detection.

Auto vs manual

Supported languages (badge)

Markdown fenced code blocks

In Settings you can choose whether Markdown fenced blocks (``` / ~~~) are highlighted using the language tag after the fence (for example ```swift).

12. Toolbar, title bar, tab bar, wrap, and Ribbon width

Toolbar visibility

Editor title bar visibility

Tab bar visibility

Word wrap

Important: Wrap is per window, not global. Settings only set the default for newly opened editor windows.

Whitespace filters

Line numbers

Enable/disable line numbers independently for:

You can change this in Settings.

Ribbon Column width

Font, font size and line spacing

RibbonDiff lets you adjust the editor typography so long comparisons are easier on your eyes.

Editing behavior

13. Preferences and themes

Open Settings from the app menu:

General

Appearance

The Appearance pane also shows a Current Theme row at the top. Click it to jump straight to the Theme pane. If your live settings no longer match the selected theme, this row can show a Modified badge.

System backgrounds automatically follow macOS Light/Dark Mode.

Syntax

The Syntax pane also shows the current theme at the top so you can jump to the Theme pane while editing colors.

Changes are saved automatically.

Theme

RibbonDiff supports:

On first launch, RibbonDiff selects the built-in Vivid theme by default. Reset to Defaults also returns to Vivid.

Theme list tips:

Theme actions and context-menu commands can include:

If you switch to another theme while the current theme has unsaved changes, RibbonDiff asks for confirmation first.

Licenses

Pro

If you previously purchased RibbonDiff as a paid App Store download, it should automatically unlock Pro Lifetime on the same Apple ID. If it does not, open RibbonDiff → Settings… → Pro and use Restore Purchases.

14. Importing and exporting themes (advanced)

Themes can be imported/exported as JSON.

Import a theme

  1. Open Settings → Theme
  2. Click Import Theme…
  3. Choose a theme .json file

The imported theme is added to User Themes and applied.

Export a theme

  1. Open Settings → Theme
  2. Click Export Theme…
  3. Enter a theme name (stored in the JSON as Name)
  4. Choose a save location

The Export button saves the current theme's settings to a JSON file.

The exported JSON includes:

15. Keyboard shortcuts reference

Choose Help → RibbonDiff Help (⌘?) to open the built-in shortcut cheat sheet window, which groups common Window, Files, Find, View & Navigate, and Editor shortcuts in one place.

Action Shortcut Notes
New Window ⌘N File menu; opens a new standalone comparison window with the Workspace sidebar closed
New Window with Sidebar ⇧⌘N File menu; opens a new standalone comparison window with the Workspace sidebar open
New Tab ⌘T Creates a new tabbed comparison window
Open… 👑 ⌘O Opens into the active pane; Pro-only
Open Workspace… 👑 ⇧⌘O Opens the Workspace document picker for a folder or .rd-workspace document in a new window; Pro-only
Save 👑 ⌘S Saves the active pane
Save As… 👑 ⇧⌘S Saves the active pane to a new file
Save Workspace / Save Workspace As… 👑 ⇧⌥⌘S File menu; saves a folder-backed workspace, or creates another .rd-workspace document when one is already open
Close Window/Tab ⌘W Prompts if there are unsaved changes
RibbonDiff Help ⌘? Help menu; opens the shortcut cheat sheet window
Increase Text Size ⌘= Increases the shared editor text size for both panes (same key as ⌘+ on many keyboards)
Decrease Text Size ⌘- Decreases the shared editor text size for both panes
Reset Text Size ⌘0 Resets the shared editor text size
Find… ⌘F Focuses the active pane's Find field
Find Next ⌘G Active pane
Find Previous ⇧⌘G Active pane
Use Selection for Find ⌘E Copies the selected text from the active editor into the active pane's Find field
Find in Workspace… 👑 ⇧⌘F Find menu; opens Workspace file search and focuses the search field
Indent Tab Indents the current line or selected lines; with no line selection, inserts one indent level
Outdent Shift-Tab Outdents the current line or selected lines
Indent Selection ⌘] Indents the current line or selected lines
Outdent Selection ⌘[ Outdents the current line or selected lines
Previous Change ⌥⌘↑ Jump to the previous changed block (active pane)
Next Change ⌥⌘↓ Jump to the next changed block (active pane)
Show/Hide Toolbar ⌥⌘T View menu; toggles the top controls row (Wrap, Whitespace, Swap, Clear) and remembers the setting across launches
Show/Hide Editor Title Bar ⌃⌘T View menu; toggles the pane-header row that contains titles, Find, badges, reload, and clear controls
Show/Hide Tab Bar ⇧⌘T File menu; toggles the native macOS tab strip. The shortcut may not always be shown next to the menu item, but it still works.
Show File Tree 👑 ⌘1 View menu; switches the Workspace sidebar to the file tree
Show File Search 👑 ⌘2 View menu; switches the Workspace sidebar to file search
Toggle Wrap ⌃⌘W View menu, window-local
Toggle Whitespace Filters ⌃⌘I View menu; turns Ignore indentation style, Ignore leading whitespace, and Ignore trailing whitespace on or off together
Swap Panes ⌃⌘S View menu; swaps both panes and their file bindings
Clear Both Panes ⌃⌘K Edit menu; clears both panes

Tip: Pressing Return in an editor continues the current line's indentation automatically. Open Workspace… (⇧⌘O) opens a workspace in a new window; use the sidebar button or drop target when you want to bind a workspace to the current window instead.

16. Troubleshooting

“Can't open file”

Common reasons:

Fix:

Workspace button stays collapsed or shows an upgrade prompt

Workspace file search has no results

Version History is not available

A file changed on disk

Opening from Finder/Terminal created a new tab

When you open files from Finder (double-click / Open With…) or from Terminal (open -a RibbonDiff …), RibbonDiff protects your current comparison.

Workspace file management did not complete

Open Workspace… opened a new window

Text looks garbled (wrong encoding)

If a file opens with unreadable characters (mojibake), it was likely decoded with the wrong encoding.

Find field or pane badges disappeared

The editor title bar may be hidden.

Wrap / Whitespace / Swap / Clear disappeared

The top toolbar row may be hidden.

⇧⌘T works, but the File menu does not show the shortcut

“Theme Import Failed”

Syntax highlighting looks disabled

RibbonDiff may skip syntax highlighting for very large texts to keep editing responsive.

17. Access levels (Limited and Pro)

RibbonDiff is free to download and use in Limited mode for comparing typed or pasted text. Opening or saving files, using Workspace and Workspace file search, and using Version History are Pro workflows. Because Version History is available only within Workspace, it is also Pro-only.

Feature Limited (Free) Pro Trial (7 days) Pro Lifetime
Compare typed / pasted text
Save pane contents to disk (⌘S / ⇧⌘S)
Restore Purchases
Open files (File → Open…, drag & drop, Finder, Terminal)
Workspace sidebar and file search; open/save Workspace documents
Version History for Git-backed Workspace files

In Limited mode: if you try to open or save files, open or save a Workspace, use Workspace file search, or use Version History, RibbonDiff shows the Pro prompt.

7-day Pro Trial: the trial starts when you tap Start 7-Day Pro Trial and lasts 7 days. It does not auto-renew. When it ends, RibbonDiff returns to Limited mode unless you unlock Pro Lifetime.

Start the Pro Trial

  1. Open RibbonDiff → Settings… and select Pro.
  2. Click Start 7-Day Pro Trial.

Unlock Pro Lifetime

Open RibbonDiff → Settings… → Pro and click Unlock Pro Lifetime. This is a one-time purchase tied to your Apple ID.

Restore purchases

If you previously purchased Pro Lifetime (or bought RibbonDiff when it was a paid App Store app), restore access from Settings → Pro → Restore Purchases. Make sure you are signed into the same Apple ID that made the original purchase.

Legacy paid customers

If you purchased RibbonDiff when it was a paid App Store download, the app automatically migrates you to Pro Lifetime on the same Apple ID. If it does not show as unlocked right away, use Restore Purchases.