---
name: hydrogen-dock-sdk
description: >-
  Make a wiki app launchable from the Adom Hydrogen dock bar. Read when a user says: make my app dock-ready, add my app to the dock, dock.json, dockbar.json, dock manifest, launch steps, AI thread on dock launch, staged vs auto submit, typed prompt, dock console output, dock bar sdk.
---

# hydrogen-dock-sdk: make an app dock-ready

The full reference lives in this page's README — read it for the complete
manifest schema, defaults, the click lifecycle, and the publisher checklist.
This skill is the working summary.

## The contract

Put a `dock.json` (or `dockbar.json`) at the app's wiki page repo root
(sub-folders work, root preferred; depth capped at 2). Hydrogen discovers it and the
app becomes a dock candidate. Display (name, brief, hero) always comes from the
page itself — the manifest only describes the launch.

```json
{
  "dock_manifest": "1.1.0",
  "webview": { "title": "My App", "favicon": "icons/app.svg" },
  "launch": {
    "mode": "container_command",
    "console": "show",
    "steps": [
      { "label": "Installing", "run": "adom-wiki pkg install owner/slug",
        "skip_if": "command -v myapp", "timeout_seconds": 180 },
      { "label": "Starting", "run": "myapp serve --print-url",
        "await": "url", "timeout_seconds": 60 }
    ],
    "on_ready": "navigate_placeholder",
    "ai": { "prompt": "…", "thread": "existing", "thread_fallback": "new",
            "submit": "staged", "typed": false }
  }
}
```

## The rules that matter

- **`--print-url` is the integration contract**: the serve verb prints its
  reachable URL to stdout and keeps serving; that step gets `await: "url"`.
- **`console`** defaults to `"show"` (command transcript streams under the
  orbital loading animation); `"hide"` for animation-only.
- **No `ai` block → no AI thread.** A dock click is not an AI event unless the
  manifest says so.
- **`submit` defaults to `"staged"`** (prompt sits in the input for the user to
  send); `"auto"` submits immediately. `typed: true` = tutorial-style typing
  animation (default instant).
- **`thread: "existing"`** finds the most recent thread Hydrogen tagged for this app
  and foregrounds it; `thread_fallback` (`"new"` default | `"current"`) applies
  when none exists.
- Manifests declaring `1.0.0` keep the old `submit: "auto"` default; the
  staged default applies to `1.1.0`+.

## Test before publishing

Dock settings (gear) → Add app → `owner/slug` reads the live manifest
immediately, your Hydrogen only. Whole-list drafts: Dock settings → Manifest URL
(draft). Global listing is adom-curated — request via an issue on
adom/adom-hydrogen.
