---
title: "🛠️ OmniDiff hits 311 points on HN: a git difftool that can diff PDFs, fonts, even cursors | Open Source Finds Daily"
description: "A Rust-written git difftool hit 311 points on Hacker News with 862 stars: OmniDiff compares not just code but also images, PDFs, archives, fonts, and mouse cursors, finishing within a median of 100ms."
canonical_url: "https://blog.markkulab.net/en/open-source-weekly/open-source-weekly-2026-11-02"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/en/author/mark-ku"
site: "Mark Ku's Tech Notes"
date_published: "2026-11-02T02:00:00.000Z"
category: "Open Source Gems Daily"
tags: ["open-source", "podcast", "開源工具", "開源", "OmniDiff", "syscall_sh", "unslop", "Rust", "tree_sitter", "gitdifftool", "Linux"]
language: "en"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "when reusing or quoting, credit the author and link back to the original"
---

# 🛠️ OmniDiff hits 311 points on HN: a git difftool that can diff PDFs, fonts, even cursors | Open Source Finds Daily

## Opening

A git difftool written in Rust hit 311 points on Hacker News and 862 stars. OmniDiff doesn't just diff code: it handles images, PDFs, archives, fonts, and even mouse cursors, with a median completion time under 100ms. Also today: an AI-interface rescue kit that racked up 6.3k stars in 30 days, built specifically to hunt down purple gradients, "New ✨" badges, and all the other dead giveaways that a human didn't design this. I'll show you how to wire it into Claude Code in a minute. I'm Muyan, this is the Open Source Daily, November 2, 2026.

## Today's Picks

### 1. OmniDiff: a git difftool that understands syntax, and PDFs too

- **What it is**: The most annoying part of code review is when you only changed indentation or moved a function, yet the diff lights up the whole screen in red and green. OmniDiff is a content-aware difftool written in Rust, doing syntax-aware comparison via tree-sitter ASTs across 25 languages. And not just code: config files, images, PDFs, archives, cursors, and fonts all diff too. The author has been using it as a daily git difftool for months. It's the kind of tool you install and immediately go edit your .gitconfig for.
- **Recent buzz**: 311 points and 94 comments on Hacker News, 862 stars on GitHub.
- **Standout features**: First, tree-sitter AST syntax-aware diffing, with the README claiming it handles 99.95% of code changes. Second, the performance targets are written right into the README: median diff under 100ms, 99th percentile under 1000ms, and even C++ files with tens of thousands of lines finish in under 100ms on a 2023 ThinkPad T14s. Third, integration paths are thorough: you can set it as the default with `git config diff.tool omnidiff`, or hook it straight into `git diff` and `git log -p` via `GIT_EXTERNAL_DIFF`, plus there's support for jj's merge-tools config. There's also `--mode json` to emit the diff as a single JSON object, and extensions exist for VS Code (including VSCodium, Cursor, and Windsurf via Open VSX) and Neovim.
- **Getting started**: One line on macOS with `brew install ivankovic/omnidiff/omnidiff`, or `cargo install --locked omnidiff` (requires rustc 1.92+ and a C compiler). If you don't want to install anything yet, hit the showcase on the official site for 20 real-world changes with Unix diff and OmniDiff shown side by side.
- **How it compares**: In the HN thread the author responded directly: delta essentially just colorizes the standard git diff algorithm, while OmniDiff uses a completely different one. Compared to difftastic, which is also syntax-aware, the difference is that difftastic only eats code, while OmniDiff diffs images, PDFs, fonts, and archives too. One caveat worth stating plainly: the license is GNU AGPL v3 or later. Personal use and internal tooling are fine, but talk to legal before bundling it into a customer-facing product.
- **Who it's for**: Engineers who live in code review and frequently need to compare design files or binary assets.
- **Link**: https://github.com/ivankovic/omnidiff

### 2. syscall.sh: full system call tables for 27 architectures, Linux 3.3 through 7.3, with an API

- **What it is**: When you're writing assembly, working on eBPF, building seccomp rules for container sandboxes, or doing reverse engineering, that syscall number table is basically a daily Google search. The problem is that most tables online are either x86-only or three years stale. syscall.sh takes the job seriously: 27 architectures, Linux 3.3 through 7.3, with a JSON API attached.
- **Recent buzz**: 208 points and 50 comments on Hacker News.
- **Standout features**: First, each architecture page lists every syscall's number, arguments, registers, and the instruction to enter the kernel: `syscall` for x64, `svc #0` for arm64. The arm64 page spells out that the number goes in x8, arguments go in x0 through x5, and then `svc #0`. Second, the data is generated directly from kernel source (including `SYSCALL_DEFINE` macros), every table is downloadable as JSON, and it marks which version a given syscall was added or removed in. Third, the JSON API covers 27 architectures and ABIs plus every release since 3.3, including calling conventions, Kconfig gating, and diffs between versions. The v2 error format uses RFC 9457 problem details, which script writers will appreciate.
- **Getting started**: Just open the site, no installation at all. To use it in a script, hit `curl https://api.syscall.sh/v2/syscalls/x64/read`, or just grab the full-table JSON from something like `/x64/syscalls.json` and process it yourself.
- **How it compares**: Static lookup tables like filippo.io's only cover x86 / x86_64. This one is 27 architectures multiplied by the full version history from 3.3 to 7.3, with data auto-generated from kernel source. Back in the 2023 HN thread people were already saying it was more up to date than comparable tables and covered x86, arm, and aarch64.
- **Who it's for**: Anyone doing systems programming, eBPF, or sandbox escape research, or DevOps folks who just want a bookmark that won't go stale.
- **Link**: https://syscall.sh/

### 3. unslop: a cure for interfaces that scream "an AI made this"

- **What it is**: Frontends vibecoded with an AI assistant have all the functionality, but the screen always looks identical: purple gradients, glow effects, gradient text, and a "New ✨" tucked in the corner. unslop is a Claude Code / Codex skill built to turn that kind of interface into a design with its own personality. It doesn't hand you new components; it runs a staged design audit and rework pass over your existing screens.
- **Recent buzz**: A project less than 30 days old, already at 6,324 stars on GitHub.
- **Standout features**: First, the workflow starts by deriving a design direction from the product itself, then works through spacing, color and icons, copy, typography, layout, details, and finally visuals and motion. Second, it carries a very concrete list of AI tells to hunt: purple gradients, glow effects, gradient text, emoji labels, "New ✨" badges, glossy color blocks, all-caps wide-tracked labels, breathing/pulsing animations, and inconsistent spacing. It supports React, Tailwind, HTML, and CSS, across dashboards, apps, and landing pages. Third, it produces `unslop-story/story.html`, packaging the original screen plus its styles into a single standalone file, with meta tags in the head recording which passes were applied so you can trace back later. Hero image generation is optional and requires hooking up a service like fal, Replicate, or OpenAI images. If nothing is connected, it offers to add an MCP server first, and it asks before running any paid generation.
- **Getting started**: `git clone` then `mkdir -p ~/.claude/skills && cp -r unslop/skills/unslop ~/.claude/skills/` and you're installed. For a single project only, copy it into that project's `.claude/skills/`. On the Codex side, use `$skill-installer` 直接從 repo 安裝。裝完在 Claude Code 打 `/unslop`、在 Codex 打 `$unslop`.
- **How it compares**: It runs in the opposite direction from component libraries like shadcn/ui or Tailwind UI. It doesn't add components, it audits what's already on screen. The caveat, stated plainly: it only runs inside Claude Code or Codex. It's not a standalone CLI or a web tool, so if you don't use either of those, set expectations accordingly. The license is CC-BY-4.0, so remember to attribute when you adopt it.
- **Who it's for**: Engineers shipping AI-generated frontends daily with no designer to call for help.
- **Link**: https://github.com/heydamir/unslop

## Closing

All three of today's picks share something: they save you the time you'd otherwise spend eyeballing a screen for differences. OmniDiff compares code and files, syscall.sh compares versions and architectures, and unslop compares your interface against what a non-AI-looking interface would be. If you only install one today, I'd pick OmniDiff. One brew command changes how every future code review feels. Same time tomorrow, we'll dig up some new ones. I'm Muyan, this has been the Open Source Daily, see you next time.

---

## About this article and its author

Originally published on [Mark Ku's Tech Notes](https://blog.markkulab.net/en/open-source-weekly/open-source-weekly-2026-11-02)

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — when reusing or quoting, credit the author and link back to the original

### About the author

**[Mark Ku](https://blog.markkulab.net/en/author/mark-ku)** — Software engineer

- 10+ years as a software engineer
- Built North-American e-commerce and AI SaaS subscription billing

### Free tools built by the author

All of these are free to use:

- [Free PDF Sign Tool](https://blog.markkulab.net/en/tools/pdf-sign): Online PDF sign tool — draw, type, or upload a signature, then drag, resize, and download. Everything runs in your browser; nothing is uploaded.
- [VS Code Refactory](https://blog.markkulab.net/en/tools/refactory): Refactory is a VS Code refactoring extension: 34 actions plus a 37-rule code-smell inspection layer with a Code Health dashboard, across 18 languages, backed by 534 tests. It learns your repo's conventions: where interfaces live, where DI is registered, whether 'use client' belongs. It ranks files by git churn × complexity so you know what to fix first, and hands any smell to the Claude Code already on your machine. Free to use, and your source never leaves your computer.
- [DB-Kit Database Manager](https://blog.markkulab.net/en/tools/db-kit): DB-Kit is a lightweight, cross-platform database manager built with Tauri + Rust + React. Manage MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, MongoDB, Redis, Kafka, Elasticsearch and RabbitMQ from one consistent interface: passwords encrypted in the OS keychain, SSH tunnels, full CRUD, a visual query builder, stacked multi-statement result sets, cross-connection data transfer, schema & data compare with sync SQL and schema snapshots, Excel / CSV import & export, visualized execution plans, ER diagrams, scheduled backups, SQL stress testing with p50–p99 latency percentiles, a 15-rule SQL review engine, Review & Run (AI review plus per-statement backups and an auto-generated rollback script), Kafka message browsing with monitoring & alerts, an SSH terminal with SFTP / FTP, Docker / Kubernetes, remote desktop (RDP / VNC / RustDesk), file / folder compare, stored procedure integration tests, six UI languages, a built-in AI assistant (a local CLI or any Anthropic / OpenAI-compatible API; natural-language SQL, AI review and tuning advice) and the dbk CLI. Free and open source (MIT), with installers for Windows, macOS and Linux.
- [VS Code Super Mermaid](https://blog.markkulab.net/en/tools/super-mermaid): Super Mermaid is a VS Code extension for beautiful Mermaid diagrams out of the box: auto-colored live preview, mouse pan & zoom, high-res PNG / SVG export, 21 templates and multiple themes. Free and open source (MIT).
- [React Super Mermaid](https://blog.markkulab.net/en/tools/react-super-mermaid): react-super-mermaid is an open-source React component library: render beautiful Mermaid diagrams with a single <MermaidViewer>, with built-in colorful / sketch themes, pan & zoom, in-diagram search, and high-res SVG / PNG export. Lightweight, SSR-safe, fully typed. Free and open source (MIT).
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/en/tools/jira-super-mermaid): An Atlassian Forge app: write Mermaid syntax directly inside a Jira issue or a Confluence page and get flowcharts, sequence diagrams, state machines and Gantt charts. 11 diagram types, SVG / PNG export, light and dark themes, full CJK support. Runs on Atlassian: your diagrams live in your own site and the app calls no third-party service. Free, coming soon to the Atlassian Marketplace.
- [Mermaid Live Preview](https://blog.markkulab.net/en/tools/mermaid-preview): Write Mermaid in your browser, see it render instantly, and share the whole diagram as a single link. No sign-up, nothing uploaded to a server, and mermaid.live share links work as-is.
- [React Intl Phone Number](https://blog.markkulab.net/en/tools/react-intl-phone-number): react-intl-phone-number is an open-source React component: framework-agnostic and antd-free, with E.164 in/out, a searchable flag / country-code dropdown, configurable validation levels (strict / mobile-strict / loose), themeable CSS, and i18n — phone logic powered by google-libphonenumber. Lightweight and fully typed. Free and open source (MIT).
- [Uptime Kuma Cluster](https://blog.markkulab.net/en/tools/uptime-kuma-cluster): Turn single-node Uptime Kuma into a highly available cluster: OpenResty + Lua smart load balancing, shared MariaDB state, health checks and automatic failover, plus cluster-management REST APIs. One Docker Compose command to start. Free and open source (MIT).
- [AI Podcast Cut](https://blog.markkulab.net/en/tools/ai-podcast-cut): Drop in a recording and it removes fillers and stutters, levels loudness segment by segment, and sends a second agent to review every cut. Cut points snap to word boundaries and zero crossings, every splice gets a fade, and sentence-end breaths are preserved. Desktop app for Windows, macOS and Linux. MIT licensed; the Windows installer bundles ffmpeg.
- [AI Video Cut](https://blog.markkulab.net/en/tools/ai-video-cut): Pick something in your video: type it (face, license plate, phone screen, logo), click points or drag a box, or let Claude Code / Codex pick it. AI Video Cut tracks it frame by frame, then mosaics or blurs it, recolors it, pins stickers and text to it, swaps a screen or poster for your own image or video, or removes it using background that other frames actually captured. Plus sequence editing, local captions and an AI assistant. Free, open-source (MIT) Windows desktop app (macOS / Linux experimental) that runs locally, nothing uploaded.
- [open-pos restaurant POS](https://blog.markkulab.net/en/tools/open-pos): One computer and one receipt printer is enough to open the shop. Your data lives on your own disk, no subscription, no lock-in, MIT licensed. Money is integer New Taiwan dollars with tax split by the statutory formula, so sales + tax always equals the total. Printing goes straight over ESC/POS on TCP 9100, with no vendor driver. Tauri + Rust + SQLite desktop app, v1.0 in development.
- [.NET e-commerce API template](https://blog.markkulab.net/en/tools/dotnet-ecommerce-api): An e-commerce backend API template built on .NET 10: Controller → Service → Repository layering, Autofac convention-based registration, SqlSugar for MySQL / MariaDB and SQL Server, Redis cache and message queue, Hangfire jobs, JWT auth, and an extensible payment provider module (ECPay, Newebpay). Apache 2.0.
- [Open Token Monitor team AI usage](https://blog.markkulab.net/en/tools/open-token-monitor): Collect token usage and equivalent cost from every employee's AI coding tools into a hub you host yourself: PostgreSQL, org roster, dashboards compared by company and department, and a reports API. Electron and Rust/Tauri clients upload every 30 minutes. MIT licensed, one Docker command.
- [ai-security-monitor defensive security](https://blog.markkulab.net/en/tools/ai-security-monitor): Your website is live. Who checks its certificates, security settings and known vulnerabilities? A self-hosted Security Hub brings website scans and host monitoring together, deduplicates findings and compares scans after fixes.

### Daily podcasts

- [Mark's Tech Insights — Daily AI News](https://blog.markkulab.net/en/category/tech-news): Daily curated AI and tech trends. Catch the latest developments via audio summaries — covering AI applications, software architecture, DevOps, and engineering practice. — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/en/category/ai-stock-chat): Every trading day, an AI-analyzed take on the Taiwan stock market, delivered as a two-host conversation covering the session and the next-day outlook. — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物日報](https://blog.markkulab.net/en/category/open-source-weekly): A daily two-host pick of free open-source tools surfaced from real Hacker News, GitHub, and Reddit buzz — what pain they solve and the fastest way to get started. — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml
- [AI 運動日報](https://blog.markkulab.net/en/category/sports-weekly): Two hosts talk NBA, MLB and world sport every day — scores, records and the stories behind them, from a Taiwanese fan perspective. — RSS: https://blog.markkulab.net/sports-weekly/feed.xml
- [AI 國際新聞快報](https://blog.markkulab.net/en/category/world-news): A daily two-host briefing that makes sense of the past 24 hours in world news — geopolitics, the global economy, conflict and security, disasters and climate — from a Taiwanese perspective, neutral and fully sourced. — RSS: https://blog.markkulab.net/world-news/feed.xml
- [地端 AI 實驗室](https://blog.markkulab.net/en/category/local-ai-lab): Every day, a two-host look at open-weight models and LoRAs you can actually run on your own machine: what they are for, whether your GPU can handle them, and how they compare — sourced from official model cards. — RSS: https://blog.markkulab.net/local-ai-lab/feed.xml
- [AI 行銷日報](https://blog.markkulab.net/en/category/ai-marketing): Every day, two hosts break down the latest in AI for marketing, advertising, SEO/GEO and content marketing: practical, never sponsored, every story sourced. — RSS: https://blog.markkulab.net/ai-marketing/feed.xml
- [AI 資安日報](https://blog.markkulab.net/en/category/ai-security): Every day, two hosts cover the latest where AI meets cybersecurity: LLM and AI agent vulnerabilities, prompt injection, model supply-chain risks and AI-powered attacks, from a defense-first angle with every story sourced. — RSS: https://blog.markkulab.net/ai-security/feed.xml

### Newsletter

[Subscribe to the newsletter](https://blog.markkulab.net/en/subscribe) — Be the first to know about new posts. No spam, unsubscribe anytime.
