Altium Bridge: AI for Altium Designer
Public Made by Adomby adom
Let an AI (Claude, ChatGPT, Codex or any agent) run Altium Designer for you: create symbols and footprints, place parts (also from Altium 365), wire and annotate schematics, Update PCB, set the stack-up and rules, route, pour copper, add mounting holes and stitching vias, run ERC and DRC, and make Gerbers, BOMs and STEP. Free in Hydrogen; bring your own AI and Altium licence.
Skills
The skills this repo ships, by tier, each with a quick health read. Install the user skills with:
adom-wiki skills install adom/altium-bridgeDrive Altium Designer on the user's Windows PC through adom-bridge (altium_* verbs): DelphiScript eval, the process launcher, open any surface with a frame, compile/ERC, DRC, OutJobs, dialogs. Use when asked to open in altium, show the board in altium, altium drc or erc, run delphiscript.
The Altium 365 cloud lane of altium-bridge (altium_a365_* verbs): workspace and token or OAuth sign-in, GraphQL, the cloud library, Files Service upload; no Altium Designer needed. Use when asked about an Altium 365 workspace, projects or cloud library, or a verb returns a365_not_configured.
Altium boards through altium-bridge: test boards, shapes, stack-up (planes, 4 layers), net classes, diff pairs, track widths, mounting holes, fiducials, stitching vias, free space, footprint swaps, readback, 3D. Use when asked for an altium stack-up, net class, mounting holes, where a part fits.
The Altium BOM an AI can work with: altium_bom reads every sheet, merges placement and variants, groups by MPN, flags order and JLCPCB gaps, writes JLCPCB, Mouser and DigiKey files; altium_variants makes variants. Use for an altium bom, pricing, variants (DNP) or JLCPCB.
THE plan of record for the Altium Designer bridge (keyword `altium`, verbs `altium_*`) — every automation surface Altium exposes, measured on a real AD 26.9.1 install, ranked into lanes: the ScriptingSystem:RunScriptText eval, the resident DelphiScript agent (the REPL lane), the 1,109-command process-launcher catalog, X2.EXE -R command-line bootstrap, UIA over the VCL/DevExpress shell (and CDP for its WebView2 pages), the Altium 365 GraphQL API + embeddable viewer, file-format parsers, the native SDK extension, and the sign-in/license gates. Includes the verb catalog, the dialog doctrine, the phase plan with acceptance criteria, and the Phase 0 experiments still owed. Refer back here before any altium-bridge work. Trigger words — altium bridge, altium_ verbs, drive altium, control altium designer, altium automation, altium delphiscript, RunScriptText, altium process launcher, altium 365 api, altium sign in license, altium add-in, altium plan.
Install Altium Designer on the user's Windows PC via adom-bridge: altium.com sign-in (incl. Google SSO), the gated installer and its signature, the wizard and its UIPI wall, the free trial. Use when asked to install altium, altium setup or trial, altium download, or the altium installer is stuck.
Several Altiums at once (Altium Designer beside Altium Designer Develop, often two AI threads): address one with instance:<pid|key|word>, why a verb refuses with ambiguous_instance. Use when two altiums are running, which altium, a second instance, or a verb returns ambiguous_instance.
Import KiCad parts, especially KiCad 10, into Altium Designer correctly: downgrade v10 to v9 for Altium's importer, or convert natively with altium-kicad2altium. Use when asked for kicad to altium, a kicad 10 altium import, hidden fields visible after import, or an imported symbol in the wrong font.
Author native Altium libraries through altium-bridge: symbols with display modes, footprints and variants, persistent 3D bodies, Mouser + DigiKey + LCSC parameters, the pin-1 check. Use when creating or editing .SchLib/.PcbLib content, binding 3D bodies, footprint variants, or verifying pin-1.
Altium's On-Demand licence seat: killing Altium strands it; one seat per machine shared by Designer and Develop; how to swap or recover it. Read before closing or killing any Altium. Use when a verb returns not_licensed, the title says No License or Viewer, or license maximum usage reached.
Checks and manufacturing outputs through altium-bridge: compile/ERC with Messages read back, DRC violations, OutJob runs (Gerber, ODB++, NC drill, BOM, pick-and-place), headless STEP export. Use when asked for altium drc, erc, compile altium, altium gerbers, an outjob, odb++, or altium step export.
Add any catalog part to the user's Altium library with Mouser, DigiKey and LCSC/JLCPCB numbers via altium-bridge: reuse a symbol, create from an .IntLib or wiki part page, or append across libraries. Use when asked to add a part, resistor or IC to Altium, or import a footprint or symbol.
Edit an Altium schematic and push it to the board: place library or Altium 365 parts, swap, wire, annotate, hierarchical sheets, the compiled netlist, a previewed ECO, PDF. Use when asked to add a part in altium, add a sheet, check the netlist, or update pcb.
DEVELOPER-only. Driving Altium Designer through Windows UI Automation (ab's desktop_ui_* verbs) instead of synthetic clicks, and the measured catalog of what AD26 actually exposes: dialogs, main menus, the document bar, and the WebView2 License Management page - plus where UIA is too slow to use and the agent wins instead. Read BEFORE adding any verb that touches an Altium window, and before reaching for desktop_click. Trigger words — altium uia, ui automation, desktop_ui_click, automation id, foreground, focus steal, cursor moved, click altium button, switch document tab, license management click, altium control catalog.
Import a component from the Adom wiki into Altium (one part page or a whole Cloud Library) with symbol, footprint, 3D body and Mouser/DigiKey/LCSC identity, in the background. Use when asked to add or place this wiki part in Altium, install my cloud library into Altium, or prove an import worked.
DEVELOPER skill (never offered to everyday users) for working ON the altium-bridge: the resident DelphiScript agent architecture (file-drop REPL, per-digest generations, stale-agent auto-restart), the dialog pre-emption doctrine (the debugger breaks on ANY exception, so a raise IS a modal), the transaction-hygiene rule (dangling PreProcess = "a command is currently active"), the deploy loop (cross-compile bridge-rs + send_files the exe into the bridge cache + bridge_kill; agent_stop before agent_start for template changes), and the engine-halting identifier list. Read before editing agent/AdomAgent.pas.tmpl or bridge-rs/src/. Trigger words — edit altium bridge, altium agent template, delphiscript agent, deploy altium bridge, altium engine halt, undeclared identifier altium, bridge-rs.
DEVELOPER-only skill (user-invocable:false). The standard end-to-end verb battery for the Altium bridge: one runner that exercises EVERY altium_* verb in the live catalog against a real Altium on a real Windows box, on scratch copies of three test parts (leaded SOIC-8, QFN-24 with 9 heatsink vias, BGA-36). Coverage-enforced: a new verb with no entry turns the run red. Run it before every promotion to the public tier, after any change to the agent template or agent.rs/dialogs.rs, and once on every new Altium build or machine. Trigger words - test the altium bridge, altium verb test, verb battery, test all altium verbs, regression test altium, pre-release check altium, is altium-bridge safe to promote, run_verb_tests.
DEVELOPER-only publish recipe for shipping a new altium-bridge version to wiki.adom.inc/adom/altium-bridge: the version lockstep (bridge.json + BRIDGE_VERSION + package.json + manifest), the runtime zip build, repo push + release create, the skills-only pkg publish (stage from files[] to keep the tarball clean), and the studio-gated hero. Read when releasing the altium bridge. Trigger words — publish altium bridge, release altium bridge, ship altium bridge, bump altium bridge, altium bridge manifest, altium bridge pkg.
Health: the size chip is green when right-sized, yellow when getting long, red when the model likely skims it. A green check is a passed preamble/structure signal; an amber mark is a gentle nudge, not a hard failure.