Skip to content

About

Modern cross-platform desktop diff and three-way merge tool: directory compare and sync, template relocation, snapshots, code diff, CSV alignment, JSON/YAML semantic compare. Free MIT alternative to Beyond Compare 5 Pro.

Topics

Resources

Stars

38 stars

Watchers

0 watching

Forks

Latest commit

 

History

343 Commits

Folders and files

Repository files navigation

OpenCompare

English | 简体中文

Latest public release: v0.2.15 — Developer ID signed and Apple-notarized macOS build.

Latest release License: MIT

OpenCompare is a modern cross-platform desktop diff and three-way merge tool for Beyond Compare 5 Pro workflows: directory comparison and sync, code diff and merge, CSV key alignment, JSON / YAML semantic comparison, and directory snapshots. It is built with Electron + React 19 + TypeScript, and the same codebase runs as a desktop app and a browser preview.

OpenCompare workbench comparing two directory trees

OpenCompare code view showing a file diff with the indicator bar

Download and install

  • macOS arm64: download the .dmg from Releases, drag OpenCompare into Applications, then launch it.
  • Windows: run the .exe installer, finish the wizard, then launch OpenCompare from the Start menu.
  • Linux: chmod +x the .AppImage and run it; or install the .deb package with sudo apt install ./opencompare_amd64.deb.

Every published version is listed on the Releases page.

Features

  • Directory comparison and sync: compare two nested trees, classify every node as same / added / removed / modified, and preview incremental or mirror sync before writing. Incremental sync only adds and overwrites, never deletes; mirror sync also lists target-only items as pending deletions, which stay unchecked by default and run only when you check them. Changes made outside the app are read on the next comparison, with no background file watcher.
  • Code diff and 3-way merge: line and intra-line highlighting, synchronized scrolling, per-hunk overwrite, and diff3 conflict blocks resolved one block at a time.
  • CSV key alignment: align CSV / TSV rows by a chosen key column, tolerate shuffled rows and shifted columns, and filter rows by state.
  • JSON / YAML semantic comparison: compare parsed documents by JSON Pointer path, ignoring key order, comments and indentation.
  • Snapshot protocol (.ocsnap.json): export a directory as a normalized document with metadata and SHA-256, import it on either side, and compare again.

Quickstart

  1. Open two paths with New comparison, or pick each side with Open folder; no sample is required.
  2. Read the four states: same / added / removed / modified.
  3. Double-click a file to drill down into its code, CSV or JSON view.
  4. Preview a sync, then apply incremental or mirror changes.

Requirements and development

  • Node.js >= 20.19
  • pnpm 10
pnpm install
pnpm dev        # Electron desktop window
pnpm dev:web    # browser preview
pnpm lint       # ESLint
pnpm typecheck  # tsc --noEmit
pnpm test       # vitest
pnpm build      # desktop bundles
pnpm build:web  # browser bundle

Project structure

src/main/       Electron main process: window lifecycle, IPC handlers, filesystem access
src/preload/    contextBridge bridge with a whitelisted channel set
src/core/       pure algorithms and domain models, no Electron or DOM dependency
src/renderer/   React 19 UI: workbench, scenario views and base components
src/shared/     cross-process types, PlatformPort contract and built-in samples

Known issues

None known right now. Report anything reproducible on the issue tracker.

Design postures, not defects:

  • Incremental sync never lists deletions; switch to Mirror to remove target-only items.
  • Changes made outside the app are not picked up automatically; rescan the pair to see them.

Evidence and docs

Release process · release signing credentials · symlink policy · large-directory memory.

Performance & memory evidence: read-only diagnosis and large-directory memory.

Lessons and decision history: past measurements, incidents and closed postures.

Open Rebuilds 001

OpenCompare is a free MIT alternative to Beyond Compare 5 Pro, tracked as alternative 001 in Open Rebuilds.

License

MIT, see LICENSE.

About

Modern cross-platform desktop diff and three-way merge tool: directory compare and sync, template relocation, snapshots, code diff, CSV alignment, JSON/YAML semantic compare. Free MIT alternative to Beyond Compare 5 Pro.

Topics

Resources

Stars

38 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages