User scripts for use on Stack Exchange websites. You can install these by clicking on the install link for each individual script from their individual README files, listed below.
Warning
This repository is no longer being maintained. Use the code here at your own risk, I am no longer a moderator and can't fix these.
- ♦ Connected users: Userscript to aid investigation of connected users on the moderator-only IP cross-reference view. Requires ♦ moderator access.
These scripts are deprecated and no longer receive support.
- Bookmark users: Fetch the list of users that bookmarked a question on any Stack Exchange website. Stack Exchange replaced the bookmark feature with "saves", which are now private, so this script no longer works.
All scripts are MIT licensed.
Feature requests and bug reports are most welcome, please use the GitHub issue tracker. Issues with accompanying pull requests are even more awesome!
Scripts are written in TypeScript and compiled and packaged as userscripts (JavaScript files with a header), using webpack.
Please install nvm
and yarn
, then run nvm use
and yarn install
to get set up.
Then run yarn run serve
to start a web server on port 8842, serving the scripts from an index page. Alternatively, run yarn run build:dev
to create a local development build in dist/
. You can alter the port number by setting the DEV_SERVER_PORT
environment variable.
Commits must follow the Conventional Commits pattern; if the commit affects a specific userscript, use the script directory name as the tag (e.g. fix(connected-users): ...
). A commitlint
configuration is provided and commit messages are verified at commit time with Husky.
Open the yarn run serve
development server URL in your browser and pick one of the following options to facilitate reloading changes:
-
Install the
.user.js
file, your userscript manager should automatically install it when you click on it. Some managers have explicit support for watching for updates; e.g. when using ViolentMonkey, just leave the ViolentMonkey tab open and revisit that tab to trigger a reload. -
Install the
proxy.user.js
variant, as this way you can just reload your browser page for the usermanager to pick up the latest changes (you may have to reload twice, e.g. when using Tampermonkey) pick up changes). You may have to configure your user manager to always refresh@require
resources (Tampermonkey:Settings
->Externals
->Update Interval
->Always
).
Remember to switch back to the released version once you are done, especially when using the proxy.user.js
technique.
A GitHub workflow handles releasing from the main branch, updating the version number based on the conventional commit messages pushed to the branch since the last release.