app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
← Commit history
Update 161 file(s)
13 files changed
+34−39
BRIDGE_VERSION+1−1bridge.json+1−1dashboard/Cargo.lock+1−1dashboard/Cargo.toml+1−1install.sh+1−1package.json+1−1page.json+11−27rust/Cargo.toml+1−1skills/fusion-autodesk-signin/SKILL.md+4−1skills/fusion-eagle-commands/SKILL.md+2−2skills/fusion-electronics/SKILL.md+7skills/fusion-no-modal-dialogs/SKILL.md+1−1skills/fusion-web-control/SKILL.md+2−1BRIDGE_VERSION+1−1@@ -1 +1 @@-1.10.4+1.10.5
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.10.4",+ "version": "1.10.5", "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.", "homepage": "https://wiki.adom.inc/adom/fusion-bridge", "author": "Adom Inc.",
dashboard/Cargo.lock+1−1@@ -4,7 +4,7 @@ version = 4 [[package]] name = "fusion-dashboard"-version = "1.10.4"+version = "1.10.5" dependencies = [ "serde_json", ]
dashboard/Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "fusion-dashboard"-version = "1.10.4"+version = "1.10.5" edition = "2021" [dependencies]
install.sh+1−1@@ -21,7 +21,7 @@ echo "Installed fusion-bridge skills: $(ls "$PKG_DIR/skills" 2>/dev/null | tr '\ # binary (the three-artifact pattern: bridge zip -> ab, THIS pkg -> container skills + # this download, page media -> wiki). Per the wiki's PKG_VS_RELEASE policy, binaries are # platform-tagged RELEASE assets, never tarball content - the installer fetches them.-DASH_VERSION="1.10.4"+DASH_VERSION="1.10.5" DASH_URL="https://wiki.adom.inc/download/adom/fusion-bridge/${DASH_VERSION}/fusion-dashboard" DEST="" if [ -w /usr/local/bin ]; then DEST=/usr/local/bin
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "fusion-bridge",- "version": "1.10.4",+ "version": "1.10.5", "type": "app", "description": "This package installs the bridge's SKILLS into your container so your AI knows how to drive it; Adom Bridge loads the bridge runtime itself from the release zip.", "dependencies": {
page.json+11−27@@ -1,6 +1,6 @@ { "slug": "fusion-bridge",- "version": "1.10.4",+ "version": "1.10.5", "type": "app", "description": "This package installs the bridge's SKILLS into your container so your AI knows how to drive it; Adom Bridge loads the bridge runtime itself from the release zip.", "dependencies": {@@ -11,6 +11,10 @@ "uninstall": "./uninstall.sh" }, "tags": [+ "ab",+ "bridge",+ "fusion",+ "desktop-app", "fusion360", "autodesk", "cad",@@ -75,7 +79,10 @@ "build a basic parts library", "add a 3d model to a component", "make a fusion 360 library with 3d",- "set up the fusion bridge"+ "set up the fusion bridge",+ "fusion dashboard",+ "fusion status page",+ "open the fusion launch page" ], "discovery_pitch": "Use the Adom Bridge Fusion 360 bridge when the user wants to DRIVE Autodesk Fusion 360 from the cloud: open/search their team's Fusion cloud designs, lay out a PCB or do electronics, export STEP/IGES/STL/Gerbers/BOM, or build a component library with real rendering 3D. It runs Fusion on the user's own machine via Adom Bridge. NOT for web/browser/login/form-filling (that's the native-browser extension) and NOT for KiCad (that's the kicad bridge).", "brief": "Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.",@@ -104,28 +111,5 @@ "label": "Part volume", "prompt": "How much material does each printed part in this assembly use?" }- ],- "agent_permissions": {- "allow_bash": [],- "allow": [- "adom-desktop-fusion-bridge read-only verbs (via the adom-bridge CLI): fusion_readiness, fusion_get_app_state, fusion_addin_status, fusion_check_dialogs - state queries; they change nothing.",- "adom-desktop-fusion-bridge read-only verbs: fusion_alerts (reads Fusion's own log for toasts), fusion_document_info, fusion_window_info, fusion_board_info, fusion_library_parts - inspect only.",- "adom-desktop-fusion-bridge read-only verbs: fusion_prove_result (a persisted run report), fusion_plan_library_import (report-only preflight), fusion_list_cloud_projects, fusion_describe.",- "adom-desktop-fusion-bridge evidence captures fusion_screenshot_fusion and fusion_capture_library_views read pixels and write local image files only."- ],- "soft_deny": [- "adom-desktop-fusion-bridge lifecycle verbs fusion_stop, fusion_kill, fusion_restart_for_addin close or kill the Fusion application - keep the human prompt.",- "adom-desktop-fusion-bridge fusion_install_fusion silently installs Autodesk Fusion on the user's machine.",- "adom-desktop-fusion-bridge fusion_cleanup_cloud_files deletes files from the user's Autodesk cloud hub.",- "adom-desktop-fusion-bridge managed-library verbs (fusion_managed_library_push/pull/create/link/unlink) publish to or overwrite the user's library.io libraries."- ],- "environment": [- "adom-desktop-fusion-bridge is the Fusion 360 bridge for Adom Bridge; its fusion_* verbs are invoked through the adom-bridge CLI and drive Autodesk Fusion on the user's own desktop.",- "adom-desktop-fusion-bridge desktop actions also pass Adom Bridge's own human-approval gate (caller identity, per-call reason, Activity Log) - a container approval is the first of two gates."- ]- },- "author": {- "name": "John Lauer",- "email": "[email protected]"- }-}+ ]+}
rust/Cargo.toml+1−1@@ -4,7 +4,7 @@ members = ["core", "lbr", "os-win", "os-mac", "bridge"] # One version for the whole bridge, in lockstep with BRIDGE_VERSION (tools/release.sh bumps both). [workspace.package]-version = "1.10.4"+version = "1.10.5" edition = "2021" license = "MIT"
skills/fusion-autodesk-signin/SKILL.md+4−1@@ -15,7 +15,10 @@ fresh Hyper-V VM (John, 2026-07-14); every step below is a thing that actually w to the human with `fusion_notify_owner` and let THEM type it. ## Where you are (confirm first)-`fusion_readiness` → `installed:true, running:true, ready:false, needsSignin:true`. The Fusion window+`fusion_readiness` → `installed:true, running:true, ready:false, needsSignin:true`. Since bridge 1.10.1+any add-in verb sent in this state answers `errorCode: needs_signin` within about a second (the gate+reads the window title before probing the add-in), so a `needs_signin` reply is the same signal:+resolve the sign-in, do not restart Fusion or diagnose the add-in. The Fusion window title is "Signing in - Autodesk Fusion" or "Welcome to Fusion". Get its hwnd (Get-Process Fusion360 → MainWindowHandle) and `desktop_screenshot_window {hwnd}` to see it. `desktop_screenshot_window` uses PrintWindow, so it captures backgrounded/occluded windows and their owned child dialogs — use it, not
skills/fusion-eagle-commands/SKILL.md+2−2@@ -22,7 +22,7 @@ These commands open modal prompts EAGLE waits on forever. Your call will hang un | Command | Why it blocks | Use instead | |---|---|---| | `ADD` | Prompts for component placement | Edit source .sch/.brd via import commands |-| `SHOW` | Opens an info dialog | `fusion_board_info` (boards). There is no `fusion_schematic_info`: for a schematic use `fusion_export_source` / `fusion_export_eagle_source` and read the XML, or `fusion_get_app_state` |+| `SHOW` (bare) | Waits for a click | `SHOW <name>` (for example `SHOW GND`, `SHOW R1`) is allowed since 1.10.3: it highlights the named objects and returns. For data use `fusion_board_info` (boards). There is no `fusion_schematic_info`: for a schematic use `fusion_export_source` / `fusion_export_eagle_source` and read the XML, or `fusion_get_app_state` | | `MOVE` | Interactive picker | Edit source files offline | | `CHANGE` (interactive form) | Picker for target object | Use with explicit object: `CHANGE WIDTH 0.3 (1 2)` is OK | | `WRITE` | Cloud: opens "Version Description" dialog even with path arg (tested 2026-04-10). Local: opens Save As. | `fusion_save_to_cloud`, `fusion_export_source`, `fusion_export_eagle_source` |@@ -116,7 +116,7 @@ Workflow for both: | Command | Prefer instead | |---|---| | `INFO U1` | `fusion_board_info` → components[] |-| `SHOW GND` | `fusion_board_info` → nets[] |+| `SHOW GND` (to read data) | `fusion_board_info` → nets[]; `SHOW GND` itself is fine when you want the visible highlight | ## Chaining
skills/fusion-electronics/SKILL.md+7@@ -118,6 +118,13 @@ fusion_set_design_rules {"druPath": "C:/Users/me/my-fab.edru"} // a local file fusion_set_design_rules {} // the bundled Adom InstaPCB rules (unchanged) ``` +Read `ruleWarnings` in the apply reply (1.10.3+): it names any rule in the downloaded profile+that native DRC will report at every ordinary trace joint (a Copper Clearance with+samesignal="yes" over an all/all or trace scope). Such warnings are rule noise, not copper+defects; a different-signal overlap stays an ERROR. Also read the loaded values back with+`{"action":"export"}` rather than trusting the command reply; the profile was generated on+adom/pcb-design-rules and may lag a vendor change.+ - A board must be open in the PCB Editor (`fusion_show_2d_board` first); otherwise the add-in answers "Not in Board Layout" and nothing changes. - **Verify, do not assume.** `fusion_alerts {sinceSec:60}` must be empty afterwards: a refused
skills/fusion-no-modal-dialogs/SKILL.md+1−1@@ -165,7 +165,7 @@ is what reached Fusion and what appeared on screen, not what the docstring asser | `EXPORT` onto an existing file | "Overwrite?" | Pre-delete the target, `SET CONFIRM YES` | | `WRITE` | Save As | Never call from automation; pass an explicit path | | `ADD` | component picker | Never from automation |-| `SHOW <name>` | interactive highlight | Avoid; use a capture instead |+| `SHOW` (bare) | waits for a click | Always pass the object name: `SHOW <name>` highlights and returns (allowed since 1.10.3) | | `GRID` (no params) | grid settings | Always pass params | | closing a dirty document | "Save changes?" | Save first, or close with `force` | | opening a malformed `.lbr` | "has errors and cannot be opened" | `_preflight_lbr` refuses it offline |
skills/fusion-web-control/SKILL.md+2−1@@ -78,7 +78,8 @@ the four questions a caller needs before starting: |---|---|---| | `not_installed` | Fusion is not on this machine | Offer to install it; the plan includes the install stage (10-30 min) | | `installed_not_running` | Just needs launching | Proceed; launch is a stage, ~60s, folded into the ETA |-| `addin_restart_required` | Running, but the add-in is not loaded | **Ask the user**, then `fusion_restart_for_addin` |+| `needs_signin` | Running, but at the Autodesk sign-in screen (bridge 1.10.1+) | Drive the sign-in (fusion-autodesk-signin skill); board verbs return this at once, never a restart diagnosis |+| `addin_restart_required` | Running and signed in, but the add-in is not loaded | **Ask the user**, then `fusion_restart_for_addin` | | `ready` | Good to go | Start | It returns `plan[]` with a per-stage `estimatedSec` and `confidence`, plus `estimatedSec`