Show HN: Suture – Semantic merge for JSON, YAML, TOML, XML, CSV (18 formats)
Git merges structured files line-by-line, so two people editing different keys in the same JSON object get a conflict. Suture parses files into their native representations (trees, maps, arrays), merges at the structural level, and only flags true conflicts.
One-line install:
curl -sSL https://suture.dev/install.sh | sh
After that, git automatically uses Suture for JSON, YAML, TOML, XML, and CSV files. No config editing.
Try it in your browser: https://wyattau.github.io/suture/#/merge (fully client-side, no signup)
18 formats supported: JSON, YAML, TOML, XML, CSV, SQL, HTML, Markdown, SVG, Properties/INI, DOCX, XLSX, PPTX, PDF metadata, RSS/Atom, iCalendar, OpenTimelineIO, PLIST
Other install methods:
- Cargo:
cargo install suture-cli - Homebrew:
brew install WyattAu/suture-merge-driver/suture-merge-driver - npm:
npm install -g suture-merge-driver - PyPI:
pip install suture-merge-driver - Binary releases: https://github.com/WyattAu/suture/releases
What's included:
- Git merge driver with automatic
.gitattributesconfiguration - Interactive 3-way merge demo (client-side, no backend)
- CLI with init, add, commit, branch, merge, log, diff, push, pull, remote, status
- TUI dashboard, patch browser, and merge view (ctrl-c to cancel, scroll to browse)
- LSP server (diagnostics, completions, hover, go-to-symbol) for VS Code extension with real-time merge diagnostics
- GitHub Action for CI/CD:
uses: WyattAu/suture/.github/actions/merge@v5 - FUSE filesystem mount (
suture mount ./repo /mnt/suture) - WASM plugin system (wasmtime v28, fuel-based timeouts, 16MB memory limit)
- Raft consensus for distributed hub deployment
- Full SaaS platform with auth (Google/GitHub OAuth), Stripe billing, and merge API
- Deployed to Fly.io with zero known issues
Pricing:
- Free: unlimited public repos
- Pro: $9/seat/month — unlimited private repos, merge API, priority support
- Enterprise: $29/seat/month — SSO, audit logging, WASM plugins, SLA, dedicated support
Performance: JSON 10-key merge in ~10µs, 100-key in ~40µs, 1K-key in ~400µs
Test coverage: 39 Rust crates, 1,594 tests, 0 failures, 0 clippy warnings, zero known security or performance issues.
Source: https://github.com/WyattAu/suture Docs: https://wyattau.github.io/suture/ Platform: https://suture.dev
Built in Rust. Dual-licensed AGPL-3.0 + Commercial. Self-hostable.