app
Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
← Commit history
Publish 1.9.51
7 files changed
+31−52
SKILL.md+1−1@@ -485,7 +485,7 @@ Bridges are AD's plugins (kicad, puppeteer, fusion360 ship bundled; others insta | `bridge_uninstall` | Remove a bridge (`{"name":"…"}`). Bundled ones revert to the bundled copy; third-party ones are fully removed. | | `bridge_pause` / `bridge_resume` | Flip a routing flag so a bridge's verbs fail-fast with `bridge_paused` (or resume). Does NOT kill the process. | -**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-author` skill.+**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-sdk` skill (the `adom-desktop-bridges` wiki page) + its fill-in-the-blanks templates. **Typical "am I on the latest bridges?" flow:** ```bash
dist/linux/adom-desktop⋯ 1 unchanged line ⋯
install.sh+25−37@@ -1,44 +1,28 @@ #!/usr/bin/env bash-# adom-desktop installer — installs cleanly under adom-wiki (the official wiki CLI; adompkg retired).+# adom-desktop installer — runs in the Adom container via `adompkg install`. #-# Bundled-artifact model: the Linux CLI companion + the Claude skill bundle ship INSIDE this-# package's tarball (dist/linux/, skills/). We SYMLINK them onto PATH / into ~/.claude/skills.-# SELF-CONTAINED: no dependency on any package-manager's shell helpers (formerly-# `source "$(adompkg sh-helpers)"`), so it works under adom-wiki, adompkg, or a bare run.+# Bundled-artifact model (v1.8.147+): the Linux CLI companion + the Claude skill+# bundle ship INSIDE this package's tarball (dist/linux/, skills/). We SYMLINK+# them onto PATH / into ~/.claude/skills via the adompkg sh-helpers — the+# lint-sanctioned convention (no copy-into-standard-targets). No download, no+# version.json dependency: the binary is right here, SHA-fixed by the published+# tarball. #-# What it does NOT do: install the Windows/macOS GUI. That runs on the user's laptop; the signed-# Windows installer is bundled at dist/win/ for Hydrogen Desktop to pull + run there.+# What it does NOT do: install the Windows/macOS GUI. That runs on the user's+# laptop; the signed Windows installer is bundled at dist/win/ for Hydrogen+# Desktop to pull + run there. The skills tell Claude how to get the GUI onto+# the laptop. set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)"-cd "$HERE" # install runs with cwd = the extracted module dir (adom-wiki/adompkg both set it).+cd "$HERE" # sh-helpers symlink FROM $PWD; `adompkg install` sets cwd here too. -# Self-contained symlink helpers (replacing adompkg-link-bin / adompkg-link-skill). Convention:-# every install target is a symlink back into the module dir, so edits propagate and reinstalls-# don't clobber. Portable (no GNU-only `ln -T`): a real-dir squatter is replaced first.-link_bin() { # <name> [relative-path, default bin/<name>]- local name="$1" rel="${2:-bin/$1}" target="${ADOM_BIN_DIR:-$HOME/.local/bin}"- mkdir -p "$target"- if [ -L "$target/$name" ]; then- local existing; existing="$(readlink "$target/$name" 2>/dev/null || true)"- [ -n "$existing" ] && [ "$existing" != "$PWD/$rel" ] && \- echo "WARNING: $target/$name already points to $existing — overwriting (two packages claim '$name')." >&2- fi- ln -sfn "$PWD/$rel" "$target/$name"- chmod +x "$PWD/$rel" 2>/dev/null || true- echo "Linked $target/$name -> $PWD/$rel"-}-link_skill() { # <slug> [relative-path, default skills/<slug>]- local slug="$1"- [ -n "$slug" ] || { echo "ERROR: link_skill: empty slug — refusing." >&2; return 1; }- local rel="${2:-skills/$slug}" target="$HOME/.claude/skills" dest- dest="$target/$slug"; mkdir -p "$target"- [ -e "$PWD/$rel" ] || { echo "ERROR: link_skill: source '$PWD/$rel' missing — refusing (dest untouched)." >&2; return 1; }- # A NON-symlink real dir (e.g. from another installer) squatting the slug would make ln nest- # inside it as <slug>/<slug>; replace it instead.- [ -e "$dest" ] && [ ! -L "$dest" ] && { echo "WARNING: '$slug' was a real dir — replacing with symlink." >&2; rm -rf "$dest"; }- ln -sfn "$PWD/$rel" "$dest"- echo "Linked $dest -> $PWD/$rel"-}+# adompkg shell helpers: adompkg-link-bin / adompkg-link-skill (ln -sfn ...).+if ! command -v adompkg >/dev/null 2>&1; then+ echo "[adom-desktop] FATAL: adompkg not on PATH — install via 'adompkg install adom-desktop'." >&2+ exit 1+fi+# shellcheck disable=SC1090+source "$(adompkg sh-helpers)" OS="$(uname -s | tr '[:upper:]' '[:lower:]')" case "$OS" in@@ -49,7 +33,8 @@ case "$OS" in exit 1 fi chmod +x "$CLI"- link_bin adom-desktop "$CLI" # ~/.local/bin/adom-desktop -> $PWD/dist/linux/adom-desktop+ # Symlink ~/.local/bin/adom-desktop -> $PWD/dist/linux/adom-desktop.+ adompkg-link-bin adom-desktop "$CLI" case ":$PATH:" in *":$HOME/.local/bin:"*) ;; *) echo "[adom-desktop] NOTE: $HOME/.local/bin is not on PATH — add it to your shell rc." ;;@@ -69,11 +54,14 @@ case "$OS" in esac # Claude skill bundle — symlink each skills/<slug>/ into ~/.claude/skills/<slug>.+# Slugs staged at publish time: adom-desktop, adom-desktop-pup, adom-desktop-kicad,+# adom-desktop-fusion, adom-desktop-direct-api, adom-desktop-installer,+# adom-desktop-discovery. if [ -d "skills" ]; then for d in skills/*/; do [ -f "$d/SKILL.md" ] || continue slug="$(basename "$d")"- link_skill "$slug" "skills/$slug"+ adompkg-link-skill "$slug" "skills/$slug" done fi
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop", - "version": "1.9.41", + "version": "1.9.51", "type": "app", "hero": { "path": "docs/hero.png" }, "description": "Laptop bridge: file transfer, screenshots, notifications, KiCad + Fusion 360 control, real-Chrome (Puppeteer) automation, and Hydrogen Desktop proxy. One install gives Claude every desktop verb it needs.",
page.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop",- "version": "1.9.42",+ "version": "1.9.51", "type": "app", "description": "Laptop bridge: file transfer, screenshots, notifications, KiCad + Fusion 360 control, real-Chrome (Puppeteer) automation, and Hydrogen Desktop proxy. One install gives Claude every desktop verb it needs.", "keywords": [
skills/adom-desktop/SKILL.md+1−1@@ -485,7 +485,7 @@ Bridges are AD's plugins (kicad, puppeteer, fusion360 ship bundled; others insta | `bridge_uninstall` | Remove a bridge (`{"name":"…"}`). Bundled ones revert to the bundled copy; third-party ones are fully removed. | | `bridge_pause` / `bridge_resume` | Flip a routing flag so a bridge's verbs fail-fast with `bridge_paused` (or resume). Does NOT kill the process. | -**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-author` skill.+**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-sdk` skill (the `adom-desktop-bridges` wiki page) + its fill-in-the-blanks templates. **Typical "am I on the latest bridges?" flow:** ```bash
version.json+2−11@@ -1,14 +1,5 @@ { "manifest_version": 1, "version": "1.9.51", - "released_at": "2026-06-30T14:59:56Z", - "note": "Windows auto-updater manifest. Linux CLI + skills ship via the adompkg tarball (adom-wiki pkg install adom/adom-desktop) - not in this manifest.", - "windows": { - "installer_url": "https://wiki.adom.inc/download/adom/adom-desktop/1.9.51/Adom%20Desktop_1.9.51_x64-setup.exe", - "installer_filename": "Adom Desktop_1.9.51_x64-setup.exe", - "installer_sha256": "3187e3d91d1213169f3a52bf4ebb6301f420b3fdb6c2e20f22520207ca550ba0", - "installer_size": 12032888 - }, - "changelog_url": "https://wiki.adom.inc/adom/adom-desktop", - "minimum_required": "1.3.30" -} + "note": "Pkg manifest. NO cli block \u2014 a cli.linux_x86_64 without binary_url breaks the Windows updater (CliBinaryInfo.binary_url is required). The Linux CLI ships bundled in this tarball at dist/linux/adom-desktop." +}