装完敲 martty 却提示找不到命令,先跑一次 martty-cli 装完敲 martty 却提示找不到命令先跑一次 martty-cli装完了敲martty终端回一句command not found。这是 Martty 最常见的一类问题也最容易被误判成「没装上」包已经躺在全局目录里只是那个命令名还没被创建。Martty 是 openma-ai/Martty 的 DSH-first Agent TUIMITnpm 当前 0.3.380 星周下载 340综合分 56.3要求node 22.19.0、engines.dsh 0.1.7-rc.2。两套安装路径的「命令何时出现」规则并不一样。两条安装路径全局 npmnpminstall--globalmartty martty-cli第一次必须敲martty-cli首次启动会创建martty命令之后直接运行martty。交给 dsh 管npminstall--globaldeepseek-ai/dsh dsh plugin--profilemarttyaddmarttylatest dsh--profilemartty这条路入口是dsh --profile martty不需要martty命令npx martty --dsh martty等价。中文条目与版本可对照 完整插件清单与汉化避坑指南。它不声明任何安装脚本pnpm 严格的 build-scripts 策略ERR_PNPM_IGNORED_BUILDS也拦不住安装后的动作全被推迟到首次启动这是下面几个坑的共同根源。坑一 · 首次启动前只有 martty-cli 这一个入口现象。全局装完立刻敲martty提示command not foundnpm ls -g却能看到martty0.3.3node_modules/.bin下只有martty-cli。原因。发布出去的martty包只声明martty-cli一个 bin。这是有意的旧版本用过martty、dsh-tui、dsb第三方也可能占着只声明一个不会被占用的名字npm 就永远不会因 bin 冲突拒装。真正的martty命令由首次启动的martty-cli创建同时完成旧包迁移。所以「安装完成」与「命令可用」之间少了一次运行。解决。跑一次martty-cli或不方便全局安装时用npx --yes martty。从 0.3.1 升级的用户同样要跑一次因为 0.3.1 时代martty还由 npm 声明从 0.3.2 升级的用户已有的martty保持可用。若不相干工具占用了marttymartty-cli仍是本包自己的命令名可用它绕开。坑二 · 旧包的 bin 链接还在新命令被顶掉现象。敲martty打开的是别的程序或旧界面或者删过一次包martty居然还在运行时提示重装。原因。0.2.18 时代的dsh-tui/dsbbin、0.2.14 与 0.2.20 占用过的marttybin都可能仍指向旧包npm link的检出目录也会留下同名链接。因为包里没有安装脚本迁移只能安排到首次启动清理确实属于旧包的链接、创建martty、摘除旧包清单里的 bin 声明。解决。不要手工删链接先跑一次martty-cli或npx martty让迁移完成再决定要不要npm rm -g openma/deepseek-harness-tui——删旧包只是可选收尾。还要清楚npm rm -g martty的边界它只移除 npm 声明的martty-cli链接留下的martty是自清理 shim不是死链接下次运行会提示重装并自行删除。坑三 · 0.3.2 及更早装坏的 profile重复 add 没用现象。dsh plugin --profile martty add marttylatest显示成功dsh --profile martty启动后却看不到 Martty 该有的样子再 add 一次还是老样子。原因。0.3.2 及更早版本在部分环境里会把包装进依赖却没有登记进dsh.profile.bundles。dsh 判断「要不要加载这个插件」看的是 bundles 清单不是node_modules里有没有。于是 add 认为「已安装」直接跳过形成「装了但没启用」的僵局。解决。dsh plugin--profilemartty remove martty dsh plugin--profilemarttyaddmarttylatest先 remove 再 add 才会重写 bundles。坑四 · harness add/use 改了配置却没换掉眼前这个会话现象。在系统终端里martty harness add id与use id都成功切回已经开着的 Martty 窗口agent 还是原来那个于是以为切换失败。原因。add只安装并保存配置已配置项直接复用use只设下次启动的默认项不启动也不认证 Agent。两者写的都是$MARTTY_HOME/settings.json的harnesses与defaultHarness而运行中的 TUI 只在启动时读它进程内的 ACP 子进程不会因为文件变了就重启。真正的切换要initialize与session/new都成功失败保留原值。解决。当前会话切换用/harness当前项置顶并标(current)选另一项按 Enter要新增就选「 Add Harness…」。命令行那条留给「下次启动」。另外add不会启动或认证 Agent登录走/auth状态看/status。总结Martty 的安装故障大多不是「没装上」而是「首次启动那一步没做」或「配置写了却没触发加载」想对照同类插件的中文清单见 DeepSeek Harness Hub 插件清单。适合与不适合适合终端里完成全部工作的人在 dsh profile 里统一管插件与升级的团队有一堆旧版 TUI 包、想换到新命令名的老用户想用 ACP 接其他 agent 的人。不适合只想要双击即用图形客户端的人希望「装完就一切自动」的人需要人工风险结论的团队——该插件含敏感能力、尚无人工评估、站点未做风险分级。标签Martty、DeepSeek Harness、安装排错本文由 DeepSeek Harness Hub 自动整理数据来源于插件详情页。