← Commit history
._README.mdadded
⋯ 1 unchanged line ⋯
._SKILL.mdadded
⋯ 1 unchanged line ⋯
._install.shadded
⋯ 1 unchanged line ⋯
._package.jsonadded
⋯ 1 unchanged line ⋯
._page.jsonadded
⋯ 1 unchanged line ⋯
._uninstall.shadded
⋯ 1 unchanged line ⋯
README.md+20−7
@@ -4,15 +4,27 @@ The full Adom Hydrogen workspace as a native **macOS** app — AI-driven electro design, running locally on Apple Silicon.  This is the macOS port of [Hydrogen Desktop](/adom/hydrogen-desktop) (the Windows-release). It is **self-contained**: the app ships its own Lima runtime and the-workspace golden image, so first launch runs the entire setup **with no extra-installs and no clicks** — no Homebrew, no Docker, no manual prerequisites.+release). First launch runs the entire setup **almost hands-free** — no Homebrew, no+Docker, no manual prerequisites. The app sets up its own lightweight VM runtime and+downloads the workspace image automatically on first run (both cached afterward). The+only prompts are a one-time **Rosetta** install (one click, if you don't already have+it) and your Adom + Claude sign-in.++![Hydrogen Desktop](screenshots/hero.png)++![The workspace editor](screenshots/workspace.png)++> Screenshots above are from the shared Hydrogen Desktop editor UI (identical on+> macOS); native macOS captures will replace them.  ## Requirements  - **Apple Silicon** Mac (M1 or newer) — arm64 only. - **macOS 13 (Ventura) or later** — uses Apple's Virtualization.framework.+- **Rosetta 2** — runs the x86-64 Adom tools inside the workspace. HD installs it for you on first launch if it's missing (one click); no Terminal needed.+- **Network on first launch** — downloads the VM runtime (~30MB) + workspace image (~554MB) once (cached after). - ~3 GB free disk for the workspace VM + image.+- **Bare-metal Mac** — won't run inside a nested VM (Apple Silicon doesn't support nested virtualization).  ## Install @@ -29,11 +41,12 @@ Or download the DMG, open it, and drag **Hydrogen Desktop** to **Applications**.  ## What happens on first launch -The app runs the workspace setup automatically — zero clicks:+The app runs the workspace setup automatically: -1. Brings up its bundled Lima utility VM (Apple Virtualization.framework, no QEMU).-2. Imports the workspace machine from the bundled golden image and boots it.-3. Starts the editor (code-server) and connects the AI workspace.+1. Installs **Rosetta** if it's missing (one click) — needed to run the x86-64 Adom tools.+2. Brings up its bundled Lima utility VM (Apple Virtualization.framework, no QEMU).+3. Imports the workspace machine from the bundled golden image and boots it.+4. Starts the editor (code-server), signs you in to Adom + Claude, and connects the AI workspace.  x86-64 Adom tools run under Rosetta inside the workspace; native arm64 code-server / Node / Claude run directly.
SKILL.mdadded+49
@@ -0,0 +1,49 @@+---+name: hydrogen-desktop-macos+description: Operate Hydrogen Desktop on macOS (Apple Silicon) — install from the DMG, run the zero-click first-launch setup, and troubleshoot the bundled Lima workspace VM. Use when a user is installing or running the native macOS build of Hydrogen Desktop, hits Gatekeeper warnings, or the workspace machine won't come up. Trigger words — hydrogen desktop mac, HD macOS, install hydrogen desktop mac, lima workspace, hd-builder, Adom-Workspace, gatekeeper hydrogen, mac dmg hydrogen.+---++# Hydrogen Desktop (macOS) — operate++The native macOS build of Hydrogen Desktop. Apple Silicon (arm64) only, macOS 13+.+First launch runs the whole setup automatically — no Homebrew, no Docker, no clicks.+The app downloads its own lightweight VM runtime (Lima) + the workspace image on first+run (both cached), so there are no manual prerequisites.++## Install++```bash+adompkg install hydrogen-desktop-macos+```++Or open the DMG and drag **Hydrogen Desktop** to **Applications**.++## First launch (near-hands-free setup)++Launching the app from /Applications runs the setup cascade. The only prompts are a+one-time Rosetta install and the Adom + Claude sign-in:++1. Installs **Rosetta** if missing (one click) — runs the x86-64 Adom tools in the workspace.+2. Brings up the bundled Lima utility VM `hd-builder` (Apple Virtualization.framework).+3. Imports the workspace machine `Adom-Workspace` from the bundled golden image, boots it.+4. Starts the editor (code-server), signs in to Adom + Claude, and connects the AI workspace.++## Troubleshooting++- **Gatekeeper warns on first open** ("developer cannot be verified") — this build is+  not yet notarized. Right-click the app → **Open** once to approve it.+- **"Rosetta is required" gate, or the workspace download hangs forever** — you're+  almost certainly running inside a **nested VM** (e.g. VirtualBuddy). Apple Silicon+  doesn't support nested virtualization, so the workspace VM can't boot. Run on a real+  Mac (a separate user account is a fine clean test environment).+- **Workspace won't start** — check the VM: `limactl list` should show `hd-builder`+  running. Inspect the machine: `limactl shell hd-builder -- sudo machinectl list`+  (expect `Adom-Workspace`).+- **Reset the VM** (re-provision from scratch): `limactl delete hd-builder`, then+  relaunch the app.++## Uninstall++```bash+adompkg uninstall hydrogen-desktop-macos+```
dist/macos/._Hydrogen.Desktop_0.1.98_aarch64.dmgadded
⋯ 1 unchanged line ⋯
dist/macos/Hydrogen.Desktop_0.1.98_aarch64.dmgadded
⋯ 1 unchanged line ⋯
docs/._hero.pngadded
⋯ 1 unchanged line ⋯
docs/hero.pngadded
⋯ 1 unchanged line ⋯
install.sh+2−2
@@ -1,7 +1,7 @@ #!/usr/bin/env bash # Install Hydrogen Desktop (macOS) — mounts the bundled DMG and copies the app to-# /Applications. The .app is self-contained: it ships its own Lima runtime + the-# workspace golden image, so first launch runs the whole setup with no extra installs.+# /Applications. On first launch the app downloads its own VM runtime + workspace+# image automatically, so setup runs with no extra installs and no clicks. # # Apple Silicon only (arm64). Runs from the extracted adompkg module dir. set -euo pipefail
package.json+38−6
@@ -2,11 +2,43 @@   "name": "hydrogen-desktop-macos",   "slug": "hydrogen-desktop-macos",   "type": "app",-  "version": "0.1.51",+  "version": "0.1.98",   "description": "The full Adom Hydrogen experience as a native macOS desktop app (Apple Silicon).",   "dependencies": {},-  "scripts": {"install": "./install.sh", "uninstall": "./uninstall.sh"},-  "files": ["README.md", "page.json", "install.sh", "uninstall.sh", "dist/**", "screenshots/**"],-  "install": {"binary_name": "hydrogen-desktop-macos"},-  "metadata": {"platform": "macos", "arch": "arm64"}-}+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "files": [+    "SKILL.md",+    "README.md",+    "page.json",+    "install.sh",+    "uninstall.sh",+    "dist/**",+    "screenshots/**",+    "docs/**"+  ],+  "install": {+    "binary_name": "hydrogen-desktop-macos"+  },+  "metadata": {+    "platform": "macos",+    "arch": "arm64"+  },+  "tags": [+    "desktop-app",+    "macos",+    "hydrogen-desktop",+    "eda",+    "electronics-design",+    "pcb",+    "ai-workspace",+    "claude"+  ],+  "hero": {+    "headline": "Hydrogen Desktop for macOS",+    "subhead": "The full Adom Hydrogen workspace \u2014 AI-driven electronics design, native on Apple Silicon.",+    "screenshot": "docs/hero.png"+  }+}\ No newline at end of file
page.json+48−5
@@ -4,9 +4,52 @@   "slug": "hydrogen-desktop-macos",   "title": "Hydrogen Desktop (macOS)",   "brief": "The full Adom Hydrogen workspace as a native macOS app (Apple Silicon) — AI-driven electronics design, running locally.",-  "version": "0.1.51",-  "install": {"binary_name": "hydrogen-desktop-macos"},+  "version": "0.1.98",+  "install": {+    "binary_name": "hydrogen-desktop-macos"+  },   "license": "proprietary",-  "visibility": "private",-  "metadata": {"platform": "macos", "arch": "arm64", "kind": "desktop-app"}-}+  "visibility": "public",+  "metadata": {+    "platform": "macos",+    "arch": "arm64"+  },+  "name": "hydrogen-desktop-macos",+  "description": "The full Adom Hydrogen experience as a native macOS desktop app (Apple Silicon).",+  "dependencies": {},+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "files": [+    "SKILL.md",+    "README.md",+    "page.json",+    "install.sh",+    "uninstall.sh",+    "dist/**",+    "screenshots/**",+    "docs/**"+  ],+  "tags": [+    "desktop-app",+    "macos",+    "hydrogen-desktop",+    "eda",+    "electronics-design",+    "pcb",+    "ai-workspace",+    "claude"+  ],+  "hero": {+    "type": "billboard",+    "headline": "Hydrogen Desktop for macOS",+    "subhead": "The full Adom Hydrogen workspace — AI-driven electronics design, native on Apple Silicon.",+    "screenshot": "docs/hero.png"+  },+  "org": "adom",+  "author": {+    "name": "Kyle Bergstedt",+    "email": "[email protected]"+  }+}\ No newline at end of file
screenshots/._hero.pngadded
⋯ 1 unchanged line ⋯
screenshots/._workspace.pngadded
⋯ 1 unchanged line ⋯
screenshots/hero.pngadded
⋯ 1 unchanged line ⋯
screenshots/workspace.pngadded
⋯ 1 unchanged line ⋯
uninstall.sh+66−10
@@ -1,13 +1,69 @@ #!/usr/bin/env bash-# Uninstall Hydrogen Desktop (macOS): remove the app. Leaves the user's workspace-# data and the Lima utility VM in place (remove those manually if desired:-#   limactl delete hd-builder   # destroys the HD utility VM-#   rm -rf "$HOME/Library/Application Support/adom"   # cached golden image + state-set -euo pipefail-DEST="/Applications/Hydrogen Desktop.app"-if [ -d "$DEST" ]; then-  rm -rf "$DEST"-  echo "OK: removed $DEST"+# Fully uninstall Hydrogen Desktop (macOS): the app, all HD state, the workspace+# machine + HD's downloaded Lima runtime + cached golden image, and the webview data.+#+# Surgical about Lima: deletes ONLY HD's `hd-builder` VM — never other Lima VMs the+# user may have, and never the shared Lima download cache (left in place; the script+# tells you how to reclaim it).+#+# Idempotent — safe to re-run; skips whatever is already gone.+set -uo pipefail   # NOT -e: keep going past pieces that are already absent++APP="/Applications/Hydrogen Desktop.app"+SUPPORT="$HOME/Library/Application Support"+log() { echo "  $*"; }++echo "Uninstalling Hydrogen Desktop (macOS)…"++# 1. Quit HD (and its embedded Adom Desktop) if running.+osascript -e 'quit app "Hydrogen Desktop"' >/dev/null 2>&1 || true+pkill -f "Hydrogen Desktop" 2>/dev/null || true+pkill -f "Adom Desktop" 2>/dev/null || true+sleep 1++# 2. Tear down HD's Lima VM (only hd-builder). Find a usable limactl: HD's downloaded+#    copy, a system install, or the one bundled in the app — whichever exists.+LIMACTL=""+for c in "$SUPPORT/adom/lima/bin/limactl" /opt/homebrew/bin/limactl /usr/local/bin/limactl \+         "$APP/Contents/Resources/lima/bin/limactl"; do+  [ -x "$c" ] && LIMACTL="$c" && break+done+if [ -n "$LIMACTL" ] && "$LIMACTL" list 2>/dev/null | grep -q '^hd-builder'; then+  log "stopping + deleting Lima VM hd-builder…"+  "$LIMACTL" stop   -f hd-builder >/dev/null 2>&1 || true+  "$LIMACTL" delete -f hd-builder >/dev/null 2>&1 || true else-  echo "Hydrogen Desktop is not installed in /Applications."+  log "no hd-builder Lima VM (or no limactl) — skipping VM teardown" fi++# 3. Remove the app.+if [ -d "$APP" ]; then rm -rf "$APP" && log "removed $APP"; else log "app not in /Applications"; fi++# 4. Remove ALL HD state: app data, downloaded Lima + cached image, webview data,+#    prefs, and saved window state.+rm -rf \+  "$SUPPORT/hydrogen-desktop" \+  "$SUPPORT/adom" \+  "$HOME/Library/Caches/inc.adom.hydrogen-desktop" \+  "$HOME/Library/WebKit/inc.adom.hydrogen-desktop" \+  "$HOME/Library/HTTPStorages/inc.adom.hydrogen-desktop" \+  "$HOME/Library/HTTPStorages/inc.adom.hydrogen-desktop.binarycookies" \+  "$HOME/Library/Preferences/inc.adom.hydrogen-desktop.plist" \+  "$HOME/Library/Saved Application State/inc.adom.hydrogen-desktop.savedState" 2>/dev/null || true+log "removed app data, downloaded Lima, cached image, and webview data (cookies/session)"++# 5. If ~/.lima now holds no VMs (only _config), remove it. Never touch other VMs.+if [ -d "$HOME/.lima" ]; then+  vms="$(find "$HOME/.lima" -mindepth 1 -maxdepth 1 -type d ! -name '_*' 2>/dev/null | wc -l | tr -d ' ')"+  if [ "$vms" = "0" ]; then rm -rf "$HOME/.lima" && log "removed empty ~/.lima"+  else log "left ~/.lima — it still has $vms other Lima VM(s)"; fi+fi++# 6. Shared Lima download cache: left in place (it's keyed by URL and shared with any+#    other Lima usage). Reclaim it manually if you don't use Lima elsewhere.+if [ -d "$HOME/Library/Caches/lima" ]; then+  log "note: ~/Library/Caches/lima (shared Lima image cache, ~600MB) left in place —"+  log "      'rm -rf ~/Library/Caches/lima' to reclaim it if Lima isn't used elsewhere."+fi++echo "OK: Hydrogen Desktop fully uninstalled."