{"id":51038915,"url":"https://github.com/bernaferrari/multi-diff","last_synced_at":"2026-06-22T09:01:20.809Z","repository":{"id":362132500,"uuid":"1257532550","full_name":"bernaferrari/multi-diff","owner":"bernaferrari","description":"Compare multiple diff files side by side","archived":false,"fork":false,"pushed_at":"2026-06-02T20:00:18.000Z","size":535,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T21:23:52.453Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bernaferrari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-02T19:12:47.000Z","updated_at":"2026-06-02T20:00:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bernaferrari/multi-diff","commit_stats":null,"previous_names":["bernaferrari/multi-diff"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bernaferrari/multi-diff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernaferrari%2Fmulti-diff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernaferrari%2Fmulti-diff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernaferrari%2Fmulti-diff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernaferrari%2Fmulti-diff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bernaferrari","download_url":"https://codeload.github.com/bernaferrari/multi-diff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernaferrari%2Fmulti-diff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34641636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-22T09:01:19.744Z","updated_at":"2026-06-22T09:01:20.795Z","avatar_url":"https://github.com/bernaferrari.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi Diff\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://multi-diff.vercel.app/\"\u003e\n    \u003cimg src=\"assets/header.png\" alt=\"Multi Diff\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nMulti Diff is a local-first workbench for comparing multiple unified diff files\nat once.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://multi-diff.vercel.app/\"\u003e\n    \u003cimg src=\"assets/screenshot-dark.png\" alt=\"Multi Diff comparing multiple diffs in dark mode\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nVisit [multi-diff.vercel.app](https://multi-diff.vercel.app/) to use Multi Diff.\n\nInstead of opening one patch at a time, you can load **2-5 diffs**, assign them\nto lanes A-E, and review the same changed files across every candidate:\n\n- **Columns** — side-by-side lanes for direct comparison\n- **Rows** — full-width stacked reading when code needs more room\n- **Unified or Split** — switch rendering style without changing the review\n- **Search** — find changed content across every loaded diff\n\nEverything runs in the browser. Diff content is not uploaded.\n\n## Why Multi Diff\n\nMost diff viewers are excellent at reviewing one patch. They become awkward when\nyou need to compare several generated fixes, refactor attempts, or implementation\nvariants.\n\nMulti Diff is built for that comparison step. It keeps lane membership visible\nand lets you move between files intentionally.\n\n## Features\n\n- **Multi-lane comparison** — Review up to five diffs in lanes A-E.\n- **Column and row layouts** — Compare side by side or read each diff at full\n  width.\n- **Unified and split views** — Use the renderer that fits the review.\n- **Staged imports** — Drag files in, inspect the lane assignment, reorder, then\n  apply.\n- **File tree navigation** — Collapse directories, jump to files, focus the\n  active path, and hide or restore files recursively.\n- **Content search** — Search additions, deletions, and context with lane\n  filters and highlighted matches.\n- **Sticky file headers** — Keep the current file visible in each pane.\n- **Copy paths** — Click file headers to copy paths with immediate feedback.\n- **Notes** — Keep lightweight review notes next to the diff.\n- **Persistence** — Layout, panes, notes, and display settings survive reloads.\n\n## Get Started\n\nRequires [pnpm](https://pnpm.io/).\n\n```bash\ngit clone https://github.com/bernaferrari/multi-diff\ncd multi-diff\npnpm install\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://multi-diff.vercel.app/\"\u003e\n    \u003cimg src=\"assets/screenshot-light.png\" alt=\"Multi Diff comparing multiple diffs in light mode\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernaferrari%2Fmulti-diff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbernaferrari%2Fmulti-diff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernaferrari%2Fmulti-diff/lists"}