在 DSH 里创作、探索灵感并管理素材。
从左侧「Museav」入口打开独立工作台,查看精选作品和可用模型,
使用提示词或模板出图,并按项目管理素材与作品。
English | 中文
| 本插件 | mcp__cs__* 工具 |
直接敲 CLI | |
|---|---|---|---|
| 看清「有哪些项目、各有多少素材」 | ✅ 一屏网格 + 计数 | ❌ 单次调用,看不见全貌 | |
| 素材拿直链当垫图 | ✅ 点一下复制 | ||
| 出图 / 上传能力 | ✅ 工作台调用本机 CLI | ✅ 完整 | ✅ 完整 |
| 密钥 | ✅ 不读不转发 ~/.museav.json |
✅ |
工作台通过本机 museav CLI 使用账户、模型、项目、素材和生成能力;精选灵感来自 MUSE AV 的公开接口。模型由平台自动路由,展示的列表不代表可以手动指定模型。
插件在全局侧栏注册「Museav」,点击后在主区打开独立工作台。原会话顶部的「资产」Tab 不再注册;已有项目、素材和生成记录仍由原 CLI 数据源提供。
包名
@dsh-plugins/dsh-museav-assets(与另外三个插件同一 scope)。dsh-museav-assets(无 scope)是走错路时发过一版的临时名 —— 已于 2026-10-02 撤回(unpublish), 请只用本名。教训:新插件一开始就用 scope 名,别先发无 scope 再撤回(撤回的名字 24 小时后任何人都能抢)。
桌面端在应用内的插件管理里装 —— 它从 npm 拉。命令行装不进 desktop profile
(profile "desktop" is managed exclusively by the Electron application)。
本地开发(改完代码装进桌面端试):
npm run deploy # 门禁 → 备份 → 装进 ~/.dsh/profiles/desktop/(不过门禁不部署)
npm run rollback # 起不来时恢复上一份;rollback:npm 装回 npm 正式版流程细节见 ../SOP.md「怎么测 / 怎么部署 / 怎么回滚」。首次安装还需把包名加进 profile(~/.dsh/profiles/desktop/package.json):
拓扑级变更要重启:桌面端是退出并重开 app(~/.dsh/restart.sh 已作废,现在探测不到 3080 服务会直接以 1 退出)。
前置条件只有一条:本机 museav CLI 已登录(museav login)。
插件自己不读也不转发 ~/.museav.json 里的 token。
| 路由 | 做什么 |
|---|---|
GET /api/dsh-museav-assets/health |
CLI 在不在、什么版本、工作区上限 |
GET /api/dsh-museav-assets/projects |
工作区列表 + 出图/素材计数 + used/limit/full |
POST /api/dsh-museav-assets/projects |
{name} 新建工作区(≤20 字) |
GET /api/dsh-museav-assets/assets?project=<id|名> |
该工作区的素材库 |
GET /api/dsh-museav-assets/jobs?limit=<n> |
最近出图记录 |
失败语义:上游/CLI 出错一律 200 + {ok:false,error},tab 内联显示原因;
只有参数不合法才 400。一次网络抖动不该让 tab 变白屏。
lib/museav.js 是唯一知道 CLI 输出长什么样的文件。museav-cli 的
stdout/stderr 分工就是它的脚本契约:
| 命令 | stdout(真值) | stderr(人看的补充) |
|---|---|---|
museav projects |
id 换行 | 名称 / 出图 x/y / 素材 n / brand |
museav projects assets --project X |
id<TAB>url |
名称 / media_type / tags |
museav jobs |
完整 JSON 数组 | 表格式摘要 |
museav projects create --name N |
新建 id | 成功提示 |
所以:真值一律取 stdout,stderr 只用来补展示字段。stderr 解析不出来就降级
(项目名退回 id 前 8 位,素材名退回「未命名」),绝不因为上游改一句中文就让整页空白。
test/museav-parse.test.mjs 用真机抓的输出当夹具守着这条线。
已知脆点:
museav projects/projects assets没有--json,展示字段只能从 stderr 表格里解析。给 museav-cli 这两个命令加--json就能把这条脆点彻底消掉 —— 真源在~/dev/muse/museav-cli/src/commands/projects.ts,改的是上游仓,不是本插件。
- 不出图、不传文件 —— 那是 CLI / MCP 的活,重复实现只会两处漂移
- 不缓存 —— 数据便宜,状态随时在变;想要缓存再加
- 不轮询 —— 挂载时拉一次,用户点「刷新」才重跑
npm run check && npm test # 28 个:解析契约 12 + 路由 8 + UI 8路由测试用 stub 可执行文件顶替 CLI(走 MUSEAW_BIN 环境变量),全程不联网、不碰真账号。
CLI 路径为什么是环境变量而不是插件配置:这套 Cordis 的函数式插件读不到 ctx.config
(声明了会永远 pending (waiting for service: config))。MUSEAW_BIN 也正好和 profile
里 MCP 桥的约定一致。改它不用重载插件 —— 每次请求现取。