Hydrogen Desktop Bootstrap (apps + skills)
Public Made by Adomby adom
Layer Hydrogen Desktop's workspace onto a standard Adom workstation.
name: hd-welcome description: > The HD welcome page — shown after setup steps complete. Served from static/welcome.html at http://localhost:1420/welcome.html. Shows Adom branding, "Build and test electronics in the cloud", and an "Open Claude Code" button. This is NOT the adom.inc homepage — it's a local static page bundled with HD. Trigger words: welcome page, welcome tab, show welcome, onboarding page, setup complete page, first launch page.
HD Welcome Page
The welcome page is a static HTML page bundled with HD at static/welcome.html.
It's served locally at http://localhost:1420/welcome.html by HD's dev file server.
What it shows
- Adom logo and branding
- "Build and test electronics in the cloud"
- Description of the Adom cloud factory
- "Open Claude Code" button
- Links to documentation
When it appears
- Automatically as the final setup step. On the WSL2 runtime (default) that is
the
open-welcomegate — the final step of the 27-step cascade; on the legacy Docker runtime it's the last of the 24 steps. - Can be opened manually via the API
How to open it
From inside the WSL2 workspace (the standard way)
This is how the setup steps do it, and how any AI inside the workspace distro (the legacy Docker container works the same way) should:
adom-cli hydrogen webview open-or-refresh \
--name Welcome \
--url http://localhost:1420/welcome.html \
--panel-id desktop-pane-right
The URL is rendered by HD's WebView2 on Windows, so localhost:1420 resolves
to HD's dev file server on Windows, NOT to anything inside the workspace distro.
From outside (via HD control API)
The workspace tabs API doesn't reliably store the URL in panelState when creating tabs. The reliable method is to navigate an existing webview iframe:
# Method 1: Navigate right-pane iframe via eval (reliable)
curl -X POST http://127.0.0.1:47084/eval \
-H Content-Type:application/json \
-d '{"js":"(function(){var iframes=document.querySelectorAll(\"iframe\");for(var i=0;i<iframes.length;i++){var r=iframes[i].getBoundingClientRect();if(r.x>400&&r.width>200){iframes[i].src=\"http://localhost:1420/welcome.html\";return \"ok\"}}return \"no iframe\"})()"}'
# Method 2: Create tab then navigate (2 steps)
# Step 1: Create tab
curl -X POST http://127.0.0.1:47083/api/workspaces/editor/{owner}/{repo}/current/tabs \
-H Content-Type:application/json \
-d '{"name":"Welcome","panelType":"adom/a1b2c3d4-0031-4000-a000-000000000031","panelId":"desktop-pane-right","panelState":{"url":"http://localhost:1420/welcome.html","displayName":"Welcome","displayIcon":"mdi:hand-wave"}}'
# Step 2: If URL didn't load, navigate the iframe via eval (Method 1)
IMPORTANT: This is NOT
- NOT the adom.inc homepage (https://adom.inc)
- NOT the wiki (https://wiki.adom.inc)
- NOT the VS Code welcome tab inside code-server
It is a LOCAL static page at http://localhost:1420/welcome.html, bundled
in static/welcome.html in the HD repo.
Panel type
Webview tabs in HD use panel type adom/a1b2c3d4-0031-4000-a000-000000000031.
Do NOT use panelType: "webview" — that shows "Unknown panel type" error.
---
name: hd-welcome
description: >
The HD welcome page — shown after setup steps complete. Served from
static/welcome.html at http://localhost:1420/welcome.html. Shows Adom
branding, "Build and test electronics in the cloud", and an "Open Claude
Code" button. This is NOT the adom.inc homepage — it's a local static page
bundled with HD. Trigger words: welcome page, welcome tab, show welcome,
onboarding page, setup complete page, first launch page.
---
# HD Welcome Page
The welcome page is a static HTML page bundled with HD at `static/welcome.html`.
It's served locally at `http://localhost:1420/welcome.html` by HD's dev file server.
## What it shows
- Adom logo and branding
- "Build and test electronics in the cloud"
- Description of the Adom cloud factory
- "Open Claude Code" button
- Links to documentation
## When it appears
- Automatically as the final setup step. On the WSL2 runtime (default) that is
the `open-welcome` gate — the final step of the 27-step cascade; on the legacy
Docker runtime it's the last of the 24 steps.
- Can be opened manually via the API
## How to open it
### From inside the WSL2 workspace (the standard way)
This is how the setup steps do it, and how any AI inside the workspace distro
(the legacy Docker container works the same way) should:
```bash
adom-cli hydrogen webview open-or-refresh \
--name Welcome \
--url http://localhost:1420/welcome.html \
--panel-id desktop-pane-right
```
The URL is rendered by HD's WebView2 on Windows, so `localhost:1420` resolves
to HD's dev file server on Windows, NOT to anything inside the workspace distro.
### From outside (via HD control API)
The workspace tabs API doesn't reliably store the URL in panelState when
creating tabs. The reliable method is to navigate an existing webview iframe:
```bash
# Method 1: Navigate right-pane iframe via eval (reliable)
curl -X POST http://127.0.0.1:47084/eval \
-H Content-Type:application/json \
-d '{"js":"(function(){var iframes=document.querySelectorAll(\"iframe\");for(var i=0;i<iframes.length;i++){var r=iframes[i].getBoundingClientRect();if(r.x>400&&r.width>200){iframes[i].src=\"http://localhost:1420/welcome.html\";return \"ok\"}}return \"no iframe\"})()"}'
# Method 2: Create tab then navigate (2 steps)
# Step 1: Create tab
curl -X POST http://127.0.0.1:47083/api/workspaces/editor/{owner}/{repo}/current/tabs \
-H Content-Type:application/json \
-d '{"name":"Welcome","panelType":"adom/a1b2c3d4-0031-4000-a000-000000000031","panelId":"desktop-pane-right","panelState":{"url":"http://localhost:1420/welcome.html","displayName":"Welcome","displayIcon":"mdi:hand-wave"}}'
# Step 2: If URL didn't load, navigate the iframe via eval (Method 1)
```
## IMPORTANT: This is NOT
- NOT the adom.inc homepage (https://adom.inc)
- NOT the wiki (https://wiki.adom.inc)
- NOT the VS Code welcome tab inside code-server
It is a LOCAL static page at `http://localhost:1420/welcome.html`, bundled
in `static/welcome.html` in the HD repo.
## Panel type
Webview tabs in HD use panel type `adom/a1b2c3d4-0031-4000-a000-000000000031`.
Do NOT use `panelType: "webview"` — that shows "Unknown panel type" error.