Hydrogen Desktop (macOS / Lima)
Public Made by Adomby adom
The macOS platform layer for Hydrogen Desktop.
| Name | Last updated |
|---|---|
| bin | 4d ago |
| docs | 5d ago |
| screenshots | 3d ago |
| skills | 21h ago |
| ._install.sh | 21h ago |
| ._package.json | 5d ago |
| ._page.json | 5d ago |
| ._postinstall.sh | 5d ago |
| ._README.md | 5d ago |
| ._SKILL.md | 5d ago |
| install.sh | 21h ago |
| package.json | 21h ago |
| page.json | 21h ago |
| README.md | 21h ago |
| SKILL.md | 26d ago |
adom/hd-mac-bootstrap
The macOS platform layer for Hydrogen Desktop. On a Mac, HD's workspace runs
inside a Lima Ubuntu VM (hd-builder) that hosts the Adom-Workspace
systemd-nspawn machine; this package adds everything specific to that runtime on
top of the platform-generic adom/hd-bootstrap.

adom-wiki pkg install adom/hd-mac-bootstrap --allow-sudo # the golden Lima image bakes this;
# HD's setup re-converges it every install
The platform-layered bootstrap stack
adom/core ← Adom ecosystem (generic; shared with web Hydrogen)
└─ adom/hd-bootstrap ← Hydrogen Desktop, platform-GENERIC
├─ adom/hd-windows-bootstrap ← WSL2 runtime
├─ adom/hd-mac-bootstrap ← THIS — Lima/nspawn runtime
└─ adom/hd-ubuntu-bootstrap ← native-Ubuntu runtime
Each platform layer depends on adom/hd-bootstrap, which depends on adom/core,
so core stays generic across web + desktop Hydrogen and every host OS.
What this layer adds
- Dependencies:
adom/hd-bootstrap(generic HD) +adom/adom-workspace-updater(the in-machine systemd updater daemon). - Bundled skills: the macOS-runtime
hd-*skills —hd-container,hd-container-stats,hd-networking,hd-ports,hd-port-watcher,hd-setup,hd-setup-steps,hd-topology,hd-volume,hd-workspace-lifecycle,hd-workspace-monitoring(the Lima/nspawn analogs of the Windows layer's WSL2 set, sourced fromhydrogen-desktop/skills/public-facing/machine/). - install script: deploys those skills into
~/.claude/skills/on top of the generic layer, and installs theshothelper (~/.local/bin/shot) — one-call, token-efficient workspace screenshots that print only a PNG path (seehd-self-screenshot-mac) — plus the Adom-branded Claude Code statusline (~/.claude/statusline.sh: model + context bar + 5h usage; only set when the user hasn't configured their own). Noteadom-wiki pkg installdoes not re-run install scripts for already-baked packages — HD's setup cascade (0.1.135+) runs the chain's deploy scripts explicitly (core → hd-bootstrap → hd-mac-bootstrap) so a fresh skills release actually reaches an already-baked machine.
The runtime difference vs. the Windows layer
The workspace is Linux in both cases — the layers differ only in where that Linux runs and how the host reaches it:
| Windows layer | macOS layer (this) | |
|---|---|---|
| Linux host | WSL2 Ubuntu distro | Lima VM (hd-builder) → nspawn machine (Adom-Workspace) |
| Provisioning | wsl --import of the golden WSL2 image |
machinectl import-tar of the golden Lima image |
| Host↔workspace | \\wsl$ share + WSL networking |
Lima virtiofs share + adom-host gateway |
| Golden image | hd-wsl2-image |
hd-lima-image |
The mixed-skill split (<name>-mac companions)
adom/hd-bootstrap carries the 31 platform-generic hd-* skills. The Windows
layer split 13 mixed skills into <name>-windows companions (e.g.
hd-api-windows, hd-notifications-windows, hd-setup-windows) — the generic core
stays in hd-bootstrap, the Windows half drops into hd-windows-bootstrap. This
layer carries the parallel macOS halves in skills/<name>-mac/.
Companions authored (11):
hd-api-mac—adom-hostgateway,~/.adom/hd-control-urldiscovery, vz-no-loopback,/workspace/*(nspawn) endpoints (mirror ofhd-api-windows'/wsl/*tables).hd-api-key-mac— diagnose/repair the injected/var/run/adom/api-keysession token (adom-cli 401s, tmpfs wipe on machine reboot, pre-0.1.148 post-auth gap): pull viaGET /auth-token, prompt the user to reauthorize, or trigger theinject-api-keysetup step.hd-notifications-mac— Notification Center toasts + emergency Dock-bounce + the Notifications grant (mirror ofhd-notifications-windows' WinRT/AUMID).hd-recording-mac— the native recorder is#[cfg(windows)], so on macOS recording is in-app getDisplayMedia / pup / AD relay; ScreenCaptureKit native recorder not yet built (honest gap). Screen Recording TCC.hd-screen-lock-mac— IOKitIOPMAssertionCreateWithName/PreventUserIdleDisplaySleep,pmset -g assertions,caffeinate(vsSetThreadExecutionState).hd-self-screenshot-mac—screencapture/CoreGraphics + CDPPage.captureScreenshot; per-panel crop resolves the rect via thedom.measureRPC (no CDP on WKWebView) +image-crate crop (vs Win32PrintWindow).hd-browser-picker-mac— WKWebView-over-localhostinterception + LaunchServicesopen -anative browsers (vs WebView2/COM 6-layer interception).hd-permissions-mac— the macOS TCC model (Screen Recording, Accessibility, Automation, Camera/Mic) + preflight/relaunch (vs UAC).hd-open-url-mac—open/open -a … --new-windowLaunchServices launch + control-URL discovery (vschrome.exe/msedge.exe).hd-ui-mac— driving the UI via thehd-ui-command→/ui/_resultcommand bus +invoke_ui_action(WKWebView has no CDP; raw CDP clicking is Windows-only).hd-captions-mac— workspace caption is platform-neutral; the desktop overlay (desktop_caption) is a Windows-only stub on macOS (honest gap).
Reconcile the exact 13-skill set against
adom/hd-windows-bootstrap's companions (its source is--hide-sourcesealed; read it from a workspace with org access). The machine-bucket skills above ship whole (they map to the Windows layer's clean skills, not its mixed companions).
Note: the macOS-runtime skills in
skills/that are whole (themachine/bucket —hd-setup,hd-container, …) correspond to the Windows layer's clean skills, not its mixed companions, so they ship complete rather than as-machalves. The exact 13-skill set should be reconciled againstadom/hd-windows-bootstrap's companions (its source is--hide-sourcesealed; read it from a workspace with org access).
NOTE — naming: the canonical sibling slug is
hd-mac-bootstrap(as referenced byadom/hd-windows-bootstrap's own description and stack diagram), nothd-macos-bootstrap.