Rust 画界面、Node 跑插件Martty 的资源账怎么算写 Martty 的评测很容易滑向跑分但 README 里没有任何内存或启动耗时数字任何「占用多少 MB、冷启动多少毫秒」都是编的。能算的只有结构账它由几个进程组成、各自负责什么、哪些部件是可选的、哪些等待有上限。Martty 0.3.3MIT80 星周下载 340要求node 22.19.0、engines.dsh 0.1.7-rc.2。双进程常驻的是两份运行时dsh --profile martty启动两个进程。DSH Host 进程跑 Base Cordis tree、ACP Plugin 与 Agent独立的 Martty Client 进程跑 UI、Theme、Slot、Overlay 与 Session Service。两边通过 ACP 通信不共享 Plugin Fiber 或 Service 对象。这句话有三层含义。第一走 dsh profile 这条路时Node 侧至少有两份运行时在驻留进程数、句柄数、内存都要按两份预期而不是「一个进程里塞了两套代码」。第二两边对象树不共享插件状态跨进程只能走 ACP 消息「Host 改了 Service、Client 立刻看到」不成立。第三Client 是独立进程界面的绘制权归它。通道painter 独占 TTYACP 走管道Rust/ratatui 写的 painter 由 Client 驱动并独占用户 TTYACP 使用 Client 进程的 stdin/stdout用户 TTY 走 fd 3/4两条通道互不混用。这是 Martty 既能画完整界面、又能说 ACP 的原因协议流量与终端绘制被拆到不同文件描述符上不会互相污染。反过来把它塞进只转发 stdin/stdout 的封装时要意识到 TTY 是另一条通道界面能不能出来取决于它有没有拿到可用终端。插件的中文条目与版本可以对照 完整插件清单与汉化避坑指南。原生二进制是可选依赖CI 构建 macOS arm64/x64、Linux arm64/x64 与 Windows x64分别发布为openma/martty-platform-arch安装martty时npm 只装当前平台的那一个可选依赖。这决定了磁盘账的形状本机是「Node 侧代码 一个平台的二进制」不是五套反过来若 CI 缓存或私有镜像把所有平台的包都拉下来体积会放大但那属于缓存开销。也正因为它是 optional dependency任何省略可选依赖的安装方式都会直接打断 painter。坑一 · --omitoptional 省掉的是 painter现象。包装上了、命令也在启动却画不出界面painter 缺位。原因。原生二进制按平台作为可选依赖分发--omitoptional会把当前平台的openma/martty-platform-arch一并省掉Node 侧代码还在Rust 侧的执行体没了。解决。重新安装并启用可选依赖装 Martty 时不要带--omitoptionalCI 里如果全局设了这个 flag为这一步单独覆盖。坑二 · dsh 低于下限界面起了Agent 没挂上现象。dsh --profile martty能进界面会话里只说明已装的 dsh 版本、要求的版本下限或缺失的能力。原因。engines.dsh是下限0.1.7-rc.2不是固定版本表。低于下限、或 host 缺少必需能力时ACP 插件不会挂载但 TUI 仍会启动并把原因写进会话不会静默挂起。解决。把 dsh 升到下限以上或改用npx martty的内置模式本版本内置openma/deepseek-harness-acp0.4.39 及其 bundled runtime。高于下限的版本一律尝试新于已测试最高版本 0.2.1-rc.2 时只打印警告本站已在 dsh 0.2.0-rc.2 下真实安装成功。坑三 · 临时 Plugin 只活一个进程现象。在 Cordis 模式里调好的界面 Plugin重启 Martty 就没了。原因。临时 Plugin 默认只属于当前进程/liang缺省关闭不显式打开就没有常驻路径。临时运行与保存是两件事。解决。要跨重启就/liang onClient-only 走cordis_define → cordis_run → tui_plugin_save → $MARTTY_HOME/plugins短路径下次启动重新发现。含code.host的 Package 不能写进.oma要整理成普通 Cordis npm Package 后dsh plugin --profile martty add package-or-path。坑四 · Registry binary 下载没有总时长上限现象。下载很久也不报超时按 Esc 以为取消了其实还在跑退出 Martty 后任务直接没了。原因。Registry 的binary分发只限制连接等待与无进展时间不限制总时长。下载中 Enter 不关闭面板Esc 只是隐藏、后台继续但必须保持 Martty 运行退出会停掉未完成任务。解决。让它跑完别关进程真要中止用 Ctrl-C它会取消并清理临时目录不写入半完成配置。产物落在$MARTTY_HOME/bin/id/version/platform校验 SHA-256 后才配置且不写系统 PATH。四项开销四种可控手段常驻运行时来自双进程按实例数线性预期界面绘制来自 Rust painter 独占 TTY换更轻的 UI 组合是唯一旋钮磁盘来自单平台二进制加 Node 侧代码别省 optional等待来自 ACP 建连与 binary 下载后者只看无进展时间。总结Martty 的资源账不是「一个 TUI 有多重」而是「两份运行时 一份平台二进制 两条通道」想对照同类插件的中文清单见 DeepSeek Harness Hub 插件清单。适合与不适合适合要看清楚 Agent 每一步在终端里做什么的人能接受双进程、也要插件可热改的开发者在 dsh profile 里统一运行时的团队愿意读版本下限与安装选项的人。不适合只关心单进程占用的极简主义者把插件当纯静态配置、不需要运行中改 UI 的人要求人工风险结论的团队——该插件含敏感能力、尚无人工评估、站点未做风险分级。标签Martty、DeepSeek Harness、资源开销本文由 DeepSeek Harness Hub 自动整理数据来源于插件详情页。