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
Hardening: relay serves on the well-known default bearer token with no warning (machine-controller desktops reachable by anyone who knows a relay URL)
The relay's shared bearer token defaults to the well-known literal adom-dev-token-2025, nothing warns when a relay is serving on that default, and the token authenticates the link rather than a person — so in practice every container relay we have is reachable by anyone who knows a relay URL plus a value that is published in the docs and skills.
Observed (2026-07-24). On one machine PC's AD config, all three configured relays carry the documented default verbatim:
name=gallia enabled=true url=wss://drew2-gallia-….adom.cloud/proxy/8765/ token=IS_DOCUMENTED_DEFAULT
name=factory-backups enabled=true url=wss://factory-backups-relay-….adom.cloud/ token=IS_DOCUMENTED_DEFAULT
name=AdomPNP enabled=true url=wss://drew2-adompnp-….adom.cloud/proxy/8765/ token=IS_DOCUMENTED_DEFAULT
(Checked by string comparison; the token values themselves are not reproduced here.)
Why this matters more than a normal default-credential nit: the desktops on these relays are machine controllers. One of ours is the Windows PC that runs an Essemtec Puma pick-and-place. A bridge on that PC exposes a verb that patches the machine's process library. The relay token is the only thing gating who may issue verbs to that desktop — the per-verb approval gate covers a subset of verbs, and a bridge's own identity check (X-Adom-User) is transport-trusted attribution that the caller supplies, so it does not distinguish callers. Net effect: anyone who can join the relay can drive any connected desktop, and can self-assert whatever caller identity they like.
We are not reporting this as an AD defect in the strict sense — we know rotation is ours to do: adom-desktop serve --token <T> / ADOM_AUTH_TOKEN sets the token the relay requires, and each desktop's server entry carries a matching auth_token. We have that scheduled. This issue is a hardening request, because the current defaults make the insecure state the effortless one and the secure state invisible:
- Generate a per-container token on first
serve(persist it alongside the relay's other state) instead of falling back to a shared literal.setup_desktop/register_containeralready emit theauth_tokeninto the server JSON they hand out, so a generated value would flow to the desktop with no extra user step — the zero-paste path keeps working and stops being a shared secret. - Warn loudly when a relay serves on the default — a line in
serve's startup output, a flag in the relay's/health, and ideally a note intargets/ the Connections panel so a human can see "this link is using the well-known default". - Surface it in
connectivity/doctoras a check, so it shows up during routine troubleshooting rather than only when someone goes looking. - Docs: where the default is documented (the auth skill and the CLI help both name it), state plainly that it is a development default and that any relay reachable by a machine controller should be rotated.
- Worth considering separately: whether the relay should distinguish callers at all (a per-caller credential rather than one link token). That is a bigger design question and it is the same gap that blocks attributing a bridge verb to a person — see the related caller-identity discussion; not asking for it here, just flagging that (1)–(4) are mitigation, not a fix for that.
Happy to test a pre-release if useful — we have four container relays and two desktops, including the machine PC, so we would exercise both the proxy-path and mapped-port container shapes.