The Stack Overflow Unofficial Patch (SOUP) is a project to collect various minor client-side bug fixes, work-arounds and usability improvements for Stack Overflow and other Q&A sites on the Stack Exchange Network into a single user script.
The intent of SOUP is not to make any substantial or controversial changes to the Stack Exchange user interface, but to fix minor problems and omissions that the SE developers have overlooked or haven't got around to fixing yet. By combining these minor patches into a single user script, they become easier to install and maintain.
SOUP can be installed either as a stand-alone browser extension or via a user script manager such as Greasemonkey, Tampermonkey or Violentmonkey.
SOUP has been mainly developed and tested on Firefox and Chrome. It may also run on other browsers with user script support (via Tampermonkey or other compatible extensions), but has not been fully tested on them. Any reports of cross-browser issues are welcome.
Installing as a browser extension
Users of Chrome or Firefox (including Firefox Mobile) can install SOUP as a browser extension:
Note that updates to the extension packages available at Firefox Add-ons and Chrome Web Store may take a few days to appear, even after a new stable user script version is released, due to review and other delays.
Installing as a user script
To install SOUP as a user script, you first need to install a user script manager such as Greasemonkey (for Firefox), Tampermonkey or Violentmonkey. (Other Greasemonkey compatible user script managers should also work.) After installing the extension, clicking the "download / install" button below should bring up a dialog asking you if you want to install SOUP. Answer "yes".
Download / Install SOUP
View source / List of fixes / Change log / GitHub repo
NOTE: Tampermonkey on Chrome may suffer from a race condition that can cause some fixes that rely on early loading to fail to apply properly. To avoid this, you should either use the stand-alone SOUP Chrome extension or set Inject Mode to "Instant" in Tampermonkey preferences (in the Experimental section, only visible when Config Mode is set to "Advanced" above). Other user script managers on Chrome may also be subject to similar issues.
Installing the development version
If you like living on the edge, you can also install the development version of SOUP, which gets all the latest fixes and updates as soon as they're written. Of course, it also gets all the latest bugs, too. If you do install the development version, please report any bugs or regressions you may find in it below!
Download / Install SOUP (development branch)
Note that the development version of SOUP is currently only available as a user script.
The list of issues fixed by the latest version of SOUP is available on GitHub (also for the development branch). You can also browse the change log (development) to see which fixes have been added and removed in recent versions of SOUP.
SOUP is distributed under the ISC license, a permissive BSD-style open source license.
In addition, permission is given to Stack Exchange, Inc. to make use of SOUP code in any way they see fit, including but not limited to incorporating all or parts of it within the Stack Exchange codebase, with or without credit.
SOUP includes a copy of the punycode.js library v1.2.4 by Mathias Bynens, distributed under the MIT license. The additional permissions granted above do not apply to this library.
SOUP is currently maintained by Ilmari Karonen. Some of the fixes are based on suggestions or earlier user scripts made by others; see the source code and/or the meta.SO links above for details.
If you know a user script or stylesheet patch for SO or other SE sites that would be suitable for inclusion in SOUP, or an unfixed issue that you believe might be worth patching, please let me know (e.g. by posting a comment or an answer the SOUP page on Stack Apps).
If you'd like to help me out by contributing new fixes directly to SOUP, the SOUP wiki on GitHub has some useful tips. Any and all contributions will be appreciated!