app
Altium - the Altium Bridge
Public Made by Adomby adom
Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.
← Commit history
Publish 0.2.32
13 files changed
+45−24
README.md+20−13page.json+2−2skills/altium-a365/SKILL.md+2−2skills/altium-boards/SKILL.md+2skills/altium-install/SKILL.md+2skills/altium-instances/SKILL.md+2−2skills/altium-kicad-import/SKILL.md+2skills/altium-libraries/SKILL.md+2skills/altium-licensing/SKILL.md+2−2skills/altium-outputs/SKILL.md+2skills/altium-part-import/SKILL.md+2skills/altium-uia/SKILL.md+3−1skills/altium-wiki-import/SKILL.md+2−2README.md+20−13@@ -6,11 +6,14 @@ Altium Designer on Windows: open and drive every design surface, author native boards, run compile/ERC and DRC, run OutJobs (Gerber, ODB++, NC drill, BOM, pick-and-place), and screenshot any window back to the AI. +**Keyword:** say **altium** to the AI to reach this bridge. It matches the bridge name `altium`+and the verb prefix `altium_`.+ > ### Two artifacts on this page — which one do you want? > > | | **Release ZIP** (`adom-bridge-altium-v*.zip`) | **Package** (`adom-wiki pkg install adom/altium-bridge`) | > |---|---|---|-> | What it is | The **bridge runtime** — the Python server + DelphiScript agent that drive Altium | **Skills + docs only**, for a container/agent |+> | What it is | The **bridge runtime**: the native `altium-bridge.exe` (Rust) + the DelphiScript agent that drive Altium | **Skills + docs only**, for a container/agent | > | Who loads it | **Adom Bridge** downloads it via `adom-bridge-altium-manifest.json` | You, into a container, to teach an agent the `altium_*` verbs | > | Contains | server, handlers, agent template, process catalog parser | `SKILL.md` files (no binaries, no images) | > | You install it manually? | **No** — Bridge handles it | Yes |@@ -105,8 +108,9 @@ drill objects, exactly what the drill file gets: ## How it fits together -The bridge is a `spawn.kind: python` process Bridge launches on the user's machine-(`entrypoint: server.py`, `port: 0`). It speaks HTTP (`POST /command`, `GET /health`) and reaches+The bridge is a `spawn.kind: exe` process Bridge launches on the user's machine+(`entrypoint: altium-bridge.exe`, a native Rust binary since 0.2.0; `port: 0`). Every request runs on+its own thread (from 0.2.28), so one slow verb never blocks the rest. It speaks HTTP (`POST /command`, `GET /health`) and reaches Altium through ranked control surfaces, lightest first: | # | Surface | Used for |@@ -285,18 +289,21 @@ A dialog the user sees is logged as a defect, not handled. ## Lineage -The bridge consolidates Barrett Land's summer-2026 Altium work — `adom-desktop-altium-bridge`,-`altium-part-importer`, `kicad10-to-altium` — into one master repo: every verb ported onto the-resident agent (his bridge forwarded one `X2.EXE` command per call), his three-path part workflow-and KiCad-10 findings carried into the skillpack, his v10→v9 downgrader vendored under `tools/`.+The bridge consolidates Barrett Land's summer-2026 Altium work — his earlier repos+`barrett-land/adom-desktop-altium-bridge` (named when the product was still called Adom Desktop;+this bridge is `adom/altium-bridge`), `altium-part-importer` and `kicad10-to-altium` — into one+master repo: every verb ported onto the resident agent (his bridge forwarded one `X2.EXE` command+per call), his three-path part workflow and KiCad-10 findings carried into the skillpack, his v10→v9 downgrader vendored under `tools/`. His pages stay up with pointers here. ## Running / dependencies Bridge provisions everything; nothing to install by hand. -- **Python** ≥ 3.11 (Bridge provisions it) — stdlib only.-- **Altium Designer** (host app; the `altium-install` skill drives a fresh install + trial sign-in).+- **No runtime to install**: the bridge is one native exe inside the release zip.+- **Altium Designer** (host app). Not installed yet? Call `altium_install {}` and follow `_next`: the verb+ stages the install, verifies the installer's signature, and asks the human only for a password, the UAC+ prompt, or clicks inside the elevated installer. - **OS:** Windows. The bridge binds a Bridge-assigned port — never `0.0.0.0`. Auto-updates via `updateManifestUrl`@@ -304,7 +311,7 @@ in `bridge.json`. --- -*Developer docs ship as `user-invocable:false` skills in the package — `altium-bridge-plan` is the-plan of record with every measured engine fact (the DelphiScript traps, the canvas-persistence-rule for 3D bodies, the stale-agent reload bug, the UIPI lessons). Maintainers get them with the-normal `pkg install`.*+*Developer and publish docs live in this page's source repo (`dev-skills/`, `publish-skills/`, `PUBLISHING.md`), not in the+installed package: `adom-wiki repo clone adom/altium-bridge` to get them. `dev-skills/altium-bridge-dev` holds every measured+engine fact (the DelphiScript traps, the script-halt safety net, the UIPI lessons) and `dev-skills/altium-bridge-test` is the+verb battery that gates a promotion.*
page.json+2−2@@ -4,7 +4,7 @@ "type": "app", "title": "Altium - the Altium Bridge", "brief": "Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.",- "version": "0.2.31",+ "version": "0.2.32", "hero": { "type": "image", "path": "screenshots/hero.png"@@ -140,4 +140,4 @@ "skills/altium-wiki-import/SKILL.md", "uninstall.sh" ]-}+}
skills/altium-a365/SKILL.md+2−2@@ -11,9 +11,9 @@ description: >- altium_a365_query, altium_a365_oauth_begin. --- -# altium-a365+Parent skill: **altium-bridge** -Parent skill: [altium-bridge](../altium-bridge/SKILL.md).+# altium-a365 The cloud lane talks HTTPS to the workspace directly. It has no Altium Designer dependency: it works while X2.EXE is closed and none of these verbs is gated on a licence. Tokens live in the
skills/altium-boards/SKILL.md+2@@ -11,6 +11,8 @@ description: >- 3d camera, board bottom view, pcb report. --- +Parent skill: **altium-bridge**+ # altium-boards ## Test boards in one call
skills/altium-install/SKILL.md+2@@ -3,6 +3,8 @@ name: altium-install description: "Install Altium Designer on the user's Windows PC from an Adom container via adom-bridge — sign in to altium.com (incl. Google SSO + account linking), pull the gated online installer, verify its Authenticode signature, launch it, and drive the wizard. Documents the hard UIPI wall: the installer elevates itself, so a non-elevated adom-bridge CANNOT click the wizard past the EULA page. Also the altium-setup-trial recipe: the account/MSA gate, the free-trial route, and Google SSO account linking. Trigger words — install altium, altium install, altium setup, altium setup trial, altium trial, altium free trial, altium designer, AltiumDesignerSetup, altium sign in, altium account, altium download, altium license, altium EULA, altium installer stuck, altium wizard not clicking, altium UIA." --- +Parent skill: **altium-bridge**+ # altium-install End-to-end recipe for installing Altium Designer on a Windows machine driven from
skills/altium-instances/SKILL.md+2−2@@ -11,9 +11,9 @@ description: >- which altium, second instance, parallel ai threads, per-instance workspace. --- -# altium-instances+Parent skill: **altium-bridge** -Parent skill: [altium-bridge](../altium-bridge/SKILL.md).+# altium-instances ## Addressing one Altium
skills/altium-kicad-import/SKILL.md+2@@ -12,6 +12,8 @@ description: >- symbol wrong font, downgrade kicad 10 library. --- +Parent skill: **altium-bridge**+ # altium-kicad-import Altium 26's KiCad importer understands the format **through KiCad 9**. KiCad 10 files import
skills/altium-libraries/SKILL.md+2@@ -12,6 +12,8 @@ description: >- heatsink vias altium, pin-1 check. --- +Parent skill: **altium-bridge**+ # altium-libraries How library authoring actually works on this bridge, with the traps already paid for.
skills/altium-licensing/SKILL.md+2−2@@ -12,9 +12,9 @@ description: >- license, stranded seat, altium_close force, two altiums one seat. --- -# altium-licensing+Parent skill: **altium-bridge** -Parent skill: [altium-bridge](../altium-bridge/SKILL.md).+# altium-licensing ## The rule that explains almost everything
skills/altium-outputs/SKILL.md+2@@ -10,6 +10,8 @@ description: >- export. --- +Parent skill: **altium-bridge**+ # altium-outputs ## Checks
skills/altium-part-import/SKILL.md+2@@ -14,6 +14,8 @@ description: >- use adom-library-importer instead. --- +Parent skill: **altium-bridge**+ # altium-part-import Adds catalog components to the user's **Altium Designer** libraries with the full vendor
skills/altium-uia/SKILL.md+3−1@@ -11,9 +11,11 @@ description: >- license management click, altium control catalog. --- +Parent skill: **altium-bridge**+ # altium-uia -Parent skill: [altium-bridge-dev](../altium-bridge-dev/SKILL.md).+Developer notes: `altium-bridge-dev` (in the source repo under `dev-skills/`, not shipped in the skills pkg). **The rule, in order: the resident AGENT for anything inside the application, UIA for dialogs and WebView pages, `desktop_click` only when neither can reach it.**
skills/altium-wiki-import/SKILL.md+2−2@@ -11,9 +11,9 @@ description: >- altium, kicad_mod to altium, import_part, library export, prove the import. --- -# altium-wiki-import+Parent skill: **altium-bridge** -Parent skill: [altium-bridge](../altium-bridge/SKILL.md).+# altium-wiki-import ## What ships today