Docs
Install
What HolySN needs from your browser, and how to load it before a store listing exists.
Requirements
Chrome or Edge, version 128 or newer. Two APIs set that floor: MAIN-world script
injection, which arrived in 111, and response-header rewriting through
declarativeNetRequest, which the shared-session guard needs and which arrived in 128.
Firefox is not supported yet.
There is no store listing yet
Chrome Web Store review treats user-supplied scripts as remote code, and the Rules feature runs scripts you save. That is a policy problem rather than a packaging one, so the realistic first channels are a self-hosted package or an enterprise policy install. Join the waitlist and you will hear which one opens first.
Monaco is already bundled with the extension instead of being pulled from a CDN, so the editor is not part of that problem.
Loading it unpacked
If you have the repository, build it and load the output:
cd extension-ai
node build.mjs --resources # first run: also downloads the bundled resources
node build.mjs # afterwards: fast rebuild
Then open chrome://extensions, turn on Developer mode, choose Load unpacked,
and select extension-ai/dist.
To produce a zip instead:
node build.mjs --resources --zip
First run
Open any ServiceNow page. The panel attaches itself, and Alt+Shift+P opens the command
palette. Nothing is enabled behind your back: dark mode is off until you turn it on, and
the AI assistant's four permissions all start denied.
Which build to run where
The extension and the Tampermonkey userscript are built from the same source. The extension does things a userscript cannot, including instance-wide dark mode and access to HttpOnly cookies.
One thing points the other way. The userscript generates its identity keys inside
Tampermonkey's own sandbox, where a hostile page cannot hook crypto.subtle. In the
extension the widget shares a realm with the page, so that hardening is lost. On an
instance you do not control, prefer the userscript build until this is fixed.
