← Commit history
Publish 0.3.10
12 files changed
+196−15
README.md+9install.sh+1−1package.json+2−1page.json+60−6skills/adom-browser-extension/SKILL.md+117skills/driving-gusto/SKILL.md+1−1skills/driving-sites/SKILL.md+1−1skills/installing-the-extension/SKILL.md+1−1skills/native-browser-recording/SKILL.md+1−1skills/native-browser-safety/SKILL.md+1−1skills/uninstalling-the-extension/SKILL.md+1−1uninstall.sh+1−1README.md+9@@ -127,11 +127,20 @@ Third parties are welcome to build their own version. The **[Fork & develop plus a growing list of **site recipes** that teach the AI how to drive specific websites. Each links to its full readme. +**Start here**++| Skill | What it covers |+|---|---|+| [`adom-browser-extension`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/adom-browser-extension/SKILL.md) | **The main skill / router.** When to reach for the real browser (login/forms) vs pup, the `nbrowser_readiness` cold-start check, the offer-to-install hook, the three install surfaces (skills + bridge + extension), and the map to every sub-skill. |+ **Core mechanics** | Skill | What it covers | |---|---| | [`driving-the-extension`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/driving-the-extension/SKILL.md) | The full `nbrowser_*` surface: the CDP-vs-native "debugging" bar, `isTrusted` input + xy-finding, multi-profile driving, the credential-library query + login automation, the taskbar status feature. |+| [`native-browser-safety`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/native-browser-safety/SKILL.md) | The cardinal safety rules: only drive windows YOU opened, background-by-default, the credential gating, and the blocklist. Read before driving. |+| [`installing-the-extension`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/installing-the-extension/SKILL.md) | How WE install the extension into the user's Chrome/Edge over adom-desktop's generic verbs (dev-mode Load-unpacked, one-click consent, verify-by-screenshot). |+| [`uninstalling-the-extension`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/uninstalling-the-extension/SKILL.md) | Clean removal - filter to the Adom card so Remove is unambiguous, the confirm-bubble beat, verify by screenshot + dropped profile key. | | [`native-browser-recording`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/native-browser-recording/SKILL.md) | Full-framerate **background** recording of the user's real, logged-in Chrome - the occlusion-flag mode, the restart-into-background-recording flow, and the offer-to-revert-for-battery step (the unique capability). | | [`driving-the-desktop`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/driving-the-desktop/SKILL.md) | OS-level control via `desktop_*` when CDP can't reach (extension lifecycle, `chrome://` pages, native dialogs, popups) - including the ⛔ never-drive-a-PWA-window guard and the v20 saved-password ban. | | [`driving-the-extension-demo`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/driving-the-extension-demo/SKILL.md) | A runnable demo playbook - recipes + the recording gotchas (window-capture-vs-CDP white pages, the keep-awake guard). |
install.sh+1−1@@ -3,7 +3,7 @@ # (The extension itself loads into Chrome/Edge via "Load unpacked" from extension/, or the Web Store.) set -e DEST="${HOME}/.claude/skills"-for name in cross-platform-dev driving-the-extension native-browser-safety installing-the-extension uninstalling-the-extension native-browser-recording driving-the-extension-demo driving-the-desktop driving-sites driving-gusto reading-google-messages; do+for name in adom-browser-extension cross-platform-dev driving-the-extension native-browser-safety installing-the-extension uninstalling-the-extension native-browser-recording driving-the-extension-demo driving-the-desktop driving-sites driving-gusto reading-google-messages; do mkdir -p "$DEST/$name" cp "skills/$name/SKILL.md" "$DEST/$name/SKILL.md" echo "installed skill: $name"
package.json+2−1@@ -1,6 +1,6 @@ { "slug": "adom-browser-extension",- "version": "0.3.9",+ "version": "0.3.10", "type": "app", "title": "Adom Native Browser Extension (Chrome + Edge)", "description": "Drive your real, logged-in Chrome/Edge from the Adom ecosystem: the nbrowser_* native-browser bridge (counterpart to pup). Multi-profile driving, a read-only credential-library query over the browser's own saved logins (Chrome + Edge), and hands-free vendor login automation, so chip CAD / datasheets download past every login wall in your real signed-in session.",@@ -14,6 +14,7 @@ "page.json", "README.md", "docs/INSTALL-FLOW.md",+ "skills/adom-browser-extension/SKILL.md", "skills/cross-platform-dev/SKILL.md", "skills/driving-the-extension/SKILL.md", "skills/native-browser-safety/SKILL.md",
page.json+60−6@@ -9,11 +9,11 @@ "chrome", "edge", "nbrowser",- "ai-agent",- "developer-tools",- "vibe-coding",+ "pup", "native-messaging",- "adom-desktop"+ "adom-desktop",+ "credentials",+ "chip-fetcher" ], "status": "live", "discovery_triggers": [@@ -57,5 +57,59 @@ }, "visibility": "public", "brief": "Your AI's hands in your real, signed-in Chrome & Edge: build, drive, and test web apps, and log past vendor walls, in the browser you already use. The nbrowser_* native-browser bridge (pup's counterpart) - runs in your actual logged-in profile, so cookies/SSO/saved-logins/captcha all work.",- "discovery_pitch": "The native-browser extension drives the user's REAL signed-in Chrome/Edge via nbrowser_* verbs: use it for LOGGING IN, filling forms, and downloading behind auth with their OWN saved passwords - pup cannot (it is a fresh Chrome-for-Testing with no logins). Next moves: run 'adom-desktop bridge_list' to check it is installed; if not, OFFER to install it (see the installing-the-extension skill) - never make the user do it. If this container lacks the skills, 'adom-wiki pkg install adom/adom-browser-extension'. Check readiness with 'adom-desktop nbrowser_readiness' (state:needs-extension means offer the install)."-}+ "discovery_pitch": "The native-browser extension drives the user's REAL signed-in Chrome/Edge via nbrowser_* verbs: use it for LOGGING IN, filling forms, and downloading behind auth with their OWN saved passwords - pup cannot (it is a fresh Chrome-for-Testing with no logins). Next moves: run 'adom-desktop bridge_list' to check it is installed; if not, OFFER to install it (see the installing-the-extension skill) - never make the user do it. If this container lacks the skills, 'adom-wiki pkg install adom/adom-browser-extension'. Check readiness with 'adom-desktop nbrowser_readiness' (state:needs-extension means offer the install).",+ "version": "0.3.10",+ "type": "app",+ "description": "Drive your real, logged-in Chrome/Edge from the Adom ecosystem: the nbrowser_* native-browser bridge (counterpart to pup). Multi-profile driving, a read-only credential-library query over the browser's own saved logins (Chrome + Edge), and hands-free vendor login automation, so chip CAD / datasheets download past every login wall in your real signed-in session.",+ "install": {+ "binary_name": "adom-browser-extension"+ },+ "files": [+ "install.sh",+ "uninstall.sh",+ "package.json",+ "page.json",+ "README.md",+ "docs/INSTALL-FLOW.md",+ "skills/adom-browser-extension/SKILL.md",+ "skills/cross-platform-dev/SKILL.md",+ "skills/driving-the-extension/SKILL.md",+ "skills/native-browser-safety/SKILL.md",+ "skills/installing-the-extension/SKILL.md",+ "skills/uninstalling-the-extension/SKILL.md",+ "skills/native-browser-recording/SKILL.md",+ "skills/driving-the-extension-demo/SKILL.md",+ "skills/driving-the-desktop/SKILL.md",+ "demo/adom-native-browser-demo.mp4",+ "host/native-host.js",+ "bridge/server.js",+ "skills/driving-sites/SKILL.md",+ "skills/driving-gusto/SKILL.md",+ "skills/reading-google-messages/SKILL.md",+ "screenshots/hero-v5.png",+ "PRIVACY.md",+ "privacy.html",+ "screenshots/usecase-oscilloscope.png",+ "screenshots/usecase-chipfetcher.png",+ "screenshots/usecase-symbol.png",+ "screenshots/usecase-eda.png",+ "screenshots/usecase-board.png",+ "screenshots/usecase-chipsmith.png",+ "screenshots/hero.png",+ "docs/UNINSTALL-FLOW.md",+ "screenshots/extensions-adom-card.png",+ "screenshots/install-folder-picker.png",+ "screenshots/uninstall-confirm-bubble.png",+ "screenshots/hero-v7.png"+ ],+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "dependencies": {},+ "org": "adom",+ "author": {+ "name": "John Lauer",+ "email": "[email protected]"+ }+}
skills/adom-browser-extension/SKILL.mdadded+117@@ -0,0 +1,117 @@+---+name: adom-browser-extension+description: "MAIN skill for the Adom Native Browser Extension - the nbrowser_* bridge that drives the user's REAL, signed-in Chrome/Edge (pup's counterpart, but inside their actual logged-in profile so cookies/SSO/saved-logins/captcha all work). START HERE. Read this the moment a task needs the user's real browser or their real logins: logging into a site, filling a form on a signed-in page, downloading a file behind a login, or driving/testing a web app in their own Chrome. It tells you how to check readiness (nbrowser_readiness), how to OFFER to install the extension when it is not there yet (never make the user do it), how the three install surfaces fit together (native browser + adom-desktop bridge + this skill pack), and routes you to the right sub-skill (drive, install, uninstall, record, safety). Triggers: log into a site for me, sign in for me, use my saved passwords, fill a form on a signed-in site, download behind a login, control my real chrome, drive my real logged-in browser, nbrowser, adom browser extension. Part of the adom-browser-extension."+---++# Adom Native Browser Extension (`nbrowser_*`) - start here++This is the **native-browser** bridge: it drives the user's **real, signed-in Chrome/Edge** from the+cloud, the same way `pup` drives a controlled Chromium. The difference is the whole point - it runs+**inside the user's actual profile**, so their cookies, SSO, saved logins, cards, carts and+human-trust signals all apply. It sails through **login walls and captchas** that block pup's empty+Chrome-for-Testing. When a task needs the user's *real* browser or their *real* logins, this is the+tool - not pup.++## When to reach for this (vs pup)++| The task | Tool |+|---|---|+| Log into a site, fill a form on a signed-in page, download behind a login, use saved passwords | **native-browser (this)** |+| Screenshot / scrape / test a PUBLIC page, no login needed | pup |+| Drive/test a web app the user is building, in THEIR browser with THEIR sessions | **native-browser (this)** |++If the user says "log into X for me", "sign in", "use my saved password", "fill out this form on a+site I'm logged into", "grab that file behind the login", or "drive my real Chrome" - that is this+bridge. pup cannot do it (fresh profile, no logins).++## Step 0 - is it even installed yet? Check readiness FIRST++The extension is a **Level-2, proactively-offered** install: it is often NOT present until someone+asks for it. Before you try to drive anything, probe (READ-ONLY, never triggers an install):++```+adom-desktop nbrowser_readiness+```++- `state:"ready"` (extensionConnected:true, one or more profiles) -> go drive it (**driving-the-extension**).+- `state:"needs-extension"` -> the bridge is up but the browser extension is not connected. This is+ your cue to **OFFER to install it** (next section) - do NOT silently give up, and do NOT make the+ user do it by hand.++If `nbrowser_readiness` itself errors (verb unknown / bridge missing), the AD bridge isn't installed+in this adom-desktop yet - see "The three install surfaces" below.++## The install-offer hook - suggest it exactly when the user needs a login++The best moment to install this is **the moment the user needs it** - they ask you to log into a+vendor, fill a form on an authenticated page, or pull a file behind a paywall/login. When+`nbrowser_readiness` says `needs-extension`, tell the user plainly:++> "To do that in your real signed-in browser (so your saved login works), I can install the Adom+> browser extension into your Chrome/Edge - about a minute, I drive it, you just click one Start+> button. Want me to?"++On yes, run **installing-the-extension**. Never demand the user click through `chrome://extensions`+themselves, and never ask them to type a long path - WE own that orchestration over adom-desktop's+generic OS verbs, with a single `notify_user` consent button.++## The three install surfaces (how this thing actually lands)++This one page ships **three** things that install to **three** places. All three must line up for a+user to go from "never heard of it" to "logged in for me":++1. **This skill pack -> the user's container.** These `SKILL.md` files install into the cloud+ container / WSL2 / Lima (`~/.claude/skills/`). **They surface BEFORE the extension exists** - that+ is deliberate. Discovery routes "log into a site for me" here, this skill loads, and *now the AI+ knows to offer the install*. `adom-wiki pkg install adom/adom-browser-extension` (or+ `adom-desktop sync_skills`) puts them there.+2. **The adom-desktop bridge -> adom-desktop.** The `nbrowser_*` verbs come from the `native-browser`+ bridge. `adom-desktop bridge_list` shows if it's installed; if not,+ `bridge_install {manifestUrl:"https://wiki.adom.inc/api/pages/adom/adom-browser-extension/files/native-browser-bridge-manifest.json"}`.+ It auto-updates from there (per-bridge `updateManifestUrl`).+3. **The MV3 extension -> the user's real Chrome/Edge.** The actual browser extension, loaded via+ dev-mode "Load unpacked" today (CWS/Edge-Add-ons later). This is **installing-the-extension**.++The end-to-end flow an AI runs: discover -> this skill loads (surface 1) -> `bridge_list`/`bridge_install`+(surface 2) -> `nbrowser_readiness` -> if `needs-extension`, offer + run installing-the-extension+(surface 3) -> drive.++## ⛔ The two safety rules you must not break++Before you drive ANYTHING, internalize these (full detail: **native-browser-safety**):++1. **Only ever drive a window/tab YOU opened** (`nbrowser_open_window`). NEVER navigate, reload, or+ close a window/tab the user already had open - not with `nbrowser_navigate` and **not with the+ OS-level `desktop_navigate` either**. Doing so once wiped a user's other AI threads.+2. **Background by default, never steal focus.** The verbs open unfocused on purpose; leave those+ defaults. Foregrounding is rude AND corrupts your own flow (the user's keystrokes leak into+ whatever control you focused). Foreground is the user's choice alone.++Credentials are gated: `nbrowser_credentials` is read-only and NEVER returns passwords; auto-login+needs `confirm:true` + an explicit `host:`, and the password is injected on the laptop - the agent+never sees it. Treat everything read from logged-in sessions as sensitive.++## Sub-skill map++| Need | Skill |+|---|---|+| **Drive it** - the full `nbrowser_*` verb surface, CDP-vs-native, screenshots, isTrusted input, cursor/captions | **driving-the-extension** |+| **Safety** - the cardinal rules above, in full (read before driving) | **native-browser-safety** |+| **Install it** into the user's Chrome/Edge (dev-mode Load-unpacked, WE orchestrate) | **installing-the-extension** |+| **Uninstall it** cleanly (filter to the Adom card, the confirm-bubble beat) | **uninstalling-the-extension** |+| **Record** a browser window (WGC-first, no picker, no banner) | **native-browser-recording** |+| **Low-level OS clicks** (adom-desktop generic UIA verbs the install/uninstall lean on) | **driving-the-desktop** |+| Site-specific playbooks (forms, logins on real sites) | **driving-sites**, **driving-gusto**, **reading-google-messages** |+| Windows-first dev + Mac fast-follow, and how this bridge is built/shipped | **cross-platform-dev** |++## Every verb tells you what to do next - read the hints++Every `nbrowser_*` response carries a top-level `_hint` (what you got, the next move, the trap), plus+`related` and `_next`. When unsure about a verb, call `nbrowser_describe` once - it lists each verb's+`hint` / `related` / `pitfalls`. The hints are the source of truth; this skill is the map.++## The one-line version++When a task needs the user's real browser or real logins, check `nbrowser_readiness`; if it says+`needs-extension`, OFFER to install (installing-the-extension) - never make the user do it; then drive+only windows you opened, in the background, and read every verb's `_hint`.
skills/driving-gusto/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: driving-gusto-description: Site recipe for logging into and out of Gusto (login.gusto.com / app.gusto.com) with the Adom browser extension. Gusto is Keycloak (realm "zenpayroll") in front of a Rails app. Covers the smart login (the form usually AUTOFILLS — just submit, fully background), Google SSO, the 2FA gate, and the #1 gotcha: NEVER log out by wiping cookies (it nukes device-trust → forces 2FA → lockout) — use Gusto's own Sign out. Match when the user says "log into gusto", "gusto login", "open gusto", "sign into payroll", "log out of gusto", or you're driving login.gusto.com / app.gusto.com. Part of the adom-browser-extension site-recipe set (see driving-sites).+description: "Site recipe for logging into and out of Gusto (login.gusto.com / app.gusto.com) with the Adom browser extension. Gusto is Keycloak (realm \"zenpayroll\") in front of a Rails app. Covers the smart login (the form usually AUTOFILLS — just submit, fully background), Google SSO, the 2FA gate, and the #1 gotcha: NEVER log out by wiping cookies (it nukes device-trust → forces 2FA → lockout) — use Gusto's own Sign out. Match when the user says \"log into gusto\", \"gusto login\", \"open gusto\", \"sign into payroll\", \"log out of gusto\", or you're driving login.gusto.com / app.gusto.com. Part of the adom-browser-extension site-recipe set (see driving-sites)." --- Part of the **adom-browser-extension** site-recipe set → see **driving-sites**. The generic mechanics (autofill popup, owned popups, the debugger banner, background vs foreground) live in
skills/driving-sites/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: driving-sites-description: The index of SITE RECIPES for the Adom browser extension — per-site playbooks that teach the AI how to drive a specific website (login flow, key selectors, gotchas, 2FA, logout) so it doesn't re-discover them every time. Read this when about to automate a known site, when you keep fighting a site's quirks, or when you (or a third party) want to CONTRIBUTE a new site recipe. Match on: site recipe, driving a website, how to log into <site>, site-specific automation, contribute a site recipe, add a site playbook, navigate <vendor> site. Lists the known recipes (driving-gusto, …) and the template + breadcrumb flow for adding more.+description: "The index of SITE RECIPES for the Adom browser extension — per-site playbooks that teach the AI how to drive a specific website (login flow, key selectors, gotchas, 2FA, logout) so it doesn't re-discover them every time. Read this when about to automate a known site, when you keep fighting a site's quirks, or when you (or a third party) want to CONTRIBUTE a new site recipe. Match on: site recipe, driving a website, how to log into <site>, site-specific automation, contribute a site recipe, add a site playbook, navigate <vendor> site. Lists the known recipes (driving-gusto, …) and the template + breadcrumb flow for adding more." --- Parent: **driving-the-extension** · generic OS/popup mechanics: **driving-the-desktop**.
skills/installing-the-extension/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: installing-the-extension-description: How WE (this repo) install the Adom browser extension into the user's real Chrome/Edge in DEVELOPER MODE ("Load unpacked"), driving adom-desktop's GENERIC OS verbs. This is OUR orchestration, not an adom-desktop feature - AD only exposes primitives (desktop_navigate / desktop_find_control / desktop_ui_click / desktop_ui_set / desktop_screenshot); the recipe, hardening, and recovery live here. This is the DAY-ONE install path: Chrome Web Store / Edge Add-ons review is ~2 months out, so until then dev-mode load-unpacked is how a real user gets the extension. Use when the user says "install the extension", "install it for me", "load the extension into my browser", "set up the browser extension", "the extension isn't loaded yet". For the low-level click mechanics (popups, the PWA guard, uninstall/reload), see driving-the-desktop. Part of the adom-browser-extension.+description: "How WE (this repo) install the Adom browser extension into the user's real Chrome/Edge in DEVELOPER MODE (\"Load unpacked\"), driving adom-desktop's GENERIC OS verbs. This is OUR orchestration, not an adom-desktop feature - AD only exposes primitives (desktop_navigate / desktop_find_control / desktop_ui_click / desktop_ui_set / desktop_screenshot); the recipe, hardening, and recovery live here. This is the DAY-ONE install path: Chrome Web Store / Edge Add-ons review is ~2 months out, so until then dev-mode load-unpacked is how a real user gets the extension. Use when the user says \"install the extension\", \"install it for me\", \"load the extension into my browser\", \"set up the browser extension\", \"the extension isn't loaded yet\". For the low-level click mechanics (popups, the PWA guard, uninstall/reload), see driving-the-desktop. Part of the adom-browser-extension." --- Part of **adom-browser-extension**. Low-level OS-driving mechanics: **driving-the-desktop**. Safety rules: **native-browser-safety**.
skills/native-browser-recording/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: native-browser-recording-description: How to record full-resolution, high-framerate demo videos of a browser window in the BACKGROUND so the user keeps working. THE BEST PATH is the core adom-desktop verb desktop_record_window_start (WGC) - or nbrowser_record_start {method:"wgc"}, which delegates to it: no source picker, no banner, captures occluded windows, no focus theft. The extension's own getDisplayMedia/tabcapture recording is a LAST-RESORT FALLBACK (Chrome forces a manual share-source picker a human must click) and is refused unless you pass fallbackConfirmed:true. Use the native browser ONLY when a demo needs the user's real session/cookies/logins; otherwise record via pup or Hydrogen (see the demo-recording skill). Covers WGC vs the heinous getDisplayMedia picker, the paint-throttling problem, the occlusion/throttle-disable launch flags, the restart-native-Chrome-into-background-recording-mode flow (ask + warn + full process-tree kill + relaunch with profile + flags), and the offer-to-revert-for-battery step. Match on: record a browser window, record the native browser, record a logged-in demo, background recording of Chrome, nbrowser_record, desktop_record_window_start, WGC, source picker, share picker, full-framerate native recording. Part of the adom-browser-extension.+description: "How to record full-resolution, high-framerate demo videos of a browser window in the BACKGROUND so the user keeps working. THE BEST PATH is the core adom-desktop verb desktop_record_window_start (WGC) - or nbrowser_record_start {method:\"wgc\"}, which delegates to it: no source picker, no banner, captures occluded windows, no focus theft. The extension's own getDisplayMedia/tabcapture recording is a LAST-RESORT FALLBACK (Chrome forces a manual share-source picker a human must click) and is refused unless you pass fallbackConfirmed:true. Use the native browser ONLY when a demo needs the user's real session/cookies/logins; otherwise record via pup or Hydrogen (see the demo-recording skill). Covers WGC vs the heinous getDisplayMedia picker, the paint-throttling problem, the occlusion/throttle-disable launch flags, the restart-native-Chrome-into-background-recording-mode flow (ask + warn + full process-tree kill + relaunch with profile + flags), and the offer-to-revert-for-battery step. Match on: record a browser window, record the native browser, record a logged-in demo, background recording of Chrome, nbrowser_record, desktop_record_window_start, WGC, source picker, share picker, full-framerate native recording. Part of the adom-browser-extension." --- Part of **adom-browser-extension** (see **driving-the-extension** for the verb surface). The broad demo pipeline (Hydrogen vs pup, scripting, TTS, storyboard, mux, wiki upload) lives in the **demo-recording**
skills/native-browser-safety/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: native-browser-safety-description: SAFETY rules for any agent driving the Adom browser extension (nbrowser_* verbs). This bridge drives the user's REAL, signed-in Chrome/Edge - their live tabs, forms, sessions, saved logins, and other AI threads. Read this BEFORE driving. The cardinal rule: only ever act on a window/tab YOU opened (nbrowser_open_window); NEVER navigate, reload, or close a window/tab the user already had open (this includes the OS-level desktop_navigate) - doing so destroyed a user's other Claude threads once. Also: background by default (never foreground unless asked), the CDP "debugging" bar, credentials/autologin are gated and never expose passwords, recording is WGC-first, and the user blocklist is hands-off. Match on: browser safety, agent browser isolation, don't touch my tabs, navigated my window, wiped my threads, never reuse a window, background by default, real browser safety, nbrowser safety, drive the real browser safely. Part of the adom-browser-extension.+description: "SAFETY rules for any agent driving the Adom browser extension (nbrowser_* verbs). This bridge drives the user's REAL, signed-in Chrome/Edge - their live tabs, forms, sessions, saved logins, and other AI threads. Read this BEFORE driving. The cardinal rule: only ever act on a window/tab YOU opened (nbrowser_open_window); NEVER navigate, reload, or close a window/tab the user already had open (this includes the OS-level desktop_navigate) - doing so destroyed a user's other Claude threads once. Also: background by default (never foreground unless asked), the CDP \"debugging\" bar, credentials/autologin are gated and never expose passwords, recording is WGC-first, and the user blocklist is hands-off. Match on: browser safety, agent browser isolation, don't touch my tabs, navigated my window, wiped my threads, never reuse a window, background by default, real browser safety, nbrowser safety, drive the real browser safely. Part of the adom-browser-extension." --- Part of **adom-browser-extension**. Verb surface: **driving-the-extension**. Recording: **native-browser-recording**.
skills/uninstalling-the-extension/SKILL.md+1−1@@ -1,6 +1,6 @@ --- name: uninstalling-the-extension-description: How WE (this repo) uninstall the Adom browser extension from the user's real Chrome/Edge, driving adom-desktop's GENERIC OS verbs - BACKGROUND-first, never stealing focus. Covers the critical safety guard (all "Remove" buttons share the same name, so filter the list to the Adom card first or you can remove the WRONG extension), the Remove-confirm bubble (a Chromium owned popup that needs ONE brief foreground beat because it dies on focus loss), verifying removal by screenshot AND by the nbrowser_ profile key dropping, and optional full cleanup (native-messaging host + bridge). Use when the user says "uninstall the extension", "remove the Adom extension", "take it out of my browser", "reinstall it" (uninstall then installing-the-extension). Low-level click mechanics: driving-the-desktop. Safety: native-browser-safety. Part of the adom-browser-extension.+description: "How WE (this repo) uninstall the Adom browser extension from the user's real Chrome/Edge, driving adom-desktop's GENERIC OS verbs - BACKGROUND-first, never stealing focus. Covers the critical safety guard (all \"Remove\" buttons share the same name, so filter the list to the Adom card first or you can remove the WRONG extension), the Remove-confirm bubble (a Chromium owned popup that needs ONE brief foreground beat because it dies on focus loss), verifying removal by screenshot AND by the nbrowser_ profile key dropping, and optional full cleanup (native-messaging host + bridge). Use when the user says \"uninstall the extension\", \"remove the Adom extension\", \"take it out of my browser\", \"reinstall it\" (uninstall then installing-the-extension). Low-level click mechanics: driving-the-desktop. Safety: native-browser-safety. Part of the adom-browser-extension." --- Part of **adom-browser-extension**. Install: **installing-the-extension**. Low-level OS mechanics: **driving-the-desktop**. Safety: **native-browser-safety**.
uninstall.sh+1−1@@ -1,5 +1,5 @@ #!/usr/bin/env bash DEST="${HOME}/.claude/skills"-for name in cross-platform-dev driving-the-extension native-browser-safety installing-the-extension uninstalling-the-extension native-browser-recording driving-the-extension-demo driving-the-desktop driving-sites driving-gusto reading-google-messages; do+for name in adom-browser-extension cross-platform-dev driving-the-extension native-browser-safety installing-the-extension uninstalling-the-extension native-browser-recording driving-the-extension-demo driving-the-desktop driving-sites driving-gusto reading-google-messages; do rm -rf "$DEST/$name" && echo "removed skill: $name" done