{
  "schema_version": 1,
  "type": "app",
  "slug": "adom-desktop-bridges-registry",
  "title": "Adom Desktop Bridges Registry",
  "brief": "Canonical directory of installable Adom Desktop bridges — official, sample, and community-maintained. Humans browse it; the GUIs Browse tab parses the same tables.",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "sample_prompts": [
    {
      "label": "Browse available bridges",
      "prompt": "Show me what bridges exist that I can install into Adom Desktop"
    },
    {
      "label": "Submit a bridge",
      "prompt": "How do I publish my own bridge into the Adom Desktop registry"
    },
    {
      "label": "Install an official bridge",
      "prompt": "Install the kicad bridge from the registry"
    }
  ],
  "install": {
    "binary_name": "adom-desktop-bridges-registry",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# Adom Desktop Bridges Registry\n\nThe canonical directory of installable Adom Desktop bridges. Both **humans** (browse the table, click through to docs) and **machines** (the GUI's future \"Browse\" tab parses the same table) read from here.\n\nIf you've built a bridge you want others to discover, [submit a PR](#how-to-submit-a-bridge) to add a row.\n\n## What's a bridge?\n\nA bridge is a small process Adom Desktop spawns to talk to a host application (KiCad, Fusion 360, an instrument, a browser, your in-house tool). It exposes one or more CLI verbs (`kicad_open_board`, `fusion_export_step`, etc.) that the AI calls. End users install bridges with one command:\n\n```bash\nadom-desktop bridge_install '{\"manifestUrl\":\"https://your-host/your-bridge-manifest.json\"}'\n```\n\nFull SDK reference: [Writing a third-party Adom Desktop bridge](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-bridges).\n\n## Official bridges (shipped with Adom Desktop)\n\nThese three ship in the installer and auto-update from the wiki. They also have their own dedicated repos so the community can extend them without coordinating with Adom Desktop's release cycle.\n\n| Name | Vendor / target | Manifest URL | Verbs | Repo | Version | Status |\n|---|---|---|---|---|---|---|\n| `kicad` | KiCad EDA (PCB design) | [manifest](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-desktop/kicad-bridge-manifest.json) | `kicad_*` | [`adom-bridge-kicad`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-kicad-bridge) | 0.8.4 | official |\n| `fusion360` | Autodesk Fusion 360 (3D CAD) | [manifest](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-desktop/fusion-bridge-manifest.json) | `fusion_*` | [`adom-bridge-fusion`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-fusion-bridge) | 1.0.2 | official |\n| `puppeteer` | Chrome for Testing (browser automation, screen recording) | [manifest](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-desktop/puppeteer-bridge-manifest.json) | `browser_*`, `desktop_*` | [`adom-bridge-puppeteer`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-puppeteer-bridge) | 1.0.2 | official |\n\n## Reference templates (sample bridges)\n\nTwo starter bridges, one per language, with identical surfaces. Install one (or both), see how routing works, then fork.\n\n| Name | Language | Manifest URL | Verbs | Page | Version | Status |\n|---|---|---|---|---|---|---|\n| `hello-python` | Python (stdlib only, ~80 lines) | [manifest](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-desktop/hello-python-bridge-manifest.json) | `hellopy_*` | [docs](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-python-bridge) | 1.2.0 | sample |\n| `hello-rust` | Rust (`tiny_http` + serde, single static binary) | [manifest](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-desktop/hello-rust-bridge-manifest.json) | `hellors_*` | [docs](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-rust-bridge) | 1.2.0 | sample |\n\n## Community bridges\n\n*(none yet — be the first!)*\n\n| Name | Vendor / target | Manifest URL | Verbs | Maintainer | Version | Status |\n|---|---|---|---|---|---|---|\n| — | — | — | — | — | — | — |\n\n## How the registry works\n\nThis page is both the human-facing directory **and** the machine-readable source-of-truth for Adom Desktop's bridge discovery. The GUI's \"Browse\" tab (shipping in v1.4.x) reads this page via `/api/v1/pages/adom-desktop-bridges-registry`, parses the three tables above by their column structure, and renders an install UI.\n\n**Column contract** (table-parser keys on these — preserve order + names):\n\n| # | Column | Required | Type | Notes |\n|---|---|---|---|---|\n| 1 | `Name` | yes | string | Lowercase, no spaces. Matches `bridge.json`'s `\"name\"` field. Must be unique across the whole registry. |\n| 2 | `Vendor / target` | yes | string | Human-readable. What tool does this bridge talk to? |\n| 3 | `Manifest URL` | yes | URL | Stable HTTPS URL to a `*-bridge-manifest.json`. SHA256 + zip URL are inside. |\n| 4 | `Verbs` | yes | string | Verb prefixes (e.g. `altium_*`). Comma-separated if multiple. |\n| 5 | `Maintainer` / `Repo` / `Page` | yes | link | Where to file issues / read docs. |\n| 6 | `Version` | yes | semver | Latest stable. |\n| 7 | `Status` | yes | enum | `official` / `sample` / `community` / `archived` |\n\nAny new bridge needs to fit this schema — non-conforming rows are skipped by the GUI parser.\n\n## How to submit a bridge\n\nAdding your bridge here makes it discoverable in Adom Desktop's GUI and via the CLI's `bridge_list_available` command (v1.4.x+).\n\n### Option 1 — PR via GitHub (recommended)\n\n1. Build your bridge (start from [`hello-python`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-python-bridge) or [`hello-rust`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-rust-bridge)) and host its manifest + zip somewhere stable (GitHub Pages, your own CDN, the Adom Wiki).\n2. Open a PR against [`adom-inc/adom-desktop`](https://github.com/adom-inc/adom-desktop) adding your row to the \"Community bridges\" table in `plugins/BRIDGES.md`. A maintainer mirrors it to this wiki page on the next sync.\n3. Include in your PR:\n   - A short description of what the bridge does + what vendor / tool it integrates with\n   - One example verb invocation with expected output\n   - Confirmation that your manifest's `sha256` field matches the actual zip\n4. We'll review within ~1 business day. If accepted, your row appears here within the next wiki-publish cycle.\n\n### Option 2 — Direct wiki edit (faster, but reviewed)\n\nIf you have an Adom account, you can edit this page directly via `adom-wiki page edit apps/adom-desktop-bridges-registry --field content --body-md <patch>`. The change is committed to the wiki's page history; a maintainer reviews and either keeps the edit or reverts it. Abuse → permanent ban.\n\n### What we look for in review\n\n- **Manifest works.** `adom-desktop bridge_install '{\"manifestUrl\":\"<your-url>\"}'` succeeds in a clean Adom Desktop install.\n- **No prefix collision.** Your `verbPrefixes` don't clash with any existing bridge in the registry.\n- **License is permissive.** MIT / Apache-2.0 / BSD-* preferred so end users can redistribute freely. GPL bridges are accepted but flagged in the `Status` column.\n- **Real surface.** Not a toy that wraps `echo`. Actual integration with something — even a small thing — that exposes ≥2 useful verbs.\n- **Cross-platform notes.** If your bridge is Windows-only (or macOS-only), say so in the row's `Vendor / target` cell or in the bridge's own page.\n\n## Status values\n\n| Status | Meaning |\n|---|---|\n| `official` | Maintained by the Adom team. Bundled in the installer. SLA: keeps up with new Adom Desktop releases. |\n| `sample` | Reference template. Maintained as part of the SDK. Not meant for production use, but you can. |\n| `community` | Maintained by an outside contributor. Adom team doesn't review every commit; install with the same trust model you'd use for any third-party software. |\n| `archived` | Originally accepted, no longer maintained. Manifest may still work but won't get fixes. New installs are discouraged. |\n\n## Trust model\n\nToday's trust model is **SHA256 verification of the zip against the manifest**. Adom Desktop downloads the manifest, downloads the referenced zip, and refuses to install if hashes don't match. Bridges run with the user's privileges — same as any installer they'd run.\n\nComing in v1.9.x:\n\n- Optional **Ed25519 signing** of bridge zips with an Adom-Inc public key for \"verified\" status\n- Per-bridge **sandboxing** declared in manifest `permissions` field (filesystem / network access constraints)\n- **Submission flow on the wiki** so community contributors don't need a GitHub account\n\n## See also\n\n- [Writing a third-party Adom Desktop bridge](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-bridges) — full SDK reference\n- [`hello-python`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-python-bridge) + [`hello-rust`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop-hello-rust-bridge) — starter templates\n- [`apps/adom-desktop`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-desktop) — the Adom Desktop app itself\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:28:41.244Z",
  "updated_at": "2026-05-28T05:28:41.244Z",
  "skills": []
}