A modern, native diff tool for macOS built with Tauri and TypeScript.
- Side-by-side text comparison
- Syntax highlighting for differences
- Drag & drop file support
- Text manipulation tools (lowercase, sort, trim)
- Diff history with configurable retention
- Keyboard shortcuts for productivity
- Native macOS app with system integration
Install with a single command:
brew install --cask atlascodesai/diffy/diffyThis automatically taps the repository and installs Diffy. No separate tap command needed!
Alternative: If you prefer to tap first:
brew tap atlascodesai/diffy
brew install --cask diffy-
Download the latest release for your architecture:
- Apple Silicon (M1/M2/M3): diffy-aarch64-apple-darwin.tar.gz
- Intel: diffy-x86_64-apple-darwin.tar.gz
-
Extract the archive and drag
Diffy.appto your Applications folder -
On first launch, if you see a security warning, go to System Settings → Privacy & Security and click "Open Anyway"
Launch Diffy from Applications or run from terminal:
open -a Diffy
# or
diffy⌘ + Enteror⌘ + R- Run comparison⌘ + N- New diff (clear all)⌘ + H- Toggle history sidebar⌃ + ⌥ + S- Switch left and right text⌃ + ⌥ + R- Clear allESC- Close history sidebar
- Node.js 20+
- Rust (latest stable)
- Xcode Command Line Tools
npm installnpm run tauri devnpm run tauri buildReleases are fully automated via GitHub Actions when a version tag is pushed.
-
Update version numbers in all config files:
src-tauri/Cargo.toml-version = "X.Y.Z"src-tauri/tauri.conf.json-"version": "X.Y.Z"package.json-"version": "X.Y.Z"index.html- version number in settings modal
-
Commit changes:
git add . git commit -m "Bump version to vX.Y.Z" git push
-
Create and push tag:
git tag vX.Y.Z git push origin vX.Y.Z
-
Automated workflow will:
- Build for both Intel (x86_64) and Apple Silicon (aarch64)
- Sign the app with Developer ID Application certificate
- Notarize with Apple for Gatekeeper
- Create GitHub Release with binaries and SHA256 checksums
- Automatically update Homebrew cask formula
The following secrets must be set in the repository:
APPLE_CERTIFICATE_BASE64- Base64-encoded .p12 certificateAPPLE_CERTIFICATE_PASSWORD- Certificate passwordAPPLE_ID- Apple Developer emailAPPLE_TEAM_ID- Apple Developer Team IDAPPLE_APP_PASSWORD- App-specific password for notarizationHOMEBREW_TAP_TOKEN- GitHub PAT with repo access for homebrew-diffy
The app is signed with a Developer ID Application certificate and notarized with Apple to ensure it passes Gatekeeper checks. This happens automatically in CI.
For local signing setup:
- Export certificate from Keychain as .p12
- Convert to base64:
base64 -i certificate.p12 -o certificate.p12.base64 - Add to GitHub Secrets
- Frontend: Vanilla TypeScript + Vite
- Backend: Rust + Tauri 2.0
- Diff Engine: jsdiff
- Styling: Custom CSS with system fonts
- Build: GitHub Actions with matrix builds for multi-architecture support
src/- TypeScript frontend codesrc-tauri/- Rust backend code.github/workflows/- CI/CD pipelinespublic/- Static assets
- Primary: Homebrew Cask via homebrew-diffy
- Secondary: Direct downloads from GitHub Releases
- Platforms: macOS only (Intel & Apple Silicon)
MIT
Built with: