Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - 7dJx1qP/stash-userscripts: Stash Userscripts · GitHub
Skip to content

Repository files navigation

Stash Userscripts

** NOTE ** All these userscripts have been migrated to plugins https://github.com/7dJx1qP/stash-plugins

Installation requires a browser extension such as Violentmonkey / Tampermonkey / Greasemonkey.

You may remove any unwanted userscripts from the bundle by removing the line that starts with // @require that corresponds to the userscript you wish to remove.

By default the userscripts only work for http://localhost:9999

If you access Stash from a different address, you will need to modify the userscript when you install it.

Find the line // @match http://localhost:9999/* and replace http://localhost:9999/* with your Stash address.

Pick and choose which userscript to install in the table below or install just Stash Userscripts Bundle.user.js to get all of them.

Script NameDescriptionPlugin RequiredInstall
Stash Batch Query EditIn Scene Tagger, adds button to batch update all query fields with a configurable combination of Date, Studio, Performers, and TitleINSTALL USERSCRIPT
Stash Batch Result ToggleIn Scene Tagger, adds button to toggle all stashdb scene match result fields. Saves clicks when you only want to save a few metadata fields. Instead of turning off every field, you batch toggle them off, then toggle on the ones you wantINSTALL USERSCRIPT
Stash Batch SaveIn Scene Tagger, adds button to batch save all scenes. Opens a confirmation popup with clickedINSTALL USERSCRIPT
Stash Batch SearchIn Scene Tagger, adds button to batch search all scenesINSTALL USERSCRIPT
Stash MarkdownAdds markdown parsing to tag description fieldsINSTALL USERSCRIPT
Stash Markers AutoscrollAutomatically scrolls markers pageINSTALL USERSCRIPT
Stash New Performer Filter ButtonAdds button to performers page to switch to a filter by new performers tagger viewINSTALL USERSCRIPT
Stash Open Media PlayerOpen filepath link on scene page 'File Info' tab in an external media player when clicked✔️INSTALL USERSCRIPT
Stash Performer Audit Task ButtonAdds a button to the performers page to check for duplicate performer urls. Task output shown in stash logs✔️INSTALL USERSCRIPT
Stash Performer Image CropperAdds ability to crop performer image from performer pageINSTALL USERSCRIPT
Stash Performer Markers TabAdds a Markers link to performer pagesINSTALL USERSCRIPT
Stash Performer Tagger AdditionsAdds performer birthdate and url to tagger view. Makes clicking performer name open stash profile in new tab instead of current tabINSTALL USERSCRIPT
Stash Performer URL SearchboxAdds a performer URL search textbox to performers page for quicker searching by performer URLINSTALL USERSCRIPT
Stash Scene Tagger AdditionsAdds scene duration, filepath, and url to tagger view in the collapsible scene details sections. Adds shift-click to collapsible scene details buttons to open/close all.INSTALL USERSCRIPT
Stash Scene Tagger ColorizerIn Scene Tagger, colorize scrape results. Matching fields are green, missing fields are yellow, and mismatching fields are redINSTALL USERSCRIPT
Stash Scene Tagger Draft SubmitAdds button to Scene Tagger to submit draft to stashdbINSTALL USERSCRIPT
Stash Set Stashbox Favorite PerformersSync Stashbox favorite performers whenever a stash performer is favorited or unfavorited. Also adds button to performers page to sync all✔️INSTALL USERSCRIPT
Stash StashID IconAdds checkmark icon to performer and studio cards that have a stashidINSTALL USERSCRIPT
Stash StashID InputAdds input textboxes to performer detail and studio detail pages for stashid entry. Also displays studio stashids on studio page without having to click edit to viewINSTALL USERSCRIPT
Stash StatsAdds new stats to the stats page: marker count, favorite performer count, studios with stashid %, performers with stashid %, scenes with stashid %INSTALL USERSCRIPT
Stash Tag Image CropperAdds ability to crop tag image from tag pageINSTALL USERSCRIPT

Screenshots

Stash Batch Query Edit

Config

Scenes tagger

Stash Batch Result Toggle

Config

Scenes tagger

Stash Batch Save

Scenes tagger

Stash Batch Search

Scenes tagger

Stash Markdown

Tag description

Stash Markers Autoscroll

Scroll settings

Set scroll size and marker playback speed.

Stash New Performer Filter Button

Performers page

Stash Open Media Player

System settings

Stash Performer Audit Task Button

Plugin tasks

System settings

Performers page

Stash Performer Image Cropper

Cropper

Stash Performer Markers Tab

Performer page

Stash Performer Tagger Additions

Performer tagger

Stash Performer URL Searchbox

Performers page

Stash Scene Tagger Additions

Config

Scenes tagger

Stash Scene Tagger Colorizer

Config

Scenes tagger

Tag colors

Stash Scene Tagger Draft Submit

Scenes tagger

Stash Set Stashbox Favorite Performers

Plugin tasks

System settings

Performers page

Stash StashID Icon

Performer page

Studio page

Studio page

Stash StashID Input

Performer page

Studio page

Stash Stats

Stats page

Stash Tag Image Cropper

Cropper

Userscript Functions Plugin

This additional stash plugin is required by some userscripts for their functionality

Requirements

Installation

Copy the whole folder userscript_functions to your stash plugins folder.

pip install requests pystashlib

Plugin settings can be updated from within the Stash settings under the System tab. The stash url and api key settings are automatically set for you when the system settings page is loaded.

System settings

  • The stash url is determined by the userscript based on the current page url you use to access stash.

  • The stash api key value is fully managed by the userscript. If you generate or clear your api key, the userscript will update the plugin config.ini api key value.

Plugin tasks:

Plugin tasks

Developing

Each userscript source is split into two files:

  • src/header - Folder with userscript metadata blocks
  • src/body - Folder with main script code

Execute py build.py to combine source files and generate:

  • a userscript bundle to dist\local for local development
  • individual userscripts and a bundle to dist\public for release

Build output directories:

  • dist\local - A userscript bundle with @require headers that load the script code from local files (src/body)
  • dist\public - Userscripts with @require headers that load the script code from this github repo

About

Stash Userscripts

Resources

Stars

90 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages