easyeda/easyeda-api-skillMIT429 files

Easyeda API

>-

Specification
Skill ID
easyeda/easyeda-api-skill/easyeda-api
Publisher
easyeda
Repository
easyeda-api-skill
Installs
0
Files
429
License
MIT
Requires
Requires Node.js 18+, EasyEDA Pro desktop client with extension support
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

easyeda/easyeda-api-skill/easyeda-apiInstalls these files
  • README.md
  • README.zh-Hans.md
  • SKILL.md
  • format/index.md
  • format/pcb/3d.md
  • format/pcb/attr.md
  • format/pcb/common.md
  • format/pcb/component.md
  • format/pcb/dimension.md
  • format/pcb/index.md
  • format/pcb/obj.md
  • format/pcb/pad_via.md
  • format/pcb/panel.md
  • format/pcb/partition.md
  • format/pcb/primitive.md
  • format/pcb/rule.md
  • format/pcb/shape.md
  • format/pcb/text.md
  • format/project/blob.md
  • format/project/common.md
  • format/project/group.md
  • format/project/index.md
  • format/project/instance.md
  • format/project/meta.md
  • format/project/variant.md
  • format/schematic/attr.md
  • format/schematic/common.md
  • format/schematic/component.md
  • format/schematic/index.md
  • format/schematic/obj.md
  • format/schematic/pin.md
  • format/schematic/shape.md
  • format/schematic/structure.md
  • format/schematic/table.md
  • format/schematic/text.md
  • format/schematic/wire.md
  • guide/ancillary-projects.md
  • guide/ancillary-projects/pro-api-sdk.md
  • guide/ancillary-projects/pro-api-types.md
  • guide/error-handling.md
  • guide/extension-json.md
  • guide/extensions-marketplace.md
  • guide/how-to-start-for-ai.md
  • guide/how-to-start.md
  • guide/i18n.md
  • guide/index.md
  • guide/inline-frame.md
  • guide/invoke-apis.md
  • guide/stability.md
  • package-lock.json
  • package.json
  • references/_index.md
  • references/_quick-reference.md
  • references/classes/DMT_Board.md
  • references/classes/DMT_EditorControl.md
  • references/classes/DMT_Event.md
  • references/classes/DMT_Folder.md
  • references/classes/DMT_Panel.md
  • references/classes/DMT_Pcb.md
  • references/classes/DMT_Project.md
  • references/classes/DMT_Schematic.md
  • references/classes/DMT_SelectControl.md
  • references/classes/DMT_Team.md
  • references/classes/DMT_Workspace.md
  • references/classes/EDA.md
  • references/classes/IPCB_ComplexPolygon.md
  • references/classes/IPCB_Polygon.md
  • references/classes/IPCB_PrimitiveArc.md
  • references/classes/IPCB_PrimitiveAttribute.md
  • references/classes/IPCB_PrimitiveComponent.md
  • references/classes/IPCB_PrimitiveComponentPad.md
  • references/classes/IPCB_PrimitiveDimension.md
  • references/classes/IPCB_PrimitiveFill.md
  • references/classes/IPCB_PrimitiveImage.md
  • references/classes/IPCB_PrimitiveLine.md
  • references/classes/IPCB_PrimitiveObject.md
  • references/classes/IPCB_PrimitivePad.md
  • references/classes/IPCB_PrimitivePolyline.md
  • references/classes/IPCB_PrimitivePour.md
  • references/classes/IPCB_PrimitivePoured.md
  • references/classes/IPCB_PrimitiveRegion.md
  • references/classes/IPCB_PrimitiveString.md
  • references/classes/IPCB_PrimitiveVia.md
  • references/classes/ISCH_PrimitiveArc.md
  • references/classes/ISCH_PrimitiveAttribute.md
  • references/classes/ISCH_PrimitiveBus.md
  • references/classes/ISCH_PrimitiveCbbSymbolComponent.md
  • references/classes/ISCH_PrimitiveCircle.md
  • references/classes/ISCH_PrimitiveComponent.md
  • references/classes/ISCH_PrimitiveComponentPin.md
  • references/classes/ISCH_PrimitiveObject.md
  • references/classes/ISCH_PrimitivePin.md
  • references/classes/ISCH_PrimitivePolygon.md
  • references/classes/ISCH_PrimitiveRectangle.md
  • references/classes/ISCH_PrimitiveText.md
  • references/classes/ISCH_PrimitiveWire.md
  • references/classes/LIB_3DModel.md
  • references/classes/LIB_Cbb.md
  • references/classes/LIB_Classification.md
  • references/classes/LIB_Device.md
  • references/classes/LIB_Footprint.md
  • references/classes/LIB_LibrariesList.md
  • references/classes/LIB_PanelLibrary.md
  • references/classes/LIB_SelectControl.md
  • references/classes/LIB_SimulationModel.md
  • references/classes/LIB_Symbol.md
  • references/classes/PCB_Document.md
  • references/classes/PCB_Drc.md
  • references/classes/PCB_Event.md
  • references/classes/PCB_Layer.md
  • references/classes/PCB_ManufactureData.md
  • references/classes/PCB_MathPolygon.md
  • references/classes/PCB_Net.md
  • references/classes/PCB_Primitive.md
  • references/classes/PCB_PrimitiveArc.md
  • references/classes/PCB_PrimitiveAttribute.md
  • references/classes/PCB_PrimitiveComponent.md
  • references/classes/PCB_PrimitiveDimension.md
  • references/classes/PCB_PrimitiveFill.md
  • references/classes/PCB_PrimitiveImage.md
  • references/classes/PCB_PrimitiveLine.md
  • references/classes/PCB_PrimitiveObject.md
  • references/classes/PCB_PrimitivePad.md
  • references/classes/PCB_PrimitivePolyline.md
  • references/classes/PCB_PrimitivePour.md
  • references/classes/PCB_PrimitivePoured.md
  • references/classes/PCB_PrimitiveRegion.md
  • references/classes/PCB_PrimitiveString.md
  • references/classes/PCB_PrimitiveVia.md
  • references/classes/PCB_RayTracerEngine.md
  • references/classes/PCB_SelectControl.md
  • references/classes/PNL_Document.md
  • references/classes/SCH_Document.md
  • references/classes/SCH_Drc.md
  • references/classes/SCH_Event.md
  • references/classes/SCH_ManufactureData.md
  • references/classes/SCH_Net.md
  • references/classes/SCH_Netlist.md
  • references/classes/SCH_Primitive.md
  • references/classes/SCH_PrimitiveArc.md
  • references/classes/SCH_PrimitiveAttribute.md
  • references/classes/SCH_PrimitiveBus.md
  • references/classes/SCH_PrimitiveCircle.md
  • references/classes/SCH_PrimitiveComponent.md
  • references/classes/SCH_PrimitiveObject.md
  • references/classes/SCH_PrimitivePin.md
  • references/classes/SCH_PrimitivePolygon.md
  • references/classes/SCH_PrimitiveRectangle.md
  • references/classes/SCH_PrimitiveText.md
  • references/classes/SCH_PrimitiveWire.md
  • references/classes/SCH_SelectControl.md
  • references/classes/SCH_SimulationEngine.md
  • references/classes/SCH_Utils.md
  • references/classes/SYS_ClientUrl.md
  • references/classes/SYS_Dialog.md
  • references/classes/SYS_Environment.md
  • references/classes/SYS_FileManager.md
  • references/classes/SYS_FileSystem.md
  • references/classes/SYS_FontManager.md
  • references/classes/SYS_FormatConversion.md
  • references/classes/SYS_HeaderMenu.md
  • references/classes/SYS_I18n.md
  • references/classes/SYS_IFrame.md
  • references/classes/SYS_LoadingAndProgressBar.md
  • references/classes/SYS_Log.md
  • references/classes/SYS_Math.md
  • references/classes/SYS_Message.md
  • references/classes/SYS_MessageBox.md
  • references/classes/SYS_MessageBus.md
  • references/classes/SYS_PanelControl.md
  • references/classes/SYS_RightClickMenu.md
  • references/classes/SYS_Setting.md
  • references/classes/SYS_ShortcutKey.md
  • references/classes/SYS_Storage.md
  • references/classes/SYS_Timer.md
  • references/classes/SYS_ToastMessage.md
  • references/classes/SYS_Tool.md
  • references/classes/SYS_Unit.md
  • references/classes/SYS_WebSocket.md
  • references/classes/SYS_Window.md
  • references/enums/EDMT_EditorDocumentType.md
  • references/enums/EDMT_EditorSplitScreenDirection.md
  • references/enums/EDMT_EditorTabEventType.md
  • references/enums/EDMT_IndicatorMarkerType.md
  • references/enums/EDMT_ItemType.md
  • references/enums/EDMT_ProjectCollaborationMode.md
  • references/enums/ELIB_DeviceJlcLibraryCategory.md
  • references/enums/ELIB_LibraryType.md
  • references/enums/ELIB_PreviewType.md
  • references/enums/ELIB_SimulationModelType.md
  • references/enums/ELIB_SymbolType.md
  • references/enums/EPCB_AutoRoutingCornerStyle.md
  • references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md
  • references/enums/EPCB_AutoRoutingOptimization.md
  • references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md
  • references/enums/EPCB_InactiveLayerDisplayMode.md
  • references/enums/EPCB_LayerColorConfiguration.md
  • references/enums/EPCB_LayerId.md
  • references/enums/EPCB_LayerStatus.md
  • references/enums/EPCB_LayerType.md
  • references/enums/EPCB_MouseEventType.md
  • references/enums/EPCB_NetEventType.md
  • references/enums/EPCB_PcbPlateType.md
  • references/enums/EPCB_PdfOutputMethod.md
  • references/enums/EPCB_PrimitiveArcInteractiveMode.md
  • references/enums/EPCB_PrimitiveDimensionType.md
  • references/enums/EPCB_PrimitiveEventType.md
  • references/enums/EPCB_PrimitiveFillMode.md
  • references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md
  • references/enums/EPCB_PrimitivePadHoleType.md
  • references/enums/EPCB_PrimitivePadShapeType.md
  • references/enums/EPCB_PrimitivePadType.md
  • references/enums/EPCB_PrimitivePourFillMethod.md
  • references/enums/EPCB_PrimitiveRegionRuleType.md
  • references/enums/EPCB_PrimitiveStringAlignMode.md
  • references/enums/EPCB_PrimitiveType.md
  • references/enums/EPCB_PrimitiveViaType.md
  • references/enums/ESCH_DynamicSimulationEnginePullEventType.md
  • references/enums/ESCH_DynamicSimulationEnginePushEventType.md
  • references/enums/ESCH_ExportDocumentFileType.md
  • references/enums/ESCH_MouseEventType.md
  • references/enums/ESCH_PrimitiveComponentType.md
  • references/enums/ESCH_PrimitiveEventType.md
  • references/enums/ESCH_PrimitiveFillStyle.md
  • references/enums/ESCH_PrimitiveLineType.md
  • references/enums/ESCH_PrimitivePinShape.md
  • references/enums/ESCH_PrimitivePinType.md
  • references/enums/ESCH_PrimitiveTextAlignMode.md
  • references/enums/ESCH_PrimitiveType.md
  • references/enums/ESCH_SimulationNetlistType.md
  • references/enums/ESCH_SpiceSimulationEnginePullEventType.md
  • references/enums/ESCH_SpiceSimulationEnginePushEventType.md
  • references/enums/ESYS_BottomPanelTab.md
  • references/enums/ESYS_HeaderMenuEnvironment.md
  • references/enums/ESYS_ImportProjectBoardOutlineSource.md
  • references/enums/ESYS_ImportProjectImportOption.md
  • references/enums/ESYS_ImportProjectSchematicObjectStyle.md
  • references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md
  • references/enums/ESYS_LeftPanelTab.md
  • references/enums/ESYS_LogType.md
  • references/enums/ESYS_NetlistType.md
  • references/enums/ESYS_RightPanelTab.md
  • references/enums/ESYS_ShortcutKeyEffectiveEditorDocumentType.md
  • references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md
  • references/enums/ESYS_StartPageQuickStartItem.md
  • references/enums/ESYS_Theme.md
  • references/enums/ESYS_ToastMessageType.md
  • references/enums/ESYS_Unit.md
  • references/enums/ESYS_WindowEventType.md
  • references/enums/ESYS_WindowOpenTarget.md
  • references/enums/NetportDeviceName.md
  • references/enums/SchToolBarDeviceName.md
  • references/interfaces/BoardProps.md
  • references/interfaces/BorderConfig.md
  • references/interfaces/ButtonProps.md
  • references/interfaces/CellClickInfo.md
  • references/interfaces/CellCoord.md
  • references/interfaces/CheckBoxProps.md
  • references/interfaces/CheckChangeDetail.md
  • references/interfaces/CheckboxEditConfig.md
  • references/interfaces/ClipboardCellData.md
  • references/interfaces/ClipboardConfig.md
  • references/interfaces/ColorPickerProps.md
  • references/interfaces/ColumnDef.md
  • references/interfaces/ColumnEditTrigger.md
  • references/interfaces/ColumnGroupDef.md
  • references/interfaces/ColumnResizeConfig.md
  • references/interfaces/ComponentPropsMap.md
  • references/interfaces/CustomHeaderConfig.md
  • references/interfaces/DialogProps.md
  • references/interfaces/DragSortConfig.md
  • references/interfaces/EditingConfig.md
  • references/interfaces/FilteringConfig.md
  • references/interfaces/FixedColumnConfig.md
  • references/interfaces/FlexItemProps.md
  • references/interfaces/FlexProps.md
  • references/interfaces/GridItemProps.md
  • references/interfaces/GridProps.md
  • references/interfaces/IDMT_BoardItem.md
  • references/interfaces/IDMT_BriefProjectItem.md
  • references/interfaces/IDMT_EditorDocumentItem.md
  • references/interfaces/IDMT_EditorSplitScreenItem.md
  • references/interfaces/IDMT_EditorTabItem.md
  • references/interfaces/IDMT_FolderItem.md
  • references/interfaces/IDMT_IndicatorMarkerShape.md
  • references/interfaces/IDMT_PanelItem.md
  • references/interfaces/IDMT_PcbItem.md
  • references/interfaces/IDMT_ProjectItem.md
  • references/interfaces/IDMT_SchematicItem.md
  • references/interfaces/IDMT_SchematicPageItem.md
  • references/interfaces/IDMT_TeamItem.md
  • references/interfaces/IDMT_WorkspaceItem.md
  • references/interfaces/IDesignPortal.md
  • references/interfaces/ILIB_3DModelItem.md
  • references/interfaces/ILIB_3DModelSearchItem.md
  • references/interfaces/ILIB_CbbItem.md
  • references/interfaces/ILIB_CbbSearchItem.md
  • references/interfaces/ILIB_ClassificationIndex.md
  • references/interfaces/ILIB_DeviceAssociationItem.md
  • references/interfaces/ILIB_DeviceExtendPropertyItem.md
  • references/interfaces/ILIB_DeviceItem.md
  • references/interfaces/ILIB_DevicePropertiesForSearch.md
  • references/interfaces/ILIB_DeviceSearchItem.md
  • references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md
  • references/interfaces/ILIB_ExtendLibraryCbbFunctions.md
  • references/interfaces/ILIB_ExtendLibraryClassificationIndex.md
  • references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md
  • references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md
  • references/interfaces/ILIB_ExtendLibraryFunctions.md
  • references/interfaces/ILIB_ExtendLibraryItem.md
  • references/interfaces/ILIB_ExtendLibraryItemIndex.md
  • references/interfaces/ILIB_ExtendLibrarySearchProperty.md
  • references/interfaces/ILIB_ExtendLibrarySearchResult.md
  • references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md
  • references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md
  • references/interfaces/ILIB_ExtendLibraryUserIndex.md
  • references/interfaces/ILIB_FootprintItem.md
  • references/interfaces/ILIB_FootprintPropertiesForSearch.md
  • references/interfaces/ILIB_FootprintSearchItem.md
  • references/interfaces/ILIB_LibraryInfo.md
  • references/interfaces/ILIB_LibraryItem.md
  • references/interfaces/ILIB_PanelLibraryItem.md
  • references/interfaces/ILIB_PanelLibrarySearchItem.md
  • references/interfaces/ILIB_SimulationModelItem.md
  • references/interfaces/ILIB_SimulationModelSearchItem.md
  • references/interfaces/ILIB_SymbolItem.md
  • references/interfaces/ILIB_SymbolPropertiesForSearch.md
  • references/interfaces/ILIB_SymbolSearchItem.md
  • references/interfaces/IPCB_AutoLayoutResult.md
  • references/interfaces/IPCB_AutoRoutingProps.md
  • references/interfaces/IPCB_AutoRoutingResult.md
  • references/interfaces/IPCB_BomPropertiesTableColumns.md
  • references/interfaces/IPCB_DifferentialPairItem.md
  • references/interfaces/IPCB_DiscretizeOptions.md
  • references/interfaces/IPCB_DiscretizedPoint.md
  • references/interfaces/IPCB_EqualLengthNetGroupItem.md
  • references/interfaces/IPCB_LayerItem.md
  • references/interfaces/IPCB_NetClassItem.md
  • references/interfaces/IPCB_NetInfo.md
  • references/interfaces/IPCB_PadPairGroupItem.md
  • references/interfaces/IPCB_PadPairMinWireLengthItem.md
  • references/interfaces/IPCB_Primitive.md
  • references/interfaces/IPCB_PrimitiveAPI.md
  • references/interfaces/IPCB_PrimitivePadHeatWelding.md
  • references/interfaces/IPCB_PrimitivePouredPourFill.md
  • references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md
  • references/interfaces/ISCH_ExportPngResolution.md
  • references/interfaces/ISCH_NetInfo.md
  • references/interfaces/ISCH_Primitive.md
  • references/interfaces/ISCH_PrimitiveAPI.md
  • references/interfaces/ISCH_ProjectNetInfo.md
  • references/interfaces/ISCH_WireInfo.md
  • references/interfaces/ISYS_FileSystemFileList.md
  • references/interfaces/ISYS_HeaderMenuSub1MenuItem.md
  • references/interfaces/ISYS_HeaderMenuSub2MenuItem.md
  • references/interfaces/ISYS_HeaderMenuTopMenuItem.md
  • references/interfaces/ISYS_HeaderMenus.md
  • references/interfaces/ISYS_LanguageKeyValuePairs.md
  • references/interfaces/ISYS_LogLine.md
  • references/interfaces/ISYS_MathBBox.md
  • references/interfaces/ISYS_MathPoint.md
  • references/interfaces/ISYS_MathPolygonWithHoles.md
  • references/interfaces/ISYS_MessageBusTask.md
  • references/interfaces/ISYS_MultilingualLanguagesData.md
  • references/interfaces/ISYS_RightClickMenuItem.md
  • references/interfaces/ISYS_WindowEventListenerRemovableObject.md
  • references/interfaces/IconProps.md
  • references/interfaces/ImageProps.md
  • references/interfaces/InputEditConfig.md
  • references/interfaces/InputProps.md
  • references/interfaces/KeyboardConfig.md
  • references/interfaces/ListChildren.md
  • references/interfaces/ListProps.md
  • references/interfaces/ModalProps.md
  • references/interfaces/NumberEditConfig.md
  • references/interfaces/RadioGroupProps.md
  • references/interfaces/RadioItem.md
  • references/interfaces/RichTableProps.md
  • references/interfaces/RowMetaConfig.md
  • references/interfaces/ScrollerProps.md
  • references/interfaces/SelectEditConfig.md
  • references/interfaces/SelectListItem.md
  • references/interfaces/SelectOption.md
  • references/interfaces/SelectProps.md
  • references/interfaces/SelectionConfig.md
  • references/interfaces/SliderProps.md
  • references/interfaces/SlotProps.md
  • references/interfaces/SortState.md
  • references/interfaces/SortingConfig.md
  • references/interfaces/StyleProps.md
  • references/interfaces/TextAreaProps.md
  • references/interfaces/TextProps.md
  • references/interfaces/TextareaEditConfig.md
  • references/interfaces/ValidationRule.md
  • references/interfaces/VirtualScrollConfig.md
  • references/types/Align.md
  • references/types/CellContentType.md
  • references/types/ColumnDefOrGroup.md
  • references/types/ColumnEditConfig.md
  • references/types/ColumnType.md
  • references/types/DataChangeType.md
  • references/types/FilterMatchMode.md
  • references/types/RichTableRow.md
  • references/types/Serializable.md
  • references/types/SerializablePrimitive.md
  • references/types/SortOrder.md
  • references/types/TPCB_LayerTypesOfInnerLayer.md
  • references/types/TPCB_LayersInTheSelectable.md
  • references/types/TPCB_LayersOfComponent.md
  • references/types/TPCB_LayersOfCopper.md
  • references/types/TPCB_LayersOfCustom.md
  • references/types/TPCB_LayersOfDimension.md
  • references/types/TPCB_LayersOfFill.md
  • references/types/TPCB_LayersOfImage.md
  • references/types/TPCB_LayersOfInner.md
  • references/types/TPCB_LayersOfLine.md
  • references/types/TPCB_LayersOfObject.md
  • references/types/TPCB_LayersOfPad.md
  • references/types/TPCB_LayersOfRegion.md
  • references/types/TPCB_PolygonSourceArray.md
  • references/types/TPCB_PrimitiveDimensionCoordinateSet.md
  • references/types/TPCB_PrimitivePadHole.md
  • references/types/TPCB_PrimitivePadShape.md
  • references/types/TPCB_PrimitiveSpecialPadShape.md
  • references/types/TSYS_MathPolygonGroup.md
  • references/types/TSYS_MathPolygonInput.md
  • references/types/TSYS_ShortcutKeys.md
  • scripts/bridge-server.mjs
  • user-guide/using-extension.md

What this skill tells the agent

EasyEDA Pro API Skill

Control EasyEDA Pro (嘉立创EDA专业版) programmatically through AI. This skill provides:

  1. Complete API reference — 120 classes, 62 enums, 70 interfaces, 19 type aliases
  2. WebSocket bridge — Execute code in the running EasyEDA Pro client
  3. Code patterns — Common operations for PCB, schematic, library, and project management
  4. Document source format reference — File format specifications for project, schematic, and PCB sources when users need to analyze or modify EasyEDA document source directly instead of using the API

This skill supports not only live debugging in EasyEDA, but also EasyEDA extension development. During EasyEDA extension development, AI agents can use the extension-related documentation, API references, type information, usage examples, and bridge-based debugging capabilities provided by this skill to look up APIs, write code, and validate behavior during integration and debugging.

Architecture

┌───────────┐   HTTP/WS     ┌─────────────────┐   WebSocket   ┌───────────┐
│ AI Agent  │ ◄───────────► │  Bridge Server  │ ◄───────────► │  EasyEDA  │
│           │  Port Range   │  (Node.js)      │  Port Range   │  (Client) │
└───────────┘  49620-49629  └─────────────────┘  49620-49629  └───────────┘

The server auto-selects an available port from 49620-49629 on startup. Both AI and EDA clients auto-discover the server by scanning the port range and verifying a handshake (service: "easyeda-bridge").

Quick Start

1. Command Triggers

When user says "嘉立创EDA,启动!", "立创EDA,启动!", or "EDA,启动!":

IMPORTANT: Session initialization — Reply immediately with this exact text to set the correct session title:

📋 EasyEDA Session

Then proceed with the setup steps below.

2. Install dependencies (if needed)

cd ${CLAUDE_SKILL_DIR} && npm install

3. Start bridge server

⚠️ IMPORTANT: The bridge server must run in the background. Do NOT run it in the foreground, or the AI will block waiting for the server to exit.
# Check if bridge is already running
for port in $(seq 49620 49629); do
  resp=$(curl -s http://localhost:$port/health 2>/dev/null)
  if echo "$resp" | grep -q '"easyeda-bridge"'; then
    echo "Bridge already running on port $port"
    BRIDGE_PORT=$port
    break
  fi
done

# Start bridge if not running
if [ -z "$BRIDGE_PORT" ]; then
  node ${CLAUDE_SKILL_DIR}/scripts/bridge-server.mjs &
  sleep 2
  # Find the port bridge is running on
  for port in $(seq 49620 49629); do
    resp=$(curl -s http://localhost:$port/health 2>/dev/null)
    if echo "$resp" | grep -q '"easyeda-bridge"'; then
      BRIDGE_PORT=$port
      break
    fi
  done
fi

echo "Bridge running on port: ${BRIDGE_PORT:-unknown}"

4. Connect EasyEDA

Install the run-api-gateway.eext extension in EasyEDA Pro. Download link:

  • https://jlc-ext.com/item/oshwhub/run-api-gateway

After the extension is loaded, it will automatically establish the WebSocket connection.

5. Verify connection and select EDA window

# Check bridge and EDA connection status
curl http://localhost:${BRIDGE_PORT:-49620}/health

# List all connected EDA windows
curl http://localhost:${BRIDGE_PORT:-49620}/eda-windows

The /eda-windows response looks like:

{
  "windows": [
    { "windowId": "abc-123", "connected": true, "active": true },
    { "windowId": "def-456", "connected": true, "active": false }
  ],
  "activeWindowId": "abc-123",
  "count": 2
}

Handle based on window count:

  • 0 windows: Tell user "No EasyEDA window is connected. Please ensure the EasyEDA extension (run-api-gateway.eext) is installed and loaded in EasyEDA. Download: https://jlc-ext.com/item/oshwhub/run-api-gateway"
  • 1 window: Auto-selected as active. Tell user: "✅ Connected! Active EDA window: abc-123. Ready to work."
  • 2+ windows: Show the available windows and ask user to select: ``` Multiple EDA windows detected:
  • abc-123 (active)
  • def-456

Which EDA window should I use?


**Select a window**:

curl -X POST http://localhost:${BRIDGE_PORT}/eda-windows/select \ -H "Content-Type: application/json" \ -d '{"windowId": "abc-123"}'


After selection, confirm: "✅ Active EDA window: abc-123. Ready to work."

### 6. Execute code on EDA

curl -X POST http://localhost:${BRIDGE_PORT:-49620}/execute \ -H "Content-Type: application/json" \ -d '{"code": "return await eda.dmt_Project.getCurrentProjectInfo();"}'


## API Documentation

The full API reference is in the [references/](references/) directory:

- [references/_index.md](references/_index.md) — Master index of all classes, enums, interfaces, and types
- [references/_quick-reference.md](references/_quick-reference.md) — All method signatures for rapid lookup
- `references/classes/` — 120 class docs (DMT_*, PCB_*, SCH_*, LIB_*, SYS_*, IPCB_*, ISCH_*)
- `references/enums/` — 62 enum docs
- `references/interfaces/` — 70 interface docs
- `references/types/` — 19 type alias docs

### How to look up API

1. **Start with `_index.md`** to find the right class/module for the task
2. **Read the class doc** (e.g., `references/classes/DMT_Board.md`) for all methods and signatures
3. **Use `_quick-reference.md`** for fast method signature lookup across all classes
4. **Check enums/interfaces** for parameter types and return types

### Document Source Format Documentation

If the user needs to analyze or modify EasyEDA document source directly instead of using the API, use the documents in the [format/](format/) directory.

- [format/index.md](format/index.md) — Overview of the EasyEDA document source format references and version notes
- `format/project/` — Project source structure, metadata, blobs, variants, and grouping data
- `format/schematic/` — Schematic source format, including structure, wires, shapes, pins, components, and tables
- `format/pcb/` — PCB source format, including primitives, pads and vias, shapes, text, attributes, rules, and panel data

Use these files when the task is about understanding source layout, generating compatible document source, or editing source data that will later be imported back into EasyEDA.

### API Module Overview

| Prefix | Domain | Key Classes |
|--------|--------|-------------|
| `DMT_` | Document management | Board, EditorControl, Folder, Panel, Pcb, Project, Schematic, SelectControl, Team, Workspace |
| `PCB_` | PCB & Footprint | Document, Drc, Event, Layer, Net, Primitive, PrimitiveComponent, PrimitiveLine, PrimitivePad, PrimitivePour, PrimitiveVia, SelectControl |
| `SCH_` | Schematic | Document, Event, Primitive, PrimitiveComponent, PrimitiveWire, SelectControl |
| `LIB_` | Library | 3DModel, Cbb, Classification, Device, Footprint, LibrariesList, PanelLibrary, SelectControl, Symbol |
| `SYS_` | System | Dialog, Environment, FileManager, FileSystem, FontManager, HeaderMenu, I18n, IFrame, LoadingAndProgressBar, Log, Message, MessageBox, MessageBus, PanelControl, Setting, ShortcutKey, Storage, Timer, ToastMessage, WebSocket, Window |
| `IPCB_` | PCB interfaces (图元) | PrimitiveArc, PrimitiveComponent, PrimitivePad, PrimitiveFill, PrimitivePour, PrimitiveRegion, PrimitiveVia, ... |
| `ISCH_` | Schematic interfaces (图元) | PrimitiveArc, PrimitiveComponent, PrimitiveWire, PrimitiveText, PrimitiveRectangle, ... |
| `EPCB_` / `ESCH_` | Enums | PrimitiveType, Layer, PadType, ... |

## Code Execution Context

All code runs inside EasyEDA Pro's browser runtime as:

async function(eda) { // Your code here — eda is the global EDA API object // You MUST use return to send results back // Do not add comments to the generated code, as the code is typically executed as a single line }


**Critical rules:**
- The `eda` object provides access to all API modules (e.g., `eda.dmt_Board`, `eda.pcb_Primitive`).
- Always refer to the API documentation for correct usage.

Use this skill in a project

Open any RiverX project, search the Skills panel for easyeda/easyeda-api-skill/easyeda-api, and install it in one click.

Use this skill