← Commit history

Publish 1.9.166

John Lauer ·02c56c48c8 ·3mo ago ·parent 5dfb818
5 files changed +87−87
dist/linux/adom-desktop
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -1,6 +1,6 @@ {
   "slug": "adom-desktop",
-  "version": "1.9.165",
+  "version": "1.9.166",
   "type": "app",
   "description": "Adom Desktop is a small operating system for AI on your Windows PC: it gives an AI real hands on your native desktop, including your signed-in browser, KiCad, Fusion 360, the shell, files, windows and screenshots. It provisions its own Node and Python so bridges run without touching your setup, and it talks straight to your machine. It ships with Hydrogen Desktop and installs standalone too, so if you drive your PC with Claude Desktop or another AI, this is what gives that AI hands.",
   "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.",
page.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-desktop",-  "version": "1.9.165",+  "version": "1.9.166",   "type": "app",   "description": "Adom Desktop is a small operating system for AI on your Windows PC: it gives an AI real hands on your native desktop, including your signed-in browser, KiCad, Fusion 360, the shell, files, windows and screenshots. It provisions its own Node and Python so bridges run without touching your setup, and it talks straight to your machine. It ships with Hydrogen Desktop and installs standalone too, so if you drive your PC with Claude Desktop or another AI, this is what gives that AI hands.",   "keywords": [
skills/adom-desktop-discovery/SKILL.md+77−77
@@ -1,77 +1,77 @@-----name: adom-desktop-discovery-user-invocable: false-description: "Reaches the user's Windows/Mac laptop desktop from this container via adom-desktop — run commands & scripts on the laptop, list/kill processes, restart apps (e.g. Explorer), desktop/app-window screenshots, send/pull files, notifications, list/focus/flash windows, RDP tunnels. Also launches and drives KiCad (schematics/boards/symbols/footprints, DRC, library install, 3D viewer, automation) and Fusion 360 (.f3d/.f3z, import/export STEP/GLB/.lbr, BOM/parameters, Fusion API). Also covers Puppeteer/pup real-Chrome automation (browser_screenshot, browser_eval, browser_navigate, multi-session profiles, ralph-loop), WSL distro control + golden-image bakes (wsl_exec, wsl_exec_async, wsl_import/export/unregister), the relay server (adom-desktop serve), and connection setup. Trigger words: run command on laptop, run on my pc, restart explorer, restart a program, kill a process, list processes, taskkill, screenshot laptop/desktop/windows/fusion/kicad, list windows, focus window, send file to laptop, pull file from laptop, desktop notification, launch KiCad, open in KiCad, run DRC, launch Fusion, import/export STEP, export GLB/lbr, Fusion API, pup, puppeteer, real Chrome, browser automation, flash taskbar, open URL on desktop, RDP, tunnel, WSL, golden image, adom-desktop, bridge to my pc, windows app, KiCad bridge, Fusion bridge."------# adom-desktop — discovery & install--**This skill is a pointer.** When any trigger fires, confirm `adom-desktop` is installed (install from the wiki if not), make sure the relay is up, then **discover the exact verb at runtime** — do NOT guess from memory and do NOT rely on `--help`.--## 1 — Check it's installed + the relay is up--```bash-adom-desktop --version          # path + version, e.g. adom-desktop 1.8.163 (<sha>, built …)-adom-desktop ping               # {echo:"pong", status:"connected"} == the laptop is reachable-```--If `adom-desktop` isn't found → **§4 install**. If `ping` doesn't say `connected`, the relay isn't serving — start it: `adom-desktop serve &` (then re-`ping`).--## 2 — ⭐ DISCOVER THE VERB: `adom-desktop commands` (NOT `--help`)--This is the step that's most often skipped, and skipping it is why calls get hand-rolled with `shell_execute` and fumble. **`adom-desktop --help` only lists `serve` / `install`** — every real capability is a *dynamic verb* forwarded to the laptop, and the authoritative, machine-readable catalog (200+ verbs, each with args + return shape + a `_hint`) is:--```bash-adom-desktop commands            # full verb catalog (categories → verbs → args/returns)-adom-desktop status              # laptop state (installed apps, WSL health, …) — also surfaces the catalog-```--**Always check `commands` before reaching for `shell_execute`.** There is almost certainly a structured verb that takes typed args, so you never hand-quote a command through JSON → shell. A few you'll want often:--| Want to… | Use (structured — no quoting) | NOT |-|---|---|---|-| list processes | `process_list {"nameContains":"explorer"}` | `shell_execute "tasklist \| findstr …"` |-| kill a process | `process_kill {"name":"explorer.exe"}` (or `{"pid":N}`) | `shell_execute "taskkill /f /im …"` |-| start an app | `launch_process {"path":"explorer.exe"}` / `launch {…}` | `shell_execute "start …"` |-| run a multi-line / quoted script | `run_script {"interpreter":"powershell\|cmd\|bash","scriptB64":"<base64>"}` | `shell_execute` with nested quotes |-| run inside a WSL distro | `wsl_exec {"distro","user","scriptB64"}`; multi-minute → `wsl_exec_async` + poll `wsl_job_status` | — |-| screenshots / windows | `desktop_list_windows`, `desktop_screenshot_window {"hwnd":N}`, `desktop_find_window`, `desktop_bring_to_front` | — |-| move files | `send_files` (→ laptop), `pull_file` (← laptop) | — |--> **Example — "restart Explorer because the taskbar icons are gone":** `process_kill {"name":"explorer.exe"}` → `launch_process {"path":"explorer.exe"}` → `process_list {"nameContains":"explorer"}` to confirm. No `taskkill`/`tasklist` quoting. (`shell_execute` is the escape hatch for things with no verb yet — `cmd /C`; reserve it for that.)--**Reading any result:** every verb returns a uniform **`status`** (`ok` | `timeout` | `busy` | `error`) + **`durationMs`**, alongside `exitCode`/`stdout`/`stderr` for exec verbs. So an empty `stdout` with `status:ok` is a real empty-output success — NOT a timeout. `timeout`/`busy` carry a recovery `_hint`. Multi-AD relay: if you get `status:error` / `ambiguous_target`, pass `--target <name>` (list them with `adom-desktop targets`).--## 3 — Multi-distro / long ops--For golden-image work and any multi-minute command, use the **detached job** verbs (return a `jobId` instantly, then poll `wsl_job_status`) instead of a sync call that would time out: `wsl_import` / `wsl_export` / `wsl_unregister` / `wsl_exec_async`, and `launch_process` for a general long-running process. `wsl_recover` reaps a wedged WSL. See `adom-desktop commands` for exact args.--## 4 — Install (if missing or stale)--The canonical install is the adompkg (bundles the Linux CLI **and** the skill set, which symlink into `~/.claude/skills/`):--```bash-adompkg install adom/adom-desktop     # → ~/.local/bin/adom-desktop + the adom-desktop-* skills-adom-desktop --version                # confirm-```--`adom-desktop status` reports the latest published version; if your local CLI is older, re-run `adompkg install adom/adom-desktop` to refresh the binary **and** the skills atomically. (Wiki page: `https://wiki.adom.inc/adom/adom-desktop`.) **If you hand-installed only the binary, you won't have the skill set — re-run the adompkg install so the discovery/main/pup/kicad/fusion/direct-api/installer skills land too.**--## 5 — What you get once installed--`adompkg install` lays down sibling skills that document the features in depth — they appear in future skill searches:--| Skill | Covers |-|---|---|-| `adom-desktop` (main) | the full verb reference + shell/process/file/window/WSL/tunnel patterns, status+durationMs result shape |-| `adom-desktop-pup` | Puppeteer real-Chrome automation (browser_open_window/navigate/screenshot/eval, multi-session profiles) |-| `adom-desktop-kicad` | KiCad bridge (open schematics/boards, DRC, library install, 3D viewer, automation) |-| `adom-desktop-fusion` | Fusion 360 bridge (.f3d/.f3z, STEP/GLB/.lbr import-export, BOM/params, Fusion API) |-| `adom-desktop-direct-api` | the loopback HTTP API for sibling apps (Hydrogen Desktop) |-| `adom-desktop-installer` | invoking the Windows installer (silent/NOLAUNCH) |--But you don't need to read those to act — **`adom-desktop commands` is always the live source of truth** for what verbs exist right now.--## 6 — Why this skill exists--adom-desktop is its own repo with its own release cadence; the deep feature docs ship with the binary (so a binary release doesn't force a gallia release). This skill is the stable, always-present entry point — its one job is to get you to `adom-desktop commands`, the runtime catalog, instead of guessing.+---
+name: adom-desktop-discovery
+user-invocable: false
+description: "Reaches the user's Windows/Mac laptop desktop from this container via adom-desktop — run commands & scripts on the laptop, list/kill processes, restart apps (e.g. Explorer), desktop/app-window screenshots, send/pull files, notifications, list/focus/flash windows, RDP tunnels. Also launches and drives KiCad (schematics/boards/symbols/footprints, DRC, library install, 3D viewer, automation) and Fusion 360 (.f3d/.f3z, import/export STEP/GLB/.lbr, BOM/parameters, Fusion API). Also covers Puppeteer/pup real-Chrome automation (browser_screenshot, browser_eval, browser_navigate, multi-session profiles, ralph-loop), WSL distro control + golden-image bakes (wsl_exec, wsl_exec_async, wsl_import/export/unregister), the relay server (adom-desktop serve), and connection setup. Trigger words: run command on laptop, run on my pc, restart explorer, restart a program, kill a process, list processes, taskkill, screenshot laptop/desktop/windows/fusion/kicad, list windows, focus window, send file to laptop, pull file from laptop, desktop notification, launch KiCad, open in KiCad, run DRC, launch Fusion, import/export STEP, export GLB/lbr, Fusion API, pup, puppeteer, real Chrome, browser automation, flash taskbar, open URL on desktop, RDP, tunnel, WSL, golden image, adom-desktop, bridge to my pc, windows app, KiCad bridge, Fusion bridge."
+---
+
+# adom-desktop — discovery & install
+
+**This skill is a pointer.** When any trigger fires, confirm `adom-desktop` is installed (install from the wiki if not), make sure the relay is up, then **discover the exact verb at runtime** — do NOT guess from memory and do NOT rely on `--help`.
+
+## 1 — Check it's installed + the relay is up
+
+```bash
+adom-desktop --version          # path + version, e.g. adom-desktop 1.8.163 (<sha>, built …)
+adom-desktop ping               # {echo:"pong", status:"connected"} == the laptop is reachable
+```
+
+If `adom-desktop` isn't found → **§4 install**. If `ping` doesn't say `connected`, the relay isn't serving — start it: `adom-desktop serve &` (then re-`ping`).
+
+## 2 — ⭐ DISCOVER THE VERB: `adom-desktop commands` (NOT `--help`)
+
+This is the step that's most often skipped, and skipping it is why calls get hand-rolled with `shell_execute` and fumble. **`adom-desktop --help` only lists `serve` / `install`** — every real capability is a *dynamic verb* forwarded to the laptop, and the authoritative, machine-readable catalog (200+ verbs, each with args + return shape + a `_hint`) is:
+
+```bash
+adom-desktop commands            # full verb catalog (categories → verbs → args/returns)
+adom-desktop status              # laptop state (installed apps, WSL health, …) — also surfaces the catalog
+```
+
+**Always check `commands` before reaching for `shell_execute`.** There is almost certainly a structured verb that takes typed args, so you never hand-quote a command through JSON → shell. A few you'll want often:
+
+| Want to… | Use (structured — no quoting) | NOT |
+|---|---|---|
+| list processes | `process_list {"nameContains":"explorer"}` | `shell_execute "tasklist \| findstr …"` |
+| kill a process | `process_kill {"name":"explorer.exe"}` (or `{"pid":N}`) | `shell_execute "taskkill /f /im …"` |
+| start an app | `launch_process {"path":"explorer.exe"}` / `launch {…}` | `shell_execute "start …"` |
+| run a multi-line / quoted script | `run_script {"interpreter":"powershell\|cmd\|bash","scriptB64":"<base64>"}` | `shell_execute` with nested quotes |
+| run inside a WSL distro | `wsl_exec {"distro","user","scriptB64"}`; multi-minute → `wsl_exec_async` + poll `wsl_job_status` | — |
+| screenshots / windows | `desktop_list_windows`, `desktop_screenshot_window {"hwnd":N}`, `desktop_find_window`, `desktop_bring_to_front` | — |
+| move files | `send_files` (→ laptop), `pull_file` (← laptop) | — |
+
+> **Example — "restart Explorer because the taskbar icons are gone":** `process_kill {"name":"explorer.exe"}` → `launch_process {"path":"explorer.exe"}` → `process_list {"nameContains":"explorer"}` to confirm. No `taskkill`/`tasklist` quoting. (`shell_execute` is the escape hatch for things with no verb yet — `cmd /C`; reserve it for that.)
+
+**Reading any result:** every verb returns a uniform **`status`** (`ok` | `timeout` | `busy` | `error`) + **`durationMs`**, alongside `exitCode`/`stdout`/`stderr` for exec verbs. So an empty `stdout` with `status:ok` is a real empty-output success — NOT a timeout. `timeout`/`busy` carry a recovery `_hint`. Multi-AD relay: if you get `status:error` / `ambiguous_target`, pass `--target <name>` (list them with `adom-desktop targets`).
+
+## 3 — Multi-distro / long ops
+
+For golden-image work and any multi-minute command, use the **detached job** verbs (return a `jobId` instantly, then poll `wsl_job_status`) instead of a sync call that would time out: `wsl_import` / `wsl_export` / `wsl_unregister` / `wsl_exec_async`, and `launch_process` for a general long-running process. `wsl_recover` reaps a wedged WSL. See `adom-desktop commands` for exact args.
+
+## 4 — Install (if missing or stale)
+
+The canonical install is the adompkg (bundles the Linux CLI **and** the skill set, which symlink into `~/.claude/skills/`):
+
+```bash
+adompkg install adom/adom-desktop     # → ~/.local/bin/adom-desktop + the adom-desktop-* skills
+adom-desktop --version                # confirm
+```
+
+`adom-desktop status` reports the latest published version; if your local CLI is older, re-run `adompkg install adom/adom-desktop` to refresh the binary **and** the skills atomically. (Wiki page: `https://wiki.adom.inc/adom/adom-desktop`.) **If you hand-installed only the binary, you won't have the skill set — re-run the adompkg install so the discovery/main/pup/kicad/fusion/direct-api/installer skills land too.**
+
+## 5 — What you get once installed
+
+`adompkg install` lays down sibling skills that document the features in depth — they appear in future skill searches:
+
+| Skill | Covers |
+|---|---|
+| `adom-desktop` (main) | the full verb reference + shell/process/file/window/WSL/tunnel patterns, status+durationMs result shape |
+| `adom-desktop-pup` | Puppeteer real-Chrome automation (browser_open_window/navigate/screenshot/eval, multi-session profiles) |
+| `adom-desktop-kicad` | KiCad bridge (open schematics/boards, DRC, library install, 3D viewer, automation) |
+| `adom-desktop-fusion` | Fusion 360 bridge (.f3d/.f3z, STEP/GLB/.lbr import-export, BOM/params, Fusion API) |
+| `adom-desktop-direct-api` | the loopback HTTP API for sibling apps (Hydrogen Desktop) |
+| `adom-desktop-installer` | invoking the Windows installer (silent/NOLAUNCH) |
+
+But you don't need to read those to act — **`adom-desktop commands` is always the live source of truth** for what verbs exist right now.
+
+## 6 — Why this skill exists
+
+adom-desktop is its own repo with its own release cadence; the deep feature docs ship with the binary (so a binary release doesn't force a gallia release). This skill is the stable, always-present entry point — its one job is to get you to `adom-desktop commands`, the runtime catalog, instead of guessing.
version.json+8−8
@@ -1,16 +1,16 @@ {
   "manifest_version": 1,
-  "version": "1.9.165",
-  "released_at": "2026-07-22T22:57:12Z",
+  "version": "1.9.166",
+  "released_at": "2026-07-23T12:55:00Z",
   "windows": {
-    "installer_url": "https://wiki.adom.inc/download/adom/adom-desktop/1.9.165/Adom%20Desktop_1.9.165_x64-setup.exe",
-    "installer_filename": "Adom Desktop_1.9.165_x64-setup.exe",
-    "installer_sha256": "e99cda9a126ff3326aed13da9daf18d66516edc7a6795097a5185bf6bc2518ce",
-    "installer_size": 13415344
+    "installer_url": "https://wiki.adom.inc/download/adom/adom-desktop/1.9.166/Adom.Desktop_1.9.166_windows_x64-setup.exe",
+    "installer_filename": "Adom.Desktop_1.9.166_windows_x64-setup.exe",
+    "installer_sha256": "dd0c690bc0c8f4fa52999771cdc03d9e74175706345673dadaae82e4eae3a562",
+    "installer_size": 13472688
   },
   "changelog_url": "https://wiki.adom.inc/adom/adom-desktop",
   "minimum_required": "1.3.30",
-  "note": "Adom Desktop now survives its parent. If Hydrogen Desktop closes or crashes, Adom Desktop reverts to standalone with its tray and relay still running instead of exiting, so a remote agent can always reach and recover the machine. Exiting together with Hydrogen Desktop is now an explicit launch-flag opt-in, no longer a persistent setting.",
+  "note": "A local Claude Desktop or Codex on your Windows PC now finds Adom Desktop's skills automatically: the installer bundles the consumer skills and links them into your ~/.claude/skills and ~/.codex/skills on launch, so the local agent has both the CLI and its docs with zero setup.",
   "macos": {
     "installer_url": "https://wiki.adom.inc/download/adom/adom-desktop-macos/1.9.162/Adom.Desktop_1.9.162_macos_aarch64.dmg",
     "installer_filename": "Adom.Desktop_1.9.162_macos_aarch64.dmg",
@@ -18,4 +18,4 @@     "installer_size": 12241094,
     "arch": "aarch64"
   }
-}
+}\ No newline at end of file