Suture
Version control that understands your files.
Git is to text files what Suture is to Word docs, spreadsheets, and video timelines.
Before (Git) After (Suture)
───────────────────── ─────────────────────
Two people edit config.json: Same scenario:
one changes "host", the other "port". Suture merges both keys — zero conflicts.
$ git merge staging $ suture merge staging
CONFLICT (content): Merge conflict Clean merge. 2 patches applied.
in config.json
<<<<<<< HEAD
"host": "prod",
"port": 8080
=======
"host": "staging"
"port": 3000
>>>>>>> staging
Suture uses semantic drivers to merge JSON, YAML, TOML, CSV, XML, Markdown, DOCX, XLSX, PPTX, SQL, PDF, images, and video timelines at the structural level — not the line level. Two edits to different JSON keys, different DOCX paragraphs, or different spreadsheet cells never conflict.
Quick Start
&&
&&
&&
&&
# {"host": "staging", "port": 8080} ← both changes, no conflict
Who Is This For?
| Domain | Pain point Suture solves |
|---|---|
| Video editors | Version control for NLE timelines (Premiere, DaVinci Resolve) |
| Document authors | Merge Word docs, Excel sheets, PowerPoint decks |
| Data science | Branch and merge Jupyter notebooks, CSVs, configs |
| DevOps | Semantic merge for Kubernetes YAML, Docker Compose, CI configs |
| Config-as-code | TOML, XML, properties files across environments |
What Makes Suture Different
Semantic merge for 16 formats:
| Format | Extensions | Merge granularity |
|---|---|---|
| JSON | .json |
Field-level (RFC 6901 paths) |
| YAML | .yaml .yml |
Key-level |
| TOML | .toml |
Table and key-aware |
| CSV | .csv |
Row-level with header detection |
| XML | .xml |
Element/attribute-aware |
| Markdown | .md |
Section-aware |
| DOCX | .docx |
Paragraph-level |
| XLSX | .xlsx |
Cell-level |
| PPTX | .pptx |
Slide-level |
| SQL | .sql |
DDL schema diff |
.pdf |
Page-level text diff | |
| Image | .png .jpg .gif .bmp .webp .tiff .ico .avif |
Metadata diff |
| OTIO | .otio |
OpenTimelineIO editorial merge |
Files without a driver fall back to line-based merge, same as Git.
Full version control workflow: init, add, commit, branch, merge, rebase, cherry-pick, push, pull, tag, blame, stash, worktree, and 25+ more commands.
Mount as a filesystem: FUSE and WebDAV mounts let any editor save directly into a Suture repo — every save creates a patch.
Self-hosted collaboration: Suture Hub provides a web UI, auth, push/pull, mirrors, and search.
Install
Or build from source:
&&
Use With Git
Suture works as a Git merge driver — add semantic merging to your existing Git repos:
Learn More
- Why Suture? — the problem with binary version control
- Suture vs. Git — honest comparison
- Semantic merge explained — how it works under the hood
- Full CLI reference
- Comparison with other VCS
Contributing
See CONTRIBUTING.md.
License
Apache License 2.0. See LICENSE.