skill
Adom Panels
UnreviewedUse when the user asks "what panels are available", wants to know about a specific panel's capabilities, or needs to control a panel beyond basic open/close (e.g.
{
"schema_version": 1,
"type": "skill",
"slug": "adom-panels",
"title": "Adom Panels",
"brief": "Use when the user asks \"what panels are available\", wants to know about a specific panel's capabilities, or needs to control a panel beyond basic open/close (e.g.",
"version": "1.0.0",
"tags": [],
"license": "MIT",
"source_path": "SKILL.md",
"readme": "# Adom Panel Catalog\n\nThis skill lists all available panels and links to panel-specific skills that provide dedicated APIs for controlling individual panels.\n\nFor **adding/removing tabs, resizing splits, querying the layout, and knowing which owner and repo you are in**, use the `adom-workspace-control` skill (`~/.claude/skills/adom/guides/adom-workspace-control.md`).\n\n## Web View Panel API\n\nThe Web View panel (`adom/a1b2c3d4-0031-4000-a000-000000000031`) supports these actions via `PATCH https://hydrogen.adom.inc/api/panels/webview/{owner}/{repo}`:\n\n| Action | Required Fields | Description |\n|--------|----------------|-------------|\n| `navigate` | `url` (string) | Load a URL in the iframe |\n| `refresh` | — | Reload the current page |\n| `setHeaderHidden` | `hidden` (boolean) | Show/hide the address bar |\n| `setProxyEnabled` | `enabled` (boolean) | Toggle proxy mode (navigation & scroll tracking) |\n\nExample: `curl -s -X PATCH -H \"X-Api-Key: $API_KEY\" -H \"Content-Type: application/json\" -d '{\"panelId\":\"<leaf-id>\",\"action\":\"navigate\",\"url\":\"https://example.com\"}' \"https://hydrogen.adom.inc/api/panels/webview/$OWNER/$REPO\"`\n\nAll actions return `204 No Content`. The `panelId` is the leaf node ID whose active tab is a Web View. Some sites block iframe embedding — proxy mode can help bypass `X-Frame-Options` restrictions.\n\n## Sandbox Panel API\n\nThe Sandbox panel (`adom/a1b2c3d4-5555-4000-a000-000000000050`) executes JavaScript in an isolated `<iframe sandbox=\"allow-scripts\">`. See `sandbox/SKILL.md` for full docs.\n\n| Action | Required Fields | Returns |\n|--------|----------------|---------|\n| `eval` | `code` (string) | `{ status: \"executed\", result? }` or `{ status: \"error\", error }` or `{ status: \"queued\" }` |\n| `reset` | — | `204` |\n| `setHeaderHidden` | `hidden` (boolean) | `204` |\n\n**Endpoint:** `PATCH https://hydrogen.adom.inc/api/panels/sandbox/{owner}/{repo}`\n\n**CLI:** `adom-cli hydrogen sandbox eval|reset|set-header`\n\n## Screenshot API (all panels)\n\nScreenshots are now workspace-level and work on **any panel type**, not just sandbox.\n\n**Endpoint:** `PATCH https://hydrogen.adom.inc/api/workspaces/editor/{owner}/{repo}/current/screenshot`\n\n| Scope | What it captures | Methods |\n|-------|-----------------|---------|\n| `panel` | A single panel | `element-capture` (default) or `html2canvas` (sandbox only) |\n| `workspace` | All panels side by side | `element-capture` only |\n| `screen` | Entire display | `element-capture` only |\n\n**CLI:**\n```bash\nadom-cli hydrogen screenshot panel --panel-id <leaf-id> # active tab\nadom-cli hydrogen screenshot panel --tab-id <tab-id> # specific tab (auto-finds pane)\nadom-cli hydrogen screenshot panel --panel-id <id> --tab-id <id> # explicit pane + tab\nadom-cli hydrogen screenshot workspace # all panels\nadom-cli hydrogen screenshot screen # entire display\n```\n\nUser must enable sharing via the monitor icon in the nav bar. On 504 timeout, the browser **automatically prompts the user** — tell them sharing was requested, retry after a few seconds. `html2canvas` works without sharing but only for sandbox panels.\n\n## Singleton Panels\n\nThese may only appear **once** in the entire workspace. Check the current layout before adding — if already present, tell the user rather than adding a duplicate.\n\n| Full ID | Name |\n|---------|------|\n| `adom/a1b2c3d4-1111-4000-a000-000000000001` | 3D Viewer |\n| `adom/a1b2c3d4-0012-4000-a000-000000000012` | Schematic Editor |\n\n## Full Panel Catalog\n\n### Development\n\n| Full ID | Name | Description |\n|---------|------|-------------|\n| `adom/a1b2c3d4-eeee-4000-a000-00000000000e` | Visual Studio Code | Embedded VS Code editor |\n| `adom/a1b2c3d4-0012-4000-a000-000000000012` | Schematic Editor | Circuit schematic editor *(singleton)* |\n| `adom/a1b2c3d4-0014-4000-a000-000000000014` | Script Runner | Execute automation scripts |\n\n### Control\n\n| Full ID | Name | Description |\n|---------|------|-------------|\n| `adom/a1b2c3d4-3333-4000-a000-000000000003` | Motor Control | XRP robot motor speed/direction |\n| `adom/a1b2c3d4-4444-4000-a000-000000000004` | LED Control | XRP robot LED color/brightness |\n| `adom/a1b2c3d4-5555-4000-a000-000000000005` | Servo Control | XRP robot servo angle |\n| `adom/a1b2c3d4-001b-4000-a000-00000000001b` | Drone Control | Drone flight control and telemetry |\n| `adom/a1b2c3d4-001c-4000-a000-00000000001c` | ESC Control | Electronic Speed Controller |\n| `adom/a1b2c3d4-0010-4000-a000-000000000010` | Lights Control | RGB/white LED strip with color wheel |\n| `adom/a1b2c3d4-0022-4000-a000-000000000022` | Workcell Power | Power supply voltage/current limits |\n| `adom/a1b2c3d4-0023-4000-a000-000000000023` | Basic Control Panel | GPIO pin modes and digital write |\n\n### Visualization\n\n| Full ID | Name | Description |\n|---------|------|-------------|\n| `adom/a1b2c3d4-1111-4000-a000-000000000001` | 3D Viewer | Workcell/robot 3D view *(singleton)* |\n| `adom/a1b2c3d4-001a-4000-a000-00000000001a` | Babylon OTB | Babylon.js 3D viewer with OTB support |\n| `adom/a1b2c3d4-6666-4000-a000-000000000006` | IMU Sensor | Accelerometer, gyroscope, orientation |\n| `adom/a1b2c3d4-8888-4000-a000-000000000008` | Time of Flight Sensor | ToF distance readings |\n| `adom/a1b2c3d4-9999-4000-a000-000000000009` | Ultrasonic Sensor | Ultrasonic distance / obstacle detection |\n| `adom/a1b2c3d4-aaaa-4000-a000-00000000000a` | Line Follower | Line following sensor array |\n| `adom/a1b2c3d4-0015-4000-a000-000000000015` | Temperature Graph | Real-time temperature graphing |\n| `adom/a1b2c3d4-0016-4000-a000-000000000016` | Chip Data | Microchip data monitoring |\n| `adom/a1b2c3d4-0017-4000-a000-000000000017` | Chip Statistics | Microchip performance metrics |\n| `adom/a1b2c3d4-0018-4000-a000-000000000018` | Oven Data | Oven temperature/control monitoring |\n| `adom/a1b2c3d4-0019-4000-a000-000000000019` | ToF Sensor | Time-of-Flight data visualization |\n| `adom/a1b2c3d4-001d-4000-a000-00000000001d` | Bosch Sensors | Bosch sensor suite monitoring |\n| `adom/a1b2c3d4-001e-4000-a000-00000000001e` | BMP Sensor | Bosch BMP pressure/temperature |\n| `adom/a1b2c3d4-0020-4000-a000-000000000020` | BMV Sensor | Bosch BMV sensor visualization |\n| `adom/a1b2c3d4-0021-4000-a000-000000000021` | UWB Sensor | Ultra-Wideband positioning |\n\n### Media\n\n| Full ID | Name | Description |\n|---------|------|-------------|\n| `adom/a1b2c3d4-ffff-4000-a000-00000000000f` | Live Stream | Live camera: static/free-moving or XY zoom |\n| `adom/a1b2c3d4-ffff-4000-a000-000000000100` | WebRTC Player | Single WebRTC video stream |\n| `adom/a1b2c3d4-2660-4a00-a000-000000000266` | XY Zoom Camera | Dual WebRTC streams with minimap |\n\n### Utility\n\n| Full ID | Name | Description |\n|---------|------|-------------|\n| `adom/a1b2c3d4-0011-4000-a000-000000000011` | System Log | Real-time system log with filtering |\n| `adom/a1b2c3d4-bbbb-4000-a000-00000000000b` | Robot Log | XRP robot console output |\n| `adom/a1b2c3d4-7777-4000-a000-000000000007` | Battery Charger | Battery charging status and power |\n| `adom/a1b2c3d4-cccc-4000-a000-00000000000c` | Curriculum | XRP robot educational content |\n| `adom/a1b2c3d4-0031-4000-a000-000000000031` | Web View | Embedded browser — load any URL. **Pass `initialState: { \"url\": \"...\" }` at creation time** to pre-load a URL instead of navigating after. |\n| `adom/a1b2c3d4-5555-4000-a000-000000000050` | Sandbox | Isolated JS execution environment — eval code, take screenshots, reset state. See `sandbox/SKILL.md`. |",
"author": {
"id": "695820315b5f1e4db2fcf602",
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"sample_prompts": [],
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:30:02.132Z",
"updated_at": "2026-05-28T05:30:02.132Z",
"sub_skills": [],
"parent_app": null
}