Fusion Bridge - Verb Reference

Every verb the Adom Desktop Fusion 360 Bridge exposes, by category, with what it does, its arguments, and an example call. Invoke any verb as adom-desktop <verb> '<json-args>' (Adom Desktop proxies the fusion_* prefix to the bridge).

Back to the main README.


Lifecycle: launch, documents, windows

fusion_activate_document

Switch to an open document tab by name or type

Args: documentType (optional: Electronics|PCB|FusionDesign|Drawing), name (optional substring match)

fusion_close

Close Fusion 360 gracefully

fusion_close_all_documents

Close all open documents

Args: saveChanges (optional bool (default: false))

fusion_close_document

Close a document without save dialog (avoids modal blocking)

Args: name (optional (default: active)), save (optional bool (default: false))

fusion_close_window

Close a specific Fusion dialog window by sending WM_CLOSE (equivalent to clicking its X button). Works on dialogs that Escape doesn't close - e.g. 'Recovered Documents'.

Args: hwnd (required - HWND from fusion_window_info or fusion_dismiss_blocking_dialogs remaining[])

fusion_dismiss_blocking_dialogs

First-class blocking-dialog killer. Enumerates all Fusion Qt windows, matches them against a known list of blocking/picker patterns ('What do you want to design?', error toasts, recovery prompts, etc.), and sends Escape to each offending HWND until the add-in main thread reports responsive. Whenever any fusion_* command returns errorCode 'fusion_addin_not_responding', call this FIRST before retrying.

Args: extraPatterns (optional array of case-insensitive title substrings to also treat as blocking), maxAttempts (optional int (default 5) - retry loop cap)

fusion_document_info

List all open document tabs with cloud metadata for active doc

fusion_get_app_state

Query open documents, active workspace, Electronics status

fusion_start

First-class Fusion 360 startup. Discovers Fusion360.exe via glob (so version-indirected webdeploy hashes don't matter), verifies it exists BEFORE spawning (no 'Windows cannot find' GUI dialogs), launches it if not already running, waits for the AdomBridge add-in to come online, and auto-dismisses any blocking dialogs via fusion_dismiss_blocking_dialogs. Returns when Fusion is fully ready.

Args: dismissBlockingDialogs (optional bool (default true) - auto-clear the 'What do you want to design?' picker, error ), timeoutSeconds (optional int (default 120) - total wait for add-in + dialog dismissal)

adom-desktop fusion_start '{}'
-> { "addinReady": true, "status": "ok" }

Cloud search & files (APS)

aps_auth

Interactive Autodesk sign-in (opens the system browser, 3-legged PKCE OAuth). One-time per device; tokens cached in ~/.adom/aps_tokens.json and auto-refreshed. Requires aps_client_id to be configured.

aps_hubs

List the Autodesk hubs (teams) the signed-in account can see.

aps_projects

List projects in a hub (default: first hub).

Args: hubId (optional - default first hub (aps_hubs lists ids))

FAST indexed cloud-file search via Autodesk Platform Services (APS) Data Management API. ~Instant server-side index - NOT folder-walking. Works even when Fusion is CLOSED. Prefer this over fusion_search_cloud_files whenever APS is configured.

Args: hubId (optional - exact APS hub id (default: first hub); aps_hubs lists ids), projectId (optional - exact APS project id (overrides projectName); aps_projects lists ids), projectName (optional - substring match against your project names (default: search all projects, up to), query (required case-insensitive substring of the file's displayName)

aps_status

Is native APS cloud search available on this box? Non-prompting discovery check - call this FIRST to decide between aps_search (fast) and fusion_search_cloud_files (slow fallback).

fusion_check_recovery

Check if a cloud file has crash recovery data

Args: fileName (required), folderPath (optional), projectName (optional)

fusion_create_cloud_folder

Create folder (idempotent)

Args: folderName (required), parentPath (optional), projectName (optional)

fusion_delete_cloud_file

Delete a cloud file (must not be open)

Args: fileName (required), folderPath (optional), projectName (optional)

fusion_export_cloud_file

Export active document to local file (step/stl/f3d/iges/sat/smt)

Args: format (optional (default: step)), outputPath (required)

fusion_list_cloud_files

List files and subfolders in a cloud project/folder

Args: folderPath (optional), projectName (optional)

fusion_list_cloud_projects

List all cloud projects in user's hub

fusion_open_cloud_file

Open a cloud file by name. STOPS if recovery exists - you must specify recovery='open' or recovery='discard'

Args: fileName (required), folderPath (optional), projectName (optional), recovery (optional: open|discard)

fusion_save_to_cloud

Save active document to Fusion cloud

Args: description (optional), folderPath (optional), name (required), projectName (optional)

fusion_search_cloud_files

Search a cloud project / subfolder by file-name substring. Returns matches + a detailed scope analysis. Use this for targeted lookups; for exhaustive whole-cloud walks prefer fusion_walk_cloud_tree.

Args: folderPath (optional starting subfolder (default: project root). NARROW THE SCOPE HERE - naming the ri), folderTimeout (optional int seconds per-folder cloud-API timeout (default 30)), maxDepth (optional int (default 2, no upper cap)), maxFolders (optional int (default 10, no upper cap). For exhaustive 100+ folder searches consider walk), maxResults (optional int (default 20, no upper cap)), projectName (optional (defaults to active project)), query (required case-insensitive substring of the file name), recursive (optional bool (default false). false = root folder only (fast); true = descend into subfol), searchTimeout (optional int seconds overall wall-clock timeout (default 120). If you set this >180, also )

fusion_walk_cloud_tree

Walk a cloud folder tree iteratively (BFS) and return a flat list of folders + files with full paths.

Args: extensions (optional list of extensions to include, e.g. ["f3d","fprj"]), folderPath (optional starting folder (defaults to root)), includeFiles (optional bool (default true) - set false for folder-only tree), maxDepth (optional int (default 10)), maxFolders (optional int (default 500, truncates if exceeded)), nameContains (optional case-insensitive substring filter on file names), projectName (optional (defaults to active))


Electronics: schematic, board, library

fusion_board_info

Get structured board data: components, nets, traces, DRC violations

Prerequisite: Board open in PCB Editor

adom-desktop fusion_board_info '{}'
-> { "rawXml": "<pcb>... copper / arcs / lines geometry ...</pcb>" }

fusion_electron_run

Execute EAGLE command (WINDOW FIT, DISPLAY ALL, RATSNEST, DRC, etc.)

Args: command (required EAGLE command string)

fusion_execute_text_command

Low-level Fusion app.executeTextCommand() access

Args: command (required Fusion text command)

fusion_export_eagle_source

Export active electronics document as plain EAGLE .sch or .brd XML - extracts from Fusion's .fsch/.fbrd ZIP container

Args: outputPath (required - full path ending in .sch or .brd)

Prerequisite: MUST have correct editor active: PCB Editor / Board Layout for .brd, Schematic Editor for .sch

fusion_export_lbr

Export library as .scr script (no 3D refs)

Args: outputPath (optional)

fusion_export_source

Export active electronics document as .fsch (schematic), .fbrd (board), or .flbr (library) source file

Args: outputPath (required - full path with extension (.fsch, .fbrd, or .flbr))

Prerequisite: MUST have correct editor active: Board Layout for .fbrd, Schematic Editor for .fsch

fusion_import_electronics

Import Fusion-native .fsch/.fbrd/.flbr file as new local electronics project

Args: filePath (required Windows path to .fsch, .fbrd, or .flbr file)

fusion_list_text_commands

List available EAGLE text commands in current context

fusion_open_board

Open .brd in Board Layout editor

Args: filePath (required)

fusion_open_electronics

Check if Electronics workspace is active

fusion_open_lbr

Open .lbr library in Electronics Library editor

Args: filePath (required)

adom-desktop fusion_open_lbr '{"filePath":"C:/.../nRF52840-CKAA.lbr"}'
-> { "success": true, "postOpenScreenshot": { "savedTo": "C:/tmp/...png" } } // library opens in the Electronics library editor

fusion_open_schematic

Open .sch in Schematic Editor

Args: filePath (required)

fusion_show_2d_board

Switch back to 2D board layout from 3D view

adom-desktop fusion_show_2d_board '{}'
-> { "activeWorkspace": "Electronics Design" }

fusion_show_3d_board

Switch to 3D PCB view (board needs outline on layer 20)

Prerequisite: Board must be open in PCB Editor

adom-desktop fusion_show_3d_board '{}'
-> { "activeWorkspace": "3D PCB", "screenshots": [ { "savedTo": "C:/tmp/...png" } ] }

CAD & 3D export

fusion_export_3mf

Export active design as 3MF

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_dwg

Export active design as DWG

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_dxf

Export active design as DXF

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_f3d

Export active design as Fusion 360 archive (.f3d)

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_fbx

Export active design as FBX

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_iges

Export active design as IGES (.igs)

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_obj

Export active design as OBJ

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_sat

Export active design as SAT (.sat, ACIS solid model)

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_skp

Export active design as SKP (SketchUp)

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_step

Export active design as STEP

Args: outputPath (required)

Prerequisite: Active 3D design (not Electronics)

adom-desktop fusion_export_step '{"outputPath":"C:/tmp/board.step"}'
-> { "format": "step", "fileSizeKB": 8890 } // requires the 3D view active (fusion_show_3d_board)

fusion_export_stl

Export active design as STL

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_export_usdz

Export active design as USDZ (best for digital twins + GLB)

Args: outputPath (required)

Prerequisite: Active 3D design

fusion_get_design_info

Get active design metadata (bodies, components)

Prerequisite: Active 3D design

fusion_get_parameters

List user parameters from active design

fusion_import_step

Import STEP/STL/IGES/SAT/OBJ/F3D file into Fusion

Args: filePath (required Windows path)

fusion_set_parameter

Modify a user parameter

Args: name (required), value (required)

fusion_take_screenshot

Capture Fusion viewport as PNG with camera orientation control

Args: height (optional (default 1080)), orientation (optional: home, front, back, top, bottom, left, right), outputPath (required), width (optional (default 1920))


Manufacturing: gerbers, BOM, CPL, design rules

fusion_detect_layers

Auto-detect PCB copper layer count (2 or 4) using ULP + CAM comparison

fusion_export_board_image

Export PNG image with layer presets (top_copper, assembly_top, fabrication, etc.)

Args: dpi (optional int (default: 300, max: 600)), layers (optional int[] - custom layer numbers (overrides preset)), listPresets (optional bool - returns preset list instead of exporting), monochrome (optional bool), outputPath (optional (default: C:/tmp/adom-board.png)), preset (optional: all|top_copper|bottom_copper|top_silkscreen|bottom_silkscreen|top_soldermask|bot)

fusion_export_bom

Export Bill of Materials as CSV (grouped by value+package)

Args: grouped (optional bool (default: true) - false for one row per component), outputPath (optional (default: C:/tmp/adom-bom.csv))

adom-desktop fusion_export_bom '{"outputPath":"C:/tmp/bom.csv"}'
-> { "componentCount": 13, "grouped": true } // CSV: Comment,Designator,Footprint,Quantity,Library

fusion_export_cpl

Export Component Placement List (pick-and-place) as CSV

Args: outputPath (optional (default: C:/tmp/adom-cpl.csv)), side (optional: all (default) | top | bottom)

adom-desktop fusion_export_cpl '{"outputPath":"C:/tmp/cpl.csv"}'
-> { "topCount": 12, "bottomCount": 1 } // CSV: Designator,Mid X,Mid Y,Layer,Rotation

fusion_export_gerbers

Export Gerber RS-274X + Excellon drill files as ZIP (auto-detects layers, selects CAM job)

Args: boardName (optional (default: from active doc name)), layers (optional: auto | 2 | 4), outputDir (optional (default: C:/tmp/adom-gerbers/))

adom-desktop fusion_export_gerbers '{}'
-> { "boardName": "LEDStrip_WS2812B-BT_v12", "fileCount": 11, "files": [ {"name":"...GTL","size":24922}, {"name":"...GBL"}, ... {"name":"...XLN"}, {"name":"gerber_job.gbrjob"} ] }

fusion_set_design_rules

Apply Adom/JLCPCB design rules (.edru files) - auto-detects 2/4 layer

Args: action (optional: apply (default) | export | show), layers (optional: auto (default) | 2 | 4), outputPath (optional, for export action)

adom-desktop fusion_set_design_rules '{"action":"apply","layers":"2"}'
-> { "activeWorkspace": "PCB Editor", "description": "board thickness 1.6mm, 1oz copper, ... (JLCPCB profile)" }

UI interaction

fusion_click_fusion

Click at coordinates in Fusion window or a specific dialog

Args: hwnd (optional - target a specific dialog HWND instead of main window), relative (optional bool (default: true, 0.0-1.0)), x (required float), y (required float)

fusion_screenshot_all

Screenshot main window + list all dialog windows with HWNDs

fusion_screenshot_fusion

Capture Fusion main window or a specific dialog as PNG

Args: hwnd (optional - dialog HWND to screenshot instead of main window)

fusion_send_key

Send keyboard input to Fusion or a specific dialog

Args: hwnd (optional - target a specific dialog HWND), key (required string)

fusion_window_info

Get main window HWND, title, rect, and all Qt dialog windows


Recovery

fusion_dismiss_recovery

Dismiss recovery dialogs + relocate recovery files to ~/.adom/recovery/

fusion_relocate_recovery

Move crash recovery files to ~/.adom/recovery/fusion/ (call before launch to prevent dialogs)


68 verbs. Generated from the live Adom Desktop verb catalog; headline verbs show real captured output.