chaxiu/OpenCompare
chaxiu/OpenCompare has 43 GitHub stars and 5 forks. GitHot measured +3 in 7 days. Last checked 2026-11-10 19:20 UTC. Last push 2026-11-05.
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.
What you can do
- 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.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- +3
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalOpenCompare
English | 简体中文
Latest public release: v0.2.23 — Developer ID signed and Apple-notarized macOS build.
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.


Download and install
- macOS arm64: download the
.dmgfrom Releases, drag OpenCompare into Applications, then launch it. - Windows: run the
.exeinstaller, finish the wizard, then launch OpenCompare from the Start menu. - Linux:
chmod +xthe.AppImageand run it; or install the.debpackage withsudo apt install ./opencompare_amd64.deb. The.AppImagemounts through FUSE 2, so installlibfuse2(libfuse2t64on Ubuntu 24.04+) first; on a machine without FUSE 2, run it withAPPIMAGE_EXTRACT_AND_RUN=1 ./OpenCompare-*.AppImageor use the.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
- Open two paths with New comparison, or pick each side with Open folder; no sample is required.
- Read the four states: same / added / removed / modified.
- Double-click a file to drill down into its code, CSV or JSON view.
- 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.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,603 starspublic-apis/public-apis
A collective list of free APIs
497,929 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
449,843 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,298 stars