MCPcopy Index your code
hub / github.com/violentmonkey/violentmonkey

github.com/violentmonkey/violentmonkey @v2.41.1 sqlite

repository ↗ · DeepWiki ↗ · release v2.41.1 ↗
972 symbols 2,594 edges 138 files 138 documented · 14%
README

Violentmonkey

Chrome Web Store Firefox Add-ons Microsoft Edge Add-on

Violentmonkey provides userscripts support for browsers. It works on browsers with WebExtensions support.

More details can be found here.

Join our Discord server:

Discord

Automated Builds for Testers

A test build is generated automatically for changes between beta releases. It can be installed as an unpacked extension in Chrome and Chromium-based browsers or as a temporary extension in Firefox. It's likely to have bugs so do an export in Violentmonkey settings first. This zip is available only if you're logged-in on GitHub site. Open an entry in the CI workflows table and click the Violentmonkey-... link at the bottom to download it.

Workflows

Development

Install Node.js and PNPM. The version of Node.js should match "node" key in package.json.

# Install dependencies
$ pnpm i

# Watch and compile
$ pnpm dev

Then load the extension from 'dist/'.

Test + lint

$ pnpm run ci

Build

To release a new version, we must build the assets and upload them to web stores.

# Build for normal releases
$ pnpm build

# Build for self-hosted release that has an update_url
$ pnpm build:selfHosted

Release

See RELEASE for the release flow.

Related Projects

Extension points exported contracts — how you extend this code

Bag (Interface)
* Contains the injected data and non-injected auxiliaries
src/types.d.ts
Script (Interface)
* Script prepared for injection
src/types.d.ts
GMContext (Interface)
(no doc)
src/types.d.ts
BG (Interface)
(no doc)
src/types.d.ts
Content (Interface)
(no doc)
src/types.d.ts

Core symbols most depended-on inside this repo

map
called by 64
src/background/sync/webdav.js
get
called by 59
scripts/i18n.js
testScript
called by 51
src/background/utils/tester.js
filter
called by 50
src/background/sync/webdav.js
set
called by 34
src/background/utils/storage.js
setOwnProp
called by 30
src/injected/safe-globals.js
isRemote
called by 26
src/common/util.js
isObject
called by 24
src/common/safe-globals-shared.js

Shape

Function 870
Method 53
Class 26
Interface 23

Languages

TypeScript100%

Modules by API surface

src/background/sync/base.js50 symbols
src/background/utils/preinject.js41 symbols
src/background/utils/db.js39 symbols
src/common/util.js30 symbols
src/common/ui/code-js-mixed-mode.js26 symbols
src/background/sync/webdav.js26 symbols
src/background/utils/tester.js24 symbols
src/types.d.ts23 symbols
src/injected/web/gm-api.js22 symbols
src/background/sync/s3.js22 symbols
scripts/transifex.mjs22 symbols
src/options/utils/dragging.js20 symbols

Dependencies from manifests, versioned

@actions/core1.11.1 · 1×
@actions/github9.1.1 · 1×
@babel/core7.29.7 · 1×
@babel/eslint-parser7.22.15 · 1×
@babel/helper-plugin-utils7.29.7 · 1×
@babel/plugin-syntax-function-bind7.29.7 · 1×
@babel/plugin-transform-for-of7.29.7 · 1×
@babel/plugin-transform-runtime7.29.7 · 1×
@babel/preset-env7.29.7 · 1×
@babel/preset-typescript7.29.7 · 1×
@iconify-json/mdi1.2.3 · 1×
@types/chrome0.1.42 · 1×

For agents

$ claude mcp add violentmonkey \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact