Skip to content

Releases: zhoushoujianwork/easyeda-agent

easyeda-agent v0.17.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 21 Jul 04:21

[0.17.0] - 2026-07-21

Added — PCB SVG 丝印导入 (issue #139)

  • pcb.silk.import_svg / pcb silk-import-svg:把 SVG(LOGO / 品牌标 / 图形)作为填充
    丝印图元导入(eda.pcb_PrimitiveImage.create)——无需 debug.exec_js 的 typed 路径。新增
    Go 侧 SVG 解析器 internal/pcb/svgimport:解析 path(M/L/H/V/C/S/Q/T/A/Z)、polygon/
    polyline/rect/circle/ellipse/line、嵌套 transform、viewBox,曲线全部扁平化为线段,
    输出 EDA 复杂多边形命令数组(轮廓 + even-odd 挖孔,LOGO 的孔洞如 "o" 中空自动镂空)。
    Flag:--file/--svg--x/--y(或 --at)=图形左上角、--width/--height/--keep-aspect
    --layer(3 顶 / 4 底自动镜像)、--rotation/--mirror,以及 --dry-run(CLI 侧,打印目标
    bbox / 轮廓数 / 顶点数 / 最小特征 + 低于 --min-line-width≈6mil 的 DFM 告警)。ceshi 真机验证:
    顶/底丝印可建、孔洞镂空、旋转+镜像生效、扛过 doc reload + pcb save(同 primitiveId/bbox)、
    pcb check 干净。关键判据:pcb_PrimitiveImage 直接吃丝印层的复杂多边形,填充 LOGO 无需描边化
    或光栅化(推翻初始范围风险)。填充规则为 even-odd,纯描边图形按填充处理。星火计划 LOGO 品牌素材
    示例待授权确认(下载链接 + SHA-256,不再分发)。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.16.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 20 Jul 10:13

[0.16.0] - 2026-07-20

Added — 原理图放置方法论(一套自己的摆放方法)

  • schematic_layout 模板:电路块 JSON 新增 schematic_layout(role → {dx,dy,rotation}
    相对坐标模板,y-UP、5 格对齐、须覆盖全部 role,schema + go test 双校验)。sch block-apply
    优先按模板落件(去耦贴电源脚一字排开/上拉靠引脚/晶振·FLASH 分列,信号流左入右出,人审一次
    终身复用),无模板才退回网格;原点自动避碰(不显式 --at 时按已有器件真实 bbox 螺旋找空位)、
    落后回读真实 bbox 把 overlap 写进 manifest。esp32s3r8_chip_minsys / led_indicator_gpio 首批带模板。
  • sch zones 功能分区认领 + layout-lint zone-violation:S0 spec 的 modules[].zone 持久化,
    sch layout-lint 新增"认领件落在分区矩形外"的 WARN(与 PCB zones 独立)。
  • sch zone-draw 分区框可视化:把认领画成虚线区域框 + 区名文本(eda.sch_PrimitiveRectangle/Text),
    与 zone-violation 同一几何,所见即所校验;--clear 精确移除,不碰用户图形。
  • sch align / sch distribute:按真实渲染 bbox 对齐(left/right/top/bottom/centerx/centery)/
    等距摊开,默认 dry-run、--apply 落地自检;补齐 design-flow S6 一直引用却不存在的命令。
  • sch autolayout --engine official 官方 autoLayout 兜底引擎:包装平台 eda.sch_Document.autoLayout()
    (@beta,3.2.148 起可用)。它对已连线页是破坏性的(移件不移线 → 断线、落 off-grid),故加安全管线:
    已连线守卫(无 --rewire 拒绝)、跑后吸附 5 格--rewire(跑前捕获网表 → autoLayout → 吸附 →
    删断线 → 重连)、自检用 sch check(查断线)不止 layout-lint(查重叠)。定位:模板未命中页的兜底起点。

Added — 机制

  • --doc <uuid|name> 全局 flag:根治 doc-switch racing。所有命令默认对"当前前台文档"操作而
    doc switch 异步,长命令(autoLayout ~2min)/跨命令时前台漂移会把编辑落到错误的页。--doc
    postAction 咽喉点加守卫:变更动作(catalog Mutates)落地前 ensureActiveDoc 切目标页并用实时
    document.current
    确认(不看缓存 /health),确认不了拒绝而非编辑错页;导航动作豁免防递归。
    真机验证:前台停 P2 时 block-apply --doc P1 稳稳落 P1、P2 不动。多页/长操作一律带 --doc

Fixed

  • 原理图坐标系 y-UP 定音:双探针文本实测 3.2.148 画布为 y-UP(y 大=视觉上方),修正 zoneRect
    的 top/bottom 映射(此前按 y-DOWN 写反,autolayout/zone-violation/zone-draw 上下翻转)、标题栏
    keep-out 锚点(此前保护右上角,实际标题栏在右下)、sch align --mode top/bottom 语义。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.14.1

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 19 Jul 08:00

[0.14.1] - 2026-07-19

Fixed

  • schematic.pin.set_no_connect 真正生成非连接 X 标识(订正 0.5.14 的平台 no-op 误诊):
    真机复现确认 setState_NoConnected(...) 只修改当前 pin 句柄的待提交状态,必须再
    await pin.done() 才会写回画布;此前 handler 漏掉 done(),fresh readback 因而恢复
    false,被误判成 EasyEDA Pro 3.2.x 平台限制。现在改走
    sch_PrimitiveComponent.get(id) → component.getAllPins(),逐脚 setter + done(),再用
    新器件实例回读验证。Pro 3.2.149 真机已确认绿色 X 出现、noConnected:true,且
    sch check 的 floating-pin 计数同步减少;--clear 同路径持久化清除。
    (#133 Bug 3 / #134, 感谢 @zhiqiangme 贡献)
  • skill 脚本 Windows 中文环境 GBK 解码崩溃(#133 Bug 4):bulk-connect /
    bulk-place / sch / diff 四脚本的 subprocess.run 显式 encoding='utf-8', errors='replace'——CLI 输出恒为 UTF-8,此前 text=True 在 Windows 中文环境
    按系统 GBK 解码,器件描述含中文时 UnicodeDecodeError 崩溃。
  • 文档:environment-setup.md 新增 PowerShell 5.1 吞 JSON 参数双引号的说明
    与绕行(--% / 反引号转义 / CSV 形式 / PowerShell 7+)(#133 Bug 5)。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.14.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 17 Jul 16:44

[0.14.0] - 2026-07-18

「真机可信化」版:一天内 16 个 issue 闭环的集中发布。三大主题:
via/导入可信化——EPAD 内嵌热过孔的删除欺骗与赋网易失被彻底摸清(删不掉:
假成功+立即 getAll 也骗+reload 原 id 复活;赋网只活到 reload),pcb.route.delete
前置拒删、pcb.add_component 放置即键合、CLI 新增 pcb via-bond 幂等重键合 +
pcb check netless-via-in-pad 触发器;import-changes 十七天误诊破案——它从来
不是 no-op,是「确认导入信息」对话框没人点,现在 handler 自动点「应用修改」,
clear→reimport 往返打通。② 布线器硬否决——异网走线/slot 从代价升级为
hopFeasible 硬门(R2 两条真交叉短路的根治),mount-holes 反查既有铜皮。
门禁与工具诚实化——power-not-poured 对 GND 内电层死锁解除(PlanePouredNets
状态互通)、--force 分级放行(零确认机械骨架要 --force-unsafe)、pcb clear
默认 verify 复合流程、高 pin 连接器不再抢 main、陶瓷贴片天线 keepout、
根级 easyeda health 别名。

Fixed

  • pcb.import_changes 假 no-op 根因修复(#124,订正 #20 诊断):importChanges 一直
    都能正确算出变更清单——它弹「确认导入信息」对话框等人点「应用修改」,API 返回 true 只
    代表对话框弹出;headless 没人点,看起来就是静默 no-op(「不支持增量导入」是误诊)。
    真机实证:点击后 20 件全部落板。handler 现在自动等待对话框并点「应用修改」
    (confirm:false 保留人工审查),且 importChanges 的 promise 不再串行 await
    (实测某些状态下永不 resolve,会卡死连接器整个动作队列)——改为并发点击 + 12s 超时
    兜底,以器件计数差(componentsBefore/After)为落板真值。
  • pcb.route.delete 假报成功修复(#120,真机订正):SDK 的 delete()封装内嵌
    via
    (QFN EPAD 热过孔是 component 的一部分)返回 true立即 getAll 也显示已删,
    但 save/reload 后从封装定义原 id 复活(ceshi 真机实证)——纯 readback 会被骗。handler
    现在前置结构判定:via id 以某器件 primitiveId 为前缀 = 内嵌,直接拒删进
    notDeletable[](附父器件 + 指引 pcb via-bond),ok:false;其余照常删除并
    readback 兜底(removed/count 只统计真正消失的,不可归因的幸存者进 notDeleted)。
  • pcb.add_component 内嵌 via 赋网(#118):封装内嵌的 EPAD 热过孔 net="",
    EPAD 永远焊不上 GND 平面且每颗报一条 same-footprint SMD Pad to Via。现在赋完
    pad 网后,枚举落在本器件已赋网 pad 铜皮矩形内的无网 via,用
    pcb_PrimitiveVia.modify(@beta)赋成该 pad 的网,并 readback 验证(#120 教训:
    SDK 布尔不可信);结果新增 embeddedVias {assigned, verified, failed}
    ⚠️ 真机实证:该赋网不能活过 doc reload(平台每次都把内嵌 via 重物化为无网)——
    CLI 侧配套 pcb via-bond(exec_js 路线,旧连接器即可用)负责 reload 后重键合,
    pcb check 新规则 netless-via-in-pad 是触发器。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.13.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 15 Jul 18:04

[0.13.0] - 2026-07-16

「规范进代码」版:PCB 设计规范从「文档等 AI 自觉去读」变成机器强制——26 条
pcb check 规则的报错自带 [规范 §N] 章节引用、布完线必须过 post_route_checked
门才能进交付、电源线宽按公制阶梯自动给宽。配套补齐芯片级(ESP32-S3 裸片)选型与电路块,
并新增 pcb clear / pcb mount-holes 两条命令。

Added

  • pcb.page.clear — 一键整版清空 PCB(easyeda pcb clear),schematic.page.clear
    的 PCB 对称版。一次删掉所有板级内容:器件 + 布线(轨/弧/过孔)+ 铺铜/填充 + keep-out/规则区域
    • 自由丝印(丝印层 3/4 的字符串及线/弧图形,不误删铜层文字或机械/装配图元)。
      pcb.component.delete 只删器件、布线/铺铜会静默残留;这个才是真正的清板重来。
      默认保留锁定图元 + 板框(layer 11);--only components,routing,copper,regions,silk 收窄、
      --no-preserve-outline 连板框删、--include-locked 连锁定件删。--dry-run 只统计不删。
      复用 rip_up 的 copper-only 规则,布线永不误伤丝印/板框。无 undo,确认门控。
      内部枚举→删除→再枚举循环到 0(上限 5 轮,返回 rounds)——首轮枚举可能读到 stale
      引擎态漏项(实测 153 轨清完仍剩 8),循环补清等价于用户手工再跑一遍;dry-run 不循环;
      撞轮次上限仍有残留则追加 warning 提示 save+reload 再跑,绝不假报干净(#112)。
  • easyeda pcb mount-holes — 四角 M3 安装孔自动放置(#102):读板框 bbox 四角内缩放孔
    (--dia 默认 126mil=Ø3.2mm / --inset 197mil≈5mm / --corners tl,tr,bl,br 子集 /
    --dry-run)。孔形态 = layer-12 多边形 fill(与 pcb slot 同原语,零新增 action);
    keep-out = max(孔半径+40, 垫圈118mil),圆-矩形相交逐角查器件 bbox,冲突警告+跳过,
    绝不压件
    ;已有孔报 exists(幂等重跑)。
  • post_route_checked 阶段门 —— 「布完必查」机械化(#97 续):workflow advance
    布线后自动跑 pcb check,ERROR + power-not-poured + width-under-spec 三项清零才放行
    丝印/交付;其余 WARN 报告不拦。13 个布线类 action 标 InvalidatesStage → 改线后门
    自动重新关上。拒门时逐条打印 blocking finding(自带 [规范 §N] 引用)。
  • easyeda pcb modify --center(#105):--x/--y 解释为期望的 bbox 中心而非器件
    锚点(锚点常偏中心,实测 ESP32 模组偏 135mil,旋转件更甚);pcb list --include-bbox
    输出注入 center 字段。默认语义不变。
  • pcb fill create --at x,y --size w,h 别名(#109):消除 --rect = 两角点的歧义。
  • audit 客户端归因 + 并发写 advisory(#108):Request 带 clientId
    (<hostname>:<pid>[:EASYEDA_CLIENT_LABEL]),audit JSONL 每行可归因;不同会话 10 分钟内
    写同一板 → 响应附 concurrentWriter 警告(不阻断,CLI 打 stderr)。
  • staleRisk advisory —— 铁律 5 机械化:PCB mutation 后未 doc reload 就读/DRC →
    daemon 在响应附警告(CLI stderr),pour-rebuild/reload 后自动解除。
  • 芯片级(ESP32-S3 裸片)物料链:standard-parts.json 补 6 类选型(#106,S3R8 裸片
    C2913194 内封 8MB PSRAM / W25Q64 / APS6404L / 40MHz 晶振 / 2.4G 陶瓷天线 / π 匹配);
    电路块库新增 2 个 draft 块 block.esp32s3r8_chip_minsys + block.ant_2g4_ceramic_pi
    (共 23 块:20 ready / 3 draft)。
  • pcb.components.list --include-pads 返回焊盘真实铜皮 width/height
    pcb.silk.list 返回 fontSize(0.12.1 起):clearance/DFM/避障从名义常量升级实测值。
  • PCB 设计规范手册(skills/easyeda-agent/references/pcb-design-rules.md):13 章,
    JLC 工艺 + IPC-2221;pcb check 报错的 [规范 §N] 即指向此手册章节。
  • sch bridge-check 规则类型化:wire-bridge(ERROR)/orphan-stub(WARN),
    JSON 可按类型 gate,对齐 pcb check 强制力。

Changed

  • pcb check 新增 5 条 DFM 规则(共 26 条),全部自带 [规范 §N] 引用:
    silk-over-pad(§11.2 丝印压焊盘)、decap-too-far(§3.1 去耦电容离 IC >2.5mm)、
    via-in-pad(§2.3 同网过孔打在焊盘上)、copper-near-edge(§5.1 铜距板边)、
    fiducial-missing(§9 SMT 板缺 Mark 点,INFO)。旧的 11 类规则也补上了章节引用。
  • net-class 线宽阶梯改公制圆整(规范 §1.2):电源分档从 mil 碎值(10/15/20mil =
    0.254/0.381/0.508mm)改为公制推荐值 branch 0.25mm / trunk 0.4mm / high-current 0.5mm
    (9.84/15.75/19.69mil);signal 仍取板的 live 规则值。存量按旧阶梯布的板零追溯告警。
  • easyeda pcb power-pour:2 层板电源自动铺铜(power-planes 的 2 层版)——GND 全板
    pour + 各电源轨局部动态 pour(非 static fill,防异网短路)。
  • 删除类命令统一收 CSV 与 JSON 数组(#109):pcb delete / pour-delete /
    region delete / fill delete / track-delete / via-delete —— pcb drc --json
    objs 数组现在可直接粘贴。

Fixed

  • clearance 判据改铜皮边缘距:track↔pad / via↔pad 原按径向 max(w,h)/2 判(USB-C 长条
    焊盘旁的合法走线被误报 21 条);track↔via / track↔track 原按中心线距判并打印,导致
    「runs 16.9mil — under the 6mil rule」自相矛盾文案,且两条 10mil 线中心距 8mil(铜皮
    已重叠)竟放行 = 漏报短路
    。现全部按真实矩形/半宽算边缘距。
  • route-short detour 段 fine-pitch 收窄改子段级(#107):原为整 hop 级,任一端点落在
    密脚场就把整条多层绕行(含对侧层电源 trunk)连坐收窄到 6mil,载流严重不足。
  • workflow 指纹 reload 后误报 placement drift(#100):坐标取整放粗到 1mil + 压平
    -0.0、旋转折进 [0,360)、layer 数字与名称统一映射;顺带修掉 asString 读数字 layer 恒
    空串导致翻面对指纹不可见的隐藏 bug。
  • place-constrained 检测不到 slot 挖的 M3 孔(#104,holes 恒 0 → Tier-1 避让失明):
    根因是解析 pcb.fill.listpoints 字段,而连接器只在 includeBBox 里给几何。
  • via-crosses-plane 的「plane 无网」分支降为 INFO(#110):实证 PLANE 层 pour 在
    doc reload 后被装进负片存储、扩展 API 无任何读取路径(平台行为,非本项目 bug),
    该分支在 reload 后必然假阳性 → 不再计入 warnings/拦 --strict,message 指引以
    pcb drc Connection=0 为准。
  • pcb.silk_netnames 碰撞检测从硬编码 50×50mil 改真实焊盘 extent。
  • --dry-run 预览不再被当成 mutation(#112):daemon 侧统一按 payload 的 dryRun
    标志把预览排除出 Mutates 判定 —— 之前只跑 pcb clear --dry-run(不改板)也会 arm
    staleRisk 并触发 autosave;现在 staleRisk / autosave / concurrentWriter 三处一致。
  • workflow advance 门失败时非零退出(#113):post_route_checked 拒门(或门跑不起来)
    时 exit≠0,脚本 set -e / CI 循环终于拦得住;与既有「阻塞在人工签核时非零」OR 合并。
  • 门与 power-planes 不再自相矛盾(#114):power-planes 判定「内层已被占用 → 该网
    改走线」(routeAsTracks)的电源网记进 workflow state,post_route_checked 门豁免其
    power-not-poured(仍打印并标注 exempt)。此前两个工具互相打架:去铺撞已有平面、
    不铺过不了门。豁免跟着布局失效(placement_confirmed 及更早)而非布线。
  • bom export 定位 bom-enrich.py(#115):六级探测(--scriptEASYEDA_SKILLS_DIR
    → 已安装 skill 目录(复用 skill status 同一份逻辑) → 可执行文件兄弟路径 → cwd → $PATH),
    非仓库 cwd 下不再找不到;找不到时列出每一条探测过的路径。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.12.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 13 Jul 16:53

[0.12.0] - 2026-07-14

本版把项目工作流机械化(#97)、补上手焊可达门(#99)、让 place-constrained
网感知分组连接器,并修掉三处在 esp32Mini 端到端回归里暴露的工具张力(Type-C 突出板框、
beautify 圆角与 pcb check 的弧不感知)。

Added

  • 项目 design-flow 状态机机械强制(#97):新增 easyeda workflow(init / status /
    advance / confirm / reset)——6 段门(imported→placement_ready→placement_confirmed→
    outline_confirmed→pre_route_passed→routing_authorized)。daemon 在 /action拦截
    未授权布线
    (pcb.line.create / pcb.via.create / pcb.import_autoroute,fail-closed);
    布局/朝向类 action 携带指纹,任何 mutation 自动失效下游确认并全链回退。
  • 手焊铁路门(#99):pcb layout-lint --gate 增加手焊可达检查——每个器件至少一侧有
    ≥60mil 净通道(否则「四面被围」判 fail);配 pcb stage set-assembly hand-solder
    落盘的装配档(min-gap 40 / large-pad 60)。
  • pcb.line.list 返回 copper 弧(arcs):与 lines 并列返回圆弧图元的端点,向后兼容
    (旧 CLI 忽略新字段)。让 headless 检查能把「track 端接在弧端点」识别为已连,而非悬空。

Changed

  • place-constrained 网感知分组:edge="user-facing" 的连接器(USB / SD / 端子 / 排针)
    分组到同一条共享边并沿边紧凑排布;共享边由网感知选(贴连接器电气搭档主芯片的那条边,
    经共享 local 网,而非几何质心)——USB 贴 CH340 同侧,缩短差分对、少交叉(实测同种子 61→28 交叉)。
    edge="any"(RF/模组)保持各自最近边。

Fixed

  • layout-lint off-board 改按焊盘中心判:连接器身/courtyard 突出板框(Type-C mating 面、
    卡座、螺钉端子)但焊盘全在框内属有意贴边,不再误判 off-board、不再卡死 confirm-layout
    授权链;无焊盘件兜底 bbox(焊盘边到板框净空仍归 DRC)。
  • pcb check 弧感知(消除 beautify 圆角伪报):beautify 把拐角圆化成 track→arc→track 后,
    dangling-endfloating-track-island 两个检测因不认弧而爆假阳性(实测一块板 dangling
    0→130、island 0→10,而官方 DRC 报 0 断)。现 dangling-end 认「同层弧端点=track 端已连」、
    floating-track-island弧桥接 union(镜像过孔桥接)——实测两者双双归零。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.11.3

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 11 Jul 17:53

[0.11.3] - 2026-07-12

守护进程端口稳定性(补丁):

Fixed

  • 多 daemon 抢端口根治:daemon 改为单一固定端口 49620(不再顺移到 49621…)。旧行为下
    第二个 daemon start 会悄悄占下一个端口,而连接器扫整段 49620–49629 会在多个 daemon 间抖
    (陈年 make dev/air 实例的典型症状);旧 PID 文件兜底不可靠。新的 ensurePortAvailable:
    空闲→绑;被我方 daemon 占(/health 探测确认)→自动替换(端口级,可靠);被别的
    程序
    占→交互终端问 [y/N]、headless(air/nohup 无 TTY)报清晰错误退出——绝不静默杀外部
    进程
    。连接器侧不用改(仍扫 49620–49629,先命中 49620)。

One-line install/update:

curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set EASYEDA_INSTALL_SKILLS=codex,claude to force targets, none to skip, or EASYEDA_SKILL_PRESERVE=1 to keep local edits.

easyeda-agent v0.11.2

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 11 Jul 17:06

One-line install/update:
```
curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh
```

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set `EASYEDA_INSTALL_SKILLS=codex,claude` to force targets, `none` to skip, or `EASYEDA_SKILL_PRESERVE=1` to keep local edits.

easyeda-agent v0.11.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 10 Jul 10:29

One-line install/update:
```
curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh
```

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set `EASYEDA_INSTALL_SKILLS=codex,claude` to force targets, `none` to skip, or `EASYEDA_SKILL_PRESERVE=1` to keep local edits.

easyeda-agent v0.10.0

Choose a tag to compare

@zhoushoujianwork zhoushoujianwork released this 10 Jul 08:10

One-line install/update:
```
curl -fsSL https://raw.githubusercontent.com/zhoushoujianwork/easyeda-agent/main/install.sh | sh
```

Installs/updates:

  • easyeda CLI/daemon
  • easyeda-agent skill for Codex (/.codex/skills) and/or Claude Code (/.claude/skills) when detected
  • prints EasyEDA connector .eext import URL

Skill targets: set `EASYEDA_INSTALL_SKILLS=codex,claude` to force targets, `none` to skip, or `EASYEDA_SKILL_PRESERVE=1` to keep local edits.