app
Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
← Commit history
SKILL.md+8−8@@ -214,7 +214,7 @@ Returns categorized JSON with every command, its required/optional args, return **Two kinds of verbs (v1.9.103 — don't confuse them):** - **BUILT-IN AD-core verbs** are always available on every Adom Bridge, no install, NOT bridges. This is where screenshots, windows, input, files, registry, shell, tunnel, update, and notify live. A whole-screen shot is `desktop_screenshot_screen`; one window (with chrome) is `desktop_screenshot_window {"hwnd":N}` or `{"titleContains":"..."}` (get hwnds from `desktop_list_windows`).-- **BRIDGE verbs** (`kicad_`/`fusion_`/`browser_`/`blender_`/`nbrowser_`…) need that bridge installed — see `installed_bridges_on_target` in `commands`, or run `bridge_list`.+- **BRIDGE verbs** (`kicad_`/`fusion_`/`pup_`/`blender_`/`nbrowser_`…) need that bridge installed — see `installed_bridges_on_target` in `commands`, or run `bridge_list`. If a verb returns `errorCode:"unknown_verb"`, **read the error's `_hint`** — it carries a fuzzy "did you mean" (e.g. `desktop_screenshot` → `desktop_screenshot_screen`) and tells you whether the right verb is built-in or a bridge. Don't conclude a capability is "a missing bridge" from a guessed verb name; call `commands` and check. @@ -401,7 +401,7 @@ Migration note: pre-1.8.116 embedded boots persisted a permanent grant that leak KiCad, Fusion, Browser/Puppeteer, and all third-party bridges now bind OS-assigned ephemeral ports (not the legacy 8772/8773/8851 you may remember). The runtime port changes every spawn. **Callers never need to know it.** -- The CLI verb namespace (`kicad_*`, `fusion_*`, `browser_*`, plus any third-party `<bridge>_*`) is the contract. Always go through that.+- The CLI verb namespace (`kicad_*`, `fusion_*`, `pup_*`, plus any third-party `<bridge>_*`) is the contract. Always go through that. - adom-bridge's direct API forwards to whatever port each bridge is on at the moment of the call. - `bridge_list` reports `spawn.runtimePort` per bridge for debugging — do NOT hardcode it anywhere. - Why this changed: HD's bridges also wanted 8772/8773/8851; we used to collide silently. Dynamic ports = clean coexistence.@@ -1143,7 +1143,7 @@ adom-bridge-cli pull_file '{"path": "C:/tmp/mfg/cpl.csv"}' | **Profile / data** | The user's real profile: saved logins, history, bookmarks, extensions, autofill | Isolated profile under `plugins/puppeteer/profiles/<sessionId>/` — empty, no saved logins | | **Who interacts with the page** | The HUMAN. Claude hands the URL off and is done. | CLAUDE drives it programmatically — screenshots, clicks, eval, recording. The human just watches. | | **Use when** | A login is required (claude.ai, GitHub, internal tools, banking) — the human's existing session must be reused | Automation, scraping, screenshot capture, video recording, headful UI testing |-| **Can Claude control it after launch?** | No — once handed off, Claude can't see or drive it | Yes — every `browser_*` verb (screenshot, eval, navigate, record, etc.) |+| **Can Claude control it after launch?** | No — once handed off, Claude can't see or drive it | Yes — every `pup_*` verb (screenshot, eval, navigate, record, etc.) | **Decision rule:** human-in-the-loop login flow → `desktop_open_url`. AI-driven automation → `pup_open_window` (defaults to Chrome for Testing). AI-driven automation that **must** be the user's real, signed-in profile (GCP Console with org/projects, internal SSO behind a managed-Chrome policy, anything Context-Aware Access blocks for non-enrolled browsers) → `pup_open_window` with the new `nativeBrowser` + `nativeProfile` args (v1.0.5+, see below). @@ -1239,7 +1239,7 @@ If you don't have the suffix handy, just ask the user. Or if the file you wanted #### Real OS input — mouse + keyboard (v1.8.170+) -`desktop_click` / `desktop_double_click` / `desktop_right_click` / `desktop_hover` / `desktop_type` / `desktop_press_key` synthesize **real OS input via `SendInput`** — so they land on **`chrome://` pages and native dialogs that browser CDP (`nbrowser_*` / `browser_*`) cannot reach**. The verb names mirror the browser extension's `nbrowser_*` so the model transfers between in-page and whole-desktop driving.+`desktop_click` / `desktop_double_click` / `desktop_right_click` / `desktop_hover` / `desktop_type` / `desktop_press_key` synthesize **real OS input via `SendInput`** — so they land on **`chrome://` pages and native dialogs that browser CDP (`nbrowser_*` / `pup_*`) cannot reach**. The verb names mirror the browser extension's `nbrowser_*` so the model transfers between in-page and whole-desktop driving. - **Gated behind shell-auto-approve** (same risk class as `shell_execute` — keystrokes/clicks hit whatever is focused on the user's live machine). If it's off you get `errorCode:"input_not_approved"`. **You (a cloud/relay AI) can't grant it yourself (v1.9.90)** — call `request_shell_approval` (or let the refusal auto-surface the prompt) and ask the user to click Approve / Bypass Permissions in Adom Bridge, then retry. Every action is written to the activity log. - **Focus a window first** by passing `{window:"<title substring>"}` (alias `titleContains`) or `{hwnd:<int>}` — reuses `desktop_find_window`'s resolver, so input lands on the intended window, not whatever happened to be focused. Get the hwnd from `desktop_list_windows` / `desktop_find_window`.@@ -1464,7 +1464,7 @@ adom-bridge-cli settings_set '{"settings": {"launch_on_boot": true, "update_mode - `settings_set` is Tier-2 gated for relay (cloud-AI) callers — carry a `reason` and expect the human-approval flow, like `shell_execute`. Local/loopback callers (HD, bridges, the local CLI) are trusted by transport. - Self-heal: AD re-verifies the launch-on-boot artifact every ~60s while running (not just at launch), so anything that deletes the Startup shortcut behind AD's back gets healed within a minute — with a `RECONCILE:` forensic line in `startup.log`. -### Browser automation (`browser_*`, Puppeteer/pup) — bridge-owned; light pointer+### Browser automation (`pup_*`, Puppeteer/pup) — bridge-owned; light pointer The pup bridge is **cloud-owned** and ships its OWN full skill (its wiki page / skill pkg — `bridge_list` names it; `adom-bridge-cli sync_skills` installs it). This page keeps only the pointer plus first-touch examples; sessions/profiles, credential vault, downloads, recording, CDP details are the bridge's skill. @@ -2055,17 +2055,17 @@ adom-bridge-cli desktop_decrypt_browser_credentials '{ **Node.js not installed (the puppeteer bridge can't auto-spawn):** -v1.7.0+ — any `browser_*` command returning `errorCode:"node_not_found"` means Node isn't on the desktop machine. Trigger the unattended winget install:+v1.7.0+ — any `pup_*` command returning `errorCode:"node_not_found"` means Node isn't on the desktop machine. Trigger the unattended winget install: ```bash adom-bridge-cli desktop_install_node '{}' # → runs `winget install --id OpenJS.NodeJS.LTS --silent ...` (Windows only). # → ~1-2 min; downloads + installs the Node.js LTS line (well-tested with puppeteer).-# → returns {ok:true, exitCode:0, _hint:"Retry the original browser_* command"} on success.+# → returns {ok:true, exitCode:0, _hint:"Retry the original pup_* command"} on success. # → on failure: {ok:false, errorCode:"winget_unavailable" | "winget_install_failed", _hint}. ``` -After install, **just retry the original `browser_*` command** — the bridge picks up the new node.exe via the registry App Paths lookup (which winget writes), no Adom Bridge restart needed. v1.7.0+ also pre-fetches Node + Chrome for Testing on first launch after install (background task on AUTOSTART_VERSION 11), so most users will never see `node_not_found` to begin with.+After install, **just retry the original `pup_*` command** — the bridge picks up the new node.exe via the registry App Paths lookup (which winget writes), no Adom Bridge restart needed. v1.7.0+ also pre-fetches Node + Chrome for Testing on first launch after install (background task on AUTOSTART_VERSION 11), so most users will never see `node_not_found` to begin with. If `desktop_install_node` returns `errorCode:"winget_unavailable"` (older Windows or managed corporate device), fall back to manual:
package.json+87−87@@ -1,87 +1,87 @@-{ - "slug": "adom-bridge", - "version": "2.0.2", - "type": "app", - "brief": "Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-only permission system keeps you in charge of every side-effecting command.", - "description": "Install this package in a cloud or Hydrogen Desktop container, not on the PC. It delivers two things: the Linux adom-bridge-cli (linked onto PATH) and the Claude skill set that teaches an AI every desktop verb (shell, files, screenshots, windows, notifications, KiCad, Fusion 360, browser automation). The CLI drives the Adom Bridge app running on your Windows PC over the relay; the Windows app itself is the separate installer in the Download box, not part of this package. Run adom-wiki pkg update to keep the CLI and skills current.", - "discovery_pitch": "Use when a cloud AI needs to reach a real Windows desktop: run shell commands, capture screenshots, drive native apps and browsers, transfer files, and control KiCad / Fusion 360 / third-party bridges.", - "discovery_triggers": [ - "control my windows desktop from the cloud", - "drive a native windows app", - "take a screenshot of a window on my pc", - "run a shell command on my windows machine", - "automate kicad or fusion 360", - "open a browser on my desktop and click around", - "send a file to my laptop", - "show me a notification on my computer", - "adom bridge", - "bridge to my pc", - "b win", - "adom desktop" - ], - "sample_prompts": [ - { - "label": "Screenshot a window", - "prompt": "Take a screenshot of the Fusion 360 window on my desktop" - }, - { - "label": "Run a command", - "prompt": "Run git status on my Windows machine and show me the output" - }, - { - "label": "Drive a bridge", - "prompt": "Open my latest KiCad project and export the Gerbers" - }, - { - "label": "Automate the browser", - "prompt": "Open Chrome on my desktop and log into the dashboard" - }, - { - "label": "Transfer a file", - "prompt": "Pull the build log from C:\\temp on my laptop" - } - ], - "keywords": [ - "adom-bridge", - "tauri", - "claude-code", - "bridge", - "kicad", - "fusion360", - "puppeteer", - "chrome", - "websocket", - "cli", - "screenshot", - "recording", - "desktop-automation", - "adom-desktop" - ], - "tags": [ - "adom-bridge", - "tauri", - "claude-code", - "bridge", - "kicad", - "fusion360", - "puppeteer", - "desktop-automation" - ], - "scripts": { - "install": "./install.sh", - "uninstall": "./uninstall.sh" - }, - "install": { - "binary_name": "adom-bridge" - }, - "dependencies": {}, - "files": [ - "SKILL.md", - "README.md", - "install.sh", - "uninstall.sh", - "skills/**", - "dist/**", - "version.json" - ] -} +{+ "slug": "adom-bridge",+ "version": "2.0.3",+ "type": "app",+ "brief": "Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-only permission system keeps you in charge of every side-effecting command.",+ "description": "Install this package in a cloud or Hydrogen Desktop container, not on the PC. It delivers two things: the Linux adom-bridge-cli (linked onto PATH) and the Claude skill set that teaches an AI every desktop verb (shell, files, screenshots, windows, notifications, KiCad, Fusion 360, browser automation). The CLI drives the Adom Bridge app running on your Windows PC over the relay; the Windows app itself is the separate installer in the Download box, not part of this package. Run adom-wiki pkg update to keep the CLI and skills current.",+ "discovery_pitch": "Use when a cloud AI needs to reach a real Windows desktop: run shell commands, capture screenshots, drive native apps and browsers, transfer files, and control KiCad / Fusion 360 / third-party bridges.",+ "discovery_triggers": [+ "control my windows desktop from the cloud",+ "drive a native windows app",+ "take a screenshot of a window on my pc",+ "run a shell command on my windows machine",+ "automate kicad or fusion 360",+ "open a browser on my desktop and click around",+ "send a file to my laptop",+ "show me a notification on my computer",+ "adom bridge",+ "bridge to my pc",+ "b win",+ "adom desktop"+ ],+ "sample_prompts": [+ {+ "label": "Screenshot a window",+ "prompt": "Take a screenshot of the Fusion 360 window on my desktop"+ },+ {+ "label": "Run a command",+ "prompt": "Run git status on my Windows machine and show me the output"+ },+ {+ "label": "Drive a bridge",+ "prompt": "Open my latest KiCad project and export the Gerbers"+ },+ {+ "label": "Automate the browser",+ "prompt": "Open Chrome on my desktop and log into the dashboard"+ },+ {+ "label": "Transfer a file",+ "prompt": "Pull the build log from C:\\temp on my laptop"+ }+ ],+ "keywords": [+ "adom-bridge",+ "tauri",+ "claude-code",+ "bridge",+ "kicad",+ "fusion360",+ "puppeteer",+ "chrome",+ "websocket",+ "cli",+ "screenshot",+ "recording",+ "desktop-automation",+ "adom-desktop"+ ],+ "tags": [+ "adom-bridge",+ "tauri",+ "claude-code",+ "bridge",+ "kicad",+ "fusion360",+ "puppeteer",+ "desktop-automation"+ ],+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "install": {+ "binary_name": "adom-bridge"+ },+ "dependencies": {},+ "files": [+ "SKILL.md",+ "README.md",+ "install.sh",+ "uninstall.sh",+ "skills/**",+ "dist/**",+ "version.json"+ ]+}
page.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-bridge",- "version": "2.0.2",+ "version": "2.0.3", "type": "app", "description": "Install this package in a cloud or Hydrogen Desktop container, not on the PC. It delivers two things: the Linux adom-bridge-cli (linked onto PATH) and the Claude skill set that teaches an AI every desktop verb (shell, files, screenshots, windows, notifications, KiCad, Fusion 360, browser automation). The CLI drives the Adom Bridge app running on your Windows PC over the relay; the Windows app itself is the separate installer in the Download box, not part of this package. Run adom-wiki pkg update to keep the CLI and skills current.", "keywords": [