Skip to content

Lumo Userscripts

Lumo Userscripts

Scripts you can ask for.

A native MV3 userscript manager with a standard MCP endpoint. Lumo can create, edit and enable scripts through it — with your approval.

MCP endpointchrome.userScriptsGM APILocal-first
Agent integration

An extension agents can operate.

Lumo connects over MCP, asks once for approval, then creates, edits and enables scripts inside the same conversation that read the page.

  • Read-only until you allow writes
  • Review mode keeps new scripts disabled
  • Every write is audited
Read the connection guide
Agent protocol

Read, write, review.

A probe decides whether the provider is usable; three independent switches decide what the agent may do.

H

Lumo

MCP client

Lumo Userscripts

MCP provider

P
L0

L0 probe: installed, enabled, authorized?

sendMessage(extId, { channel: 'lumo:probe' })
L0

Stateless service + status

{ service, status: { enabled, authorized, ready } }
—

You approve the caller once

settings → agent → allowedExtensionIds
L1

L1 session: MCP over a runtime port

connect(extId, { name: 'lumo:mcp' })
L1

The agent calls the tool surface

tools/list · tools/call
Authorized by sender.id
Policy re-checked per call
Writes audited

Endpoint

Off by default.

Writes

A second switch.

Review

New scripts stay disabled.

The tool surfacenamespace: userscripts
list

The library, or the scripts that run on a URL.

read
get

Metadata and paged source code.

read
diagnostics

Runtime availability, registrations and errors.

read
set_enabled

Enable or disable a script.

write
create

Validate metadata and save a new script.

write
edit

Atomic anchored edits.

write
update

Replace the source or metadata overrides.

write
install

Install from a URL with its dependencies.

write
delete

Move a script to the recycle bin.

write
Read tools need authorization. Writes need a separate switch and are audited.
Install

Install once. Run everywhere.

Paste a URL, drop a file or use the clipboard. The install page shows the script's reach first.

  • URL, file and clipboard install
  • @require and @resource resolution
  • Permission-aware updates
Read documentation
Editor

A real editor, not a textarea.

CodeMirror 6, metadata validation, overrides, values and resources — the same script the agent can edit.

  • CodeMirror 6
  • Metadata validation and overrides
  • Values and resources in place
Read documentation
Runtime

Native registration, two engines.

Scripts run through chrome.userScripts. A MAIN-world runner serves page scripts; an isolated host runs sandboxed ones.

EnginesMAIN + USER_SCRIPT
Matching@match · @include
Dependencies@require · @resource
StorageIndexedDB

GM_setValue

Per-script storage

GM_xmlhttpRequest

Cross-origin requests

GM_cookie

Cookie access

GM_download

Managed downloads

GM_notification

System notifications

GM_registerMenuCommand

Script commands

GM_addStyle

Scoped styles

GM_addElement

DOM injection

GM_setClipboard

Clipboard write

GM_getTab

Tab state

unsafeWindow

Page-world access

GM.* aliases

Promised API

Values survive updates
1// Read once, write on change.
2const theme = GM_getValue('theme', 'system');
3GM_registerMenuCommand('Toggle theme', () => {
4 GM_setValue('theme', theme === 'dark' ? 'light' : 'dark');
5});
Control

Nothing runs without your say.

Permissions are visible before install. Updates wait for approval. Logs and the recycle bin are one click away.

PermissionWhy
userScriptsDynamic script registration
storage, unlimitedStorageSettings and bounded metadata
tabs, activeTab, webNavigation, scriptingTab context and diagnostics
declarativeNetRequestRedirect .user.js navigations to install
cookies, downloadsGM_cookie, GM_download
notifications, contextMenus, alarms, clipboardWriteGM APIs and background jobs

Recycle bin

Deleted scripts stay recoverable.

Backups

Export and restore JSON or ZIP.

Update checks

New permissions need a decision.

Logs

Registration and runtime diagnostics.

Install

Chrome 138+ and one switch.

Chrome requires you to allow user scripts for the extension once.

01

Open the releases

Download the archive or unpacked build.

Open GitHub Releases
02

Load unpacked

Enable Developer mode, then Load unpacked.

Read the docs
03

Allow user scripts

Enable Allow User Scripts on the extension card.

Read the docs
Chrome 138+. Node 22+ only when building from source.Privacy

Also from Lumo

Want the page understood first?

Lumo reads the page, calls browser and DevTools tools, and can drive this manager over MCP.

Explore Lumo