macOS
brew install wigglelocal Homebrew formula metadata
sudo port install wiggleMacPorts ports tree · devel/wiggle/Portfile · source: api.github.com
brew
Program for applying patches with conflicting changes. Version 1.3 via Homebrew; verified from local package data.
install
brew install wigglelocal Homebrew formula metadata
sudo port install wiggleMacPorts ports tree · devel/wiggle/Portfile · source: api.github.com
sudo apk add wiggleAlpine Linux edge package indexes · wiggle · source: dl-cdn.alpinelinux.org
sudo apt install wiggleDebian stable package indexes · wiggle · source: deb.debian.org
nix profile install nixpkgs#wigglenixpkgs package indexes · pkgs/by-name/wi/wiggle/package.nix · source: api.github.com
sudo zypper install wiggleopenSUSE Tumbleweed package metadata · wiggle · source: download.opensuse.org
overview
Program for applying patches with conflicting changes
history
wiggle is Neil Brown's GPL command-line tool for applying patches when ordinary `patch` cannot match the target file cleanly, and for showing word-wise diffs. Its niche is the messy middle ground between a rejected patch and a full three-way merge: it tries to align the old text in a patch with the current file, apply every change somewhere, and mark unresolved conflicts for review.
Neil Brown announced the first public release of wiggle on the Linux kernel mailing list on May 19, 2003. The announcement described the core use case as applying patches that `patch` cannot apply because the original file has conflicting changes, especially when back-porting patches from development kernels onto stable kernels.
The name came from Andrew Morton's phrasing about wanting a tool to 'wiggle' a patch into a file. The first public announcement already included a tests directory, a patch-management helper script named `p`, and a note that a future visualization UI would be useful.
The manual page preserves the tool's long maintenance arc, with copyright lines spanning 2003, 2010-2013, and 2018-2020. GitHub releases list v1.0 through v1.3, with v1.3 published in October 2020.
wiggle's adoption has been specialized rather than mass-market. It is useful to kernel and distribution developers, downstream maintainers, and anyone carrying patch queues across drifting source trees. The GitHub repository showed about 108 stars and 9 forks in July 2026, but its more important adoption signal is its presence in Unix packaging ecosystems and its long-lived man page as a developer tool.
A common workflow is to run `patch`, collect `.rej` files, then run `wiggle --replace originalfile originalfile.rej` for each rejected hunk. The user must still inspect the result, because wiggle can annotate unresolved conflicts and cannot prove semantic correctness. It also has merge, diff, extract, and browse modes; browse mode gives an ncurses-based inspection path for patches and conflicts.
wiggle matters because it encodes a very Unixy idea: keep the format and workflow of patches, but make the recovery path smarter at word granularity. For package maintainers carrying downstream patches, that can be the difference between manually rewriting a patch and letting a small tool salvage most of it while clearly marking the rest.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
wiggle | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/neilbrown/wiggle
install metadata
| Package key | brew:wiggle |
|---|---|
| Version | 1.3 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/wiggle |
| Homepage | https://github.com/neilbrown/wiggle |
| Repository | https://github.com/neilbrown/wiggle |
| Upstream docs | https://github.com/neilbrown/wiggle#readme |
| License | GPL-2.0-or-later |
| Source archive | https://github.com/neilbrown/wiggle/archive/refs/tags/v1.3.tar.gz |
| Uses from macOS | ncurses |
| Bottle | available (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | wiggle |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
wiggle 1.3-1
apply patches with conflicting changes
https://neil.brown.name/wiggle
sudo apt install wigglewiggle
nix profile install nixpkgs#wigglewiggle 1.3-1
apply patches with conflicting changes
https://neil.brown.name/wiggle
sudo apt install wigglewiggle 1.3-r0
Tool for applying patches with conflicts
https://github.com/neilbrown/wiggle
sudo apk add wigglewiggle-doc 1.3-r0
Tool for applying patches with conflicts (documentation)
https://github.com/neilbrown/wiggle
sudo apk add wiggle-docwiggle 1.3-1.21
A Tool for Applying Patches with Conflicts
https://neil.brown.name/wiggle/
sudo zypper install wigglewiggle
sudo port install wigglesource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.