Vibe-code userscripts in place: customize any website by chatting with any LLM. A Tampermonkey-compatible userscript manager.
TypeScript
2
285 commits
updated Sep 30, 2026

Vibe-code userscripts in place. An open-source browser extension that lets you customize any website by chatting with the LLM of your choice.
Open the side panel on any page, describe what you want changed, and usermods inspects the page, writes a userscript, tests it live, and hands it to you with Try and Save buttons. Saved mods run automatically on every matching page load. Export them as standard .user.js files, share them as a GitHub gist or on Greasy Fork from your own signed-in tab (usermods fills the form; you press the button), install ones from Greasy Fork or any page that offers one, or migrate your whole Tampermonkey library in one file.
Userscripts, userstyles, usermods.
https://github.com/user-attachments/assets/b2102d80-e0ff-447f-a1c9-9c62583c4786

==UserScript== header. Nothing proprietary. MIT.Early, and working end to end: chat, page inspection, live testing, propose, save, run on load, edit an installed mod in chat, import and export. A Chrome Web Store listing is on its way; the Safari build runs on Mac, iPhone and iPad. See Roadmap.
Point at an element. + → Point at element, then click one on the page: an @reference drops into your message, so you can say "this" and mean it.
|
Pick the model in the chat. One chip holds every connected provider's models and the Thinking level. Change it mid-conversation and the next turn goes to the new one.
|
Mods. Saved scripts, split by whether they match the page you are on. Toggle, run, export or delete each one.
|
Installing an outside script. A .user.js link shows what it matches, what it is granted and what it loads, before anything is saved.
|
Dashboard. Every chat and every mod across every site, in a full tab.
|
Light and dark. The panel follows your OS, and day is its own design pass rather than night inverted.
|
More, including every screen in both themes and the iPhone build: docs/screenshots.md.
run_script, tests the finished script the way the saved mod will run (on a fresh page load when that matters), and only then proposes something you can Try and Save. The proposal says how it was tested.GM_* API, @require, @resource and @connect the scripts expect.Requires Node 22+ and Chrome 135+.
npm install
npm run build
Then in Chrome:
chrome://extensions, turn on Developer mode, click Load unpacked, and pick .output/chrome-mv3.For Safari, node scripts/safari-xcode.mjs doctor says what your Xcode allows, and simulator / mac build it. One app, one extension, both platforms, subscription sign-in included — docs/safari.md has the build, the install steps, the limitations and what has actually been seen running.
GM_* compatibility table, @connect, and the page world.usermods has no server, no account and no telemetry. The author receives nothing. To change a page, the model has to see it, so when you send a message usermods sends — directly from your browser to the provider you picked for that chat, and nowhere else — your message, the page's address and title, a pruned copy of its HTML, details of elements it looks up or you point at, and a screenshot of the visible tab when the model asks for one. If the page is your mailbox or your bank, that content goes too; close the panel on pages you would rather not share. Point usermods at a local model and nothing leaves the machine at all.
Your API key, subscription tokens, saved mods, their GM_setValue stores and your chat history all live in extension local storage on your device. Keys and tokens are sent only to the endpoint they authenticate.
The panel says all of this in the side panel before your first message, and the notice is always available again from Settings → Review data notice. The full policy is in PRIVACY.md; the Chrome Web Store submission material is in docs/store/.
Issues and pull requests are welcome. CONTRIBUTING.md covers the setup, the npm scripts, where everything lives, how to add a provider, and the one hard rule: every fix lands with a regression test. The Code of Conduct sets out how this project is run and the one line it draws.
Made by Kenneth Ballenegger.
MIT © Kenneth Ballenegger
Vibe-code userscripts in place: customize any website by chatting with any LLM. A Tampermonkey-compatible userscript manager.
TypeScript
2
285 commits
updated Sep 30, 2026

Vibe-code userscripts in place. An open-source browser extension that lets you customize any website by chatting with the LLM of your choice.
Open the side panel on any page, describe what you want changed, and usermods inspects the page, writes a userscript, tests it live, and hands it to you with Try and Save buttons. Saved mods run automatically on every matching page load. Export them as standard .user.js files, share them as a GitHub gist or on Greasy Fork from your own signed-in tab (usermods fills the form; you press the button), install ones from Greasy Fork or any page that offers one, or migrate your whole Tampermonkey library in one file.
Userscripts, userstyles, usermods.
https://github.com/user-attachments/assets/b2102d80-e0ff-447f-a1c9-9c62583c4786

==UserScript== header. Nothing proprietary. MIT.Early, and working end to end: chat, page inspection, live testing, propose, save, run on load, edit an installed mod in chat, import and export. A Chrome Web Store listing is on its way; the Safari build runs on Mac, iPhone and iPad. See Roadmap.
Point at an element. + → Point at element, then click one on the page: an @reference drops into your message, so you can say "this" and mean it.
|
Pick the model in the chat. One chip holds every connected provider's models and the Thinking level. Change it mid-conversation and the next turn goes to the new one.
|
Mods. Saved scripts, split by whether they match the page you are on. Toggle, run, export or delete each one.
|
Installing an outside script. A .user.js link shows what it matches, what it is granted and what it loads, before anything is saved.
|
Dashboard. Every chat and every mod across every site, in a full tab.
|
Light and dark. The panel follows your OS, and day is its own design pass rather than night inverted.
|
More, including every screen in both themes and the iPhone build: docs/screenshots.md.
run_script, tests the finished script the way the saved mod will run (on a fresh page load when that matters), and only then proposes something you can Try and Save. The proposal says how it was tested.GM_* API, @require, @resource and @connect the scripts expect.Requires Node 22+ and Chrome 135+.
npm install
npm run build
Then in Chrome:
chrome://extensions, turn on Developer mode, click Load unpacked, and pick .output/chrome-mv3.For Safari, node scripts/safari-xcode.mjs doctor says what your Xcode allows, and simulator / mac build it. One app, one extension, both platforms, subscription sign-in included — docs/safari.md has the build, the install steps, the limitations and what has actually been seen running.
GM_* compatibility table, @connect, and the page world.usermods has no server, no account and no telemetry. The author receives nothing. To change a page, the model has to see it, so when you send a message usermods sends — directly from your browser to the provider you picked for that chat, and nowhere else — your message, the page's address and title, a pruned copy of its HTML, details of elements it looks up or you point at, and a screenshot of the visible tab when the model asks for one. If the page is your mailbox or your bank, that content goes too; close the panel on pages you would rather not share. Point usermods at a local model and nothing leaves the machine at all.
Your API key, subscription tokens, saved mods, their GM_setValue stores and your chat history all live in extension local storage on your device. Keys and tokens are sent only to the endpoint they authenticate.
The panel says all of this in the side panel before your first message, and the notice is always available again from Settings → Review data notice. The full policy is in PRIVACY.md; the Chrome Web Store submission material is in docs/store/.
Issues and pull requests are welcome. CONTRIBUTING.md covers the setup, the npm scripts, where everything lives, how to add a provider, and the one hard rule: every fix lands with a regression test. The Code of Conduct sets out how this project is run and the one line it draws.
Made by Kenneth Ballenegger.
MIT © Kenneth Ballenegger