Production-ready skeleton for DRY, SOLID, KISS, YAGNI Tampermonkey automation targeting:
- Jira -
https://jira.carvana.com/* - Oracle (Carvana) -
https://edsk.fa.us2.oraclecloud.com/* - Carma -
https://carma.cvnacorp.com/*
Shared TypeScript core:
- Non‑brittle selectors (
css/id/role/tag/type/attributes/text,and/or/not/within/nth,visible) - Wait utilities with MutationObserver + polling + stability time
- Declarative workflows (click/type/wait/extract/branch/error) with persistence/resume
- Dynamic menu (Shadow DOM): Actions, Automations, Settings (Theme/Storage/Logs) + Developer mode for selectors/JSON
Looking to build your own pages/workflows? See AGENTS.md.
Requirements: Node 18+, npm.
npm i
npm run buildThis outputs userscripts in dist/ (one per packages/*-userscript):
jira.user.jsoracle.user.jscarma-bulk-search-scraper.user.js
Install each in Tampermonkey (drag into the browser or paste into a new script).
To enable Tampermonkey auto-update during development, run the local userscript server
and build with a local US_BASE_URL so @downloadURL / @updateURL point to localhost.
Recommended (one command):
npm run devThis runs the userscript server and a build watcher in parallel. If you prefer separate terminals:
Terminal 1:
npm run serve:userscriptsTerminal 2:
npm run build:watchThen install the script from http://localhost:4873/<script>.user.js (e.g. open the
root http://localhost:4873/ and click the file). After rebuilds, Tampermonkey
will auto-update from the local server.
Optional overrides:
US_HOST=localhost US_PORT=4873 npm run serve:userscripts
US_BASE_URL=http://localhost:4873 npm run buildThe default registry is demo‑only. On a matching site, click the gear:
- Run Demo: Title → Clipboard to copy the page title and show a preview.
- Try Demo: Page Info and Demo: List Links to validate extraction & presentation.
Then jump to AGENTS.md to add your own pages and real workflows.