# quoid/userscripts

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/quoid-userscripts).**

4,349 stars · 384 forks · Swift · gpl-3.0

## Links

- GitHub: https://github.com/quoid/userscripts
- Homepage: https://quoid.github.io/userscripts/
- awesome-repositories: https://awesome-repositories.com/repository/quoid-userscripts.md

## Topics

`safari` `safari-app-extension` `safari-extension` `swift` `userscript` `userscript-editor` `web-extension`

## Description

Userscripts is a Safari browser extension that installs and runs custom JavaScript and CSS on websites through Apple's content script injection system. It provides a privileged execution context that allows userscripts to perform cross-origin HTTP requests and access clipboard functionality beyond standard browser sandbox restrictions.

The extension uses metadata tags like @match, @run-at, and @weight to control precisely when and where scripts execute on web pages. It includes a built-in code editor with syntax highlighting and linting for modifying scripts directly, and supports automatic synchronization of local scripts with newer versions from configured remote URLs using @updateURL metadata.

Scripts are stored as files in a user-selected filesystem directory, enabling external editing and version control. The extension also provides per-script persistent key-value storage across browser sessions, dynamic CSS injection via GM.addStyle, and programmatic tab management from within userscripts. It is installed through Apple's App Store on iOS 15.1+ and macOS 12+ with Safari 14.1+.

## Tags

### Development Tools & Productivity

- [Userscript Managers](https://awesome-repositories.com/f/development-tools-productivity/userscript-managers.md) — A browser extension that installs and runs custom JavaScript and CSS on websites through Safari's content script injection system.
- [Userscript Metadata Definitions](https://awesome-repositories.com/f/development-tools-productivity/configuration-automation-scripts/metadata-scripting/userscript-metadata-definitions.md) — Uses tags like @match, @run-at, @weight, and @require to control when and where a userscript executes. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
- [Userscript Lifecycle Controllers](https://awesome-repositories.com/f/development-tools-productivity/lifecycle-script-execution/userscript-lifecycle-controllers.md) — Controls script installation, update checking, and execution timing through parsed metadata tags like @match, @version, and @run-at.
- [Automatic Script Updates](https://awesome-repositories.com/f/development-tools-productivity/installation-scripts/remote-script-sourcing/automatic-script-updates.md) — Automatically synchronizes local userscripts with newer versions from configured remote URLs using @updateURL metadata.
- [Inline Script Editors](https://awesome-repositories.com/f/development-tools-productivity/terminal-syntax-highlighting-engines/in-browser-code-editing/code-editors/inline-script-editors.md) — Provides a built-in code editor with syntax highlighting, linting, and bracket matching for modifying scripts directly within the extension.
- [Userscript](https://awesome-repositories.com/f/development-tools-productivity/terminal-syntax-highlighting-engines/in-browser-code-editing/code-editors/userscript.md) — Includes a built-in editor with syntax hints, linting, and bracket matching for modifying userscripts directly.

### Networking & Communication

- [Cross-Origin Request Engines](https://awesome-repositories.com/f/networking-communication/cross-origin-request-engines.md) — Enables userscripts to perform HTTP requests to any domain via GM.xmlHttpRequest, bypassing same-origin policy through the privileged background context.
- [Cross-Origin HTTP Request APIs](https://awesome-repositories.com/f/networking-communication/http-request-configurations/cross-origin-http-request-apis.md) — Provides GM.xmlHttpRequest for cross-origin requests with configurable headers, timeouts, and methods. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))

### Web Development

- [Privileged Browser](https://awesome-repositories.com/f/web-development/api-bridges/privileged-browser.md) — Provides a persistent background execution environment that bypasses standard browser sandbox restrictions for network requests and clipboard access.
- [Browser Extension Script Managers](https://awesome-repositories.com/f/web-development/browser-extension-script-managers.md) — Provides a sidebar, editor, and controls to add, edit, enable, disable, and delete custom JavaScript and CSS files. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
- [Script Update Management](https://awesome-repositories.com/f/web-development/browser-extension-script-managers/script-update-management.md) — Checking remote sources for newer script versions and automatically downloading updates when metadata specifies version and update URLs. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
- [Content Script Injection Architectures](https://awesome-repositories.com/f/web-development/custom-page-frameworks/page-content-injections/script-injections/content-script-injection-architectures.md) — Injects user scripts into web pages at configurable lifecycle points using Safari's content script API and metadata-driven matching rules.
- [Per-Page Injection Controls](https://awesome-repositories.com/f/web-development/custom-page-frameworks/page-content-injections/script-injections/per-page-injection-controls.md) — Matches userscripts to domains using metadata tags and allows toggling injection on/off for individual scripts. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
- [Metadata-Driven Injection Engines](https://awesome-repositories.com/f/web-development/metadata-driven-injection-engines.md) — Matches scripts to domains using @match, @run-at, and @weight tags for precise injection timing and targeting.
- [Page-Specific Script Execution](https://awesome-repositories.com/f/web-development/page-specific-script-execution.md) — Runs user-installed scripts automatically when a matching website loads, modifying its behavior or appearance. ([source](https://quoid.github.io/userscripts/))
- [Metadata-Driven Injection Controls](https://awesome-repositories.com/f/web-development/script-context-injections/metadata-driven-injection-controls.md) — Matching userscripts to specific domains using metadata tags and controlling injection timing and execution context per page.
- [CSS Injection](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/style-optimization-tools/css-injection.md) — Injecting dynamic CSS rules into web pages to override or extend site appearance using GM.addStyle from userscripts. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
- [Dynamic Style Injections](https://awesome-repositories.com/f/web-development/web-page-customizations/dynamic-style-injections.md) — Injects custom CSS rules into web pages at runtime using GM.addStyle, overriding or extending site styles programmatically.

### Business & Productivity Software

- [Userscript File Storage](https://awesome-repositories.com/f/business-productivity-software/note-taking-tools/file-based-storage/userscript-file-storage.md) — Reads and writes userscript files directly from a user-selected filesystem directory, enabling external editing and version control.

### Data & Databases

- [Key-Value Persistence Stores](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores.md) — Offers per-script persistent data storage across browser sessions using GM.setValue and GM.getValue APIs backed by Safari's extension storage.
- [Userscript Key-Value Stores](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/userscript-key-value-stores.md) — Offers GM_setValue and GM_getValue APIs for key-value data that persists across browser sessions per script. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))

### Operating Systems & Systems Programming

- [Script Directory Selectors](https://awesome-repositories.com/f/operating-systems-systems-programming/save-location-provisioning/script-directory-selectors.md) — Selects a directory on the filesystem where the extension reads and writes userscript files. ([source](https://cdn.jsdelivr.net/gh/quoid/userscripts@main/README.md))
