dsh-pen-dev:在 DSH 会话里驱动 pen.dev 画布

前言

在 DeepSeek Harness(DSH)里做界面或视觉稿时,模型往往只能输出代码或静态描述,无法直接操作设计工具里的图层、组件和样式体系。pen.dev 桌面应用自带 MCP 服务,能把当前 .pen 文档、选区、浏览器复刻等能力暴露给智能体;若要在 DSH 里接上这套能力,需要正确挂载 MCP 客户端、定位应用内二进制路径,并处理超时与配额提示等非默认行为。dsh-pen-dev 是社区维护的非官方集成包,由 maxlee 发布,分类为联网工具,把 pen.dev 桌面端的 MCP 接到 DSH 会话,并附带 pen-dev skill 说明画布工作流。本文介绍其定位、能力与安装配置要点;事实以 GitHub 仓库 README 为准。该插件与 pen.dev 无隶属或背书关系,包内不包含 pen.dev 二进制。

这是什么

dsh-pen-dev(npm 包名 dsh-pen-dev,当前版本 0.1.2,MIT 许可证)一句话定位:Unofficial pen.dev integration for DeepSeek Harness——在已安装 pen.dev 桌面应用的前提下,通过 DSH 的 MCP 客户端连接应用内置 MCP 服务,使模型可在用户正在查看的画布上设计、读帧与组件、用 pen.dev 样式原型,以及通过应用内浏览器把网页复刻为可编辑图层。维护者 maxlee;目录页见 SkillHub。

核心功能

安装并启用 bundle 后,模型侧可见的工具命名空间默认为 pen(可通过环境变量改前缀),对应 README 中的五类 MCP 工具:

工具 用途
mcp__pen__get_app_state 当前文档、选区、顶层帧、组件、浏览器状态
mcp__pen__read_skill pen.dev 官方画布 API 文档(execute、schema、指南)
mcp__pen__execute 对打开的 .pen 文档执行画布操作
mcp__pen__get_style 加载视觉样式原型(字体、颜色、 imagery)
mcp__pen__browser 在应用内浏览器打开真实站点并复刻为可编辑图层

此外 bundle 会注入 pen-dev skill,引导画布工作流并指向 pen.dev 权威的 read_skill 文档。与 pen.dev 文档中的最小 MCP 配置相比,本插件使用同一二进制、同一 --app desktop 与上述五个工具名;额外行为包括:在常见安装目录下自动探测 Pen.app 内 MCP 路径、默认 --agent deepseekHarness、转发会话 ID、将单次调用超时提高到 120 秒,以及在配额用尽时用 pen-dev-quota-guard 把上游提示改写为简短双语说明(含升级链接),避免模型反复重试。

说明:@pencil.dev/cli 提供的 MCP 是另一套基于 filePath 的无头编辑器工具,不能替代面向桌面应用的集成;README 明确其与桌面 IPC 不兼容。

环境与依赖

  1. DeepSeek Harness,且 profile 中可用 @deepseek-ai/dsh-mcp-client 插件。README 写明开发与测试针对 DSH 0.2.1-rc.2。
  2. pen.dev 桌面应用已安装。开发与测试环境为 Pen 1.2.19、macOS arm64。MCP 服务位于应用包内路径模式:Pen.app/Contents/Resources/app.asar.unpacked/out/mcp-server-<platform>-<arch>。

Windows / Linux 的路径探测在 README 中有描述,但仅 macOS 经完整测试;非标准安装应优先设置 PEN_MCP_BIN。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议自行查看 源码与 LICENSE,确认可接受非官方社区包的风险与 pen.dev 用量计费规则。

在 DSH 应用内(推荐)

侧边栏 Plugins → Add plugin → Install third-party plugin,输入包名:

dsh-pen-dev

同一入口也接受本地路径或 Git URL。bundle 在安装后启用;若开启 HMR,工具可无需重启出现,否则需重启应用。

CLI

将 <profile> 换成你的 profile 名:

dsh plugin --profile <profile> add dsh-pen-dev

插件市场索引

若市场索引列出本插件:Plugins → Explore → Add index source,粘贴索引 URL 后从结果安装。仓库内 market/index.json 为 format-1 示例;官方 DSH 尚无统一提交渠道时,可参考仓库 PUBLISHING.md 自建索引。

手动等价配置

若需显式 YAML(例如包尚未在 npm 时走本地路径),向 profile 插入 bundle 时 patch 会添加两行 bundle 引用:dsh-pen-dev 与 dsh-pen-dev/skill(id 分别为 pen-dev、pen-dev-skill)。若你曾手动配置 pen.dev MCP,需先删除手工的 mcp-client 行——两个 mcp-client 不能共用同一 serverName,否则会出现 serverName "pen" is already in use。

卸载:在 Plugins UI 移除,或执行 dsh plugin --profile <profile> remove dsh-pen-dev;若此前有手工 mcp-pen 配置,按 README 恢复。

典型用法与工作流

README 未给出独立「一键示例脚本」,但描述了可复现的操作顺序,适合在 DSH 对话中按 skill 与工具组合使用:

  1. 确保 pen.dev 桌面端已打开目标 .pen 文档(文件加密,不要用文件系统工具直接读写 .pen,仅通过 MCP 工具访问)。
  2. 调用 mcp__pen__get_app_state 了解当前文档、选区与帧结构。
  3. 需要 API 细节时调用 mcp__pen__read_skill,再使用 mcp__pen__execute 修改画布(对用户可见,应视为可能破坏性的操作)。
  4. 需要统一视觉语言时用 mcp__pen__get_style;需要从 live 页面起步时用 mcp__pen__browser。

同一画布同一时间只应有一个写入方;若 Claude Code 等其它 agent 也连着 Pen,避免同时写入。

配置项

二进制路径在 profile 激活时计算;未找到应用时 mcp-client 会报告 spawn 失败且不注册工具,DSH 其余部分仍可工作。常用环境变量如下(默认值见 README):

变量 含义
PEN_MCP_BIN MCP 服务二进制绝对路径(非标准安装或指定平台时优先)
PEN_APP_PATH pen.dev 应用包绝对路径(自动探测失败时)
PEN_MCP_AGENT 传给 pen.dev 的 --agent,默认 deepseekHarness
PEN_MCP_CONVERSATION_ID 转发为 --conversation_id
PEN_MCP_ENABLE_SPAWN_AGENTS 设为 1 或 true 时启用 --enable_spawn_agents(额外 spawn_agents 工具;默认关闭,以免 pen.dev 在 DSH 外自启 agent)
PEN_MCP_SERVER_NAME MCP 命名空间,默认 pen

macOS 上 GUI 应用通常不继承 shell 环境;若仅能在 shell 里设置 PEN_MCP_BIN,需通过能传递变量的启动方式,或改用 PEN_APP_PATH 等 README 说明的路径。

适用场景与注意

适合:已在 DSH 中使用 MCP、并日常用 pen.dev 桌面做 Agent 协同设计的开发者;希望在同一 Harness 会话里读画布状态、执行 pen.dev 文档化操作、复刻网页为图层,而不手写 MCP stdio 配置的用户。

注意:

  • pen.dev 按 active days 计量 MCP 用量(每个自然日只要有 pen 工具调用即计一天);免费档每月天数有限,Pro 无上限。额度用尽时所有 pen 工具(含只读)都会失败,且无本地计数可重置。
  • 插件非 pen.dev 官方出品;用量与计费以 pen.dev 服务端为准。
  • 社区插件目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系,不宜理解为官方应用商店。

结尾

dsh-pen-dev 把 pen.dev 桌面 MCP 与 DSH 的 @deepseek-ai/dsh-mcp-client 对齐成可安装的 bundle,并补充路径探测、Harness 侧 agent 标识、超时与配额提示,降低手工接线的成本。需要安装说明、配置表与卸载步骤时,以仓库 README 为准:

  • 目录页:https://www.skillhub.cn/plugins/maxlee/dsh-pen-dev
  • GitHub:https://github.com/maxlee/dsh-pen-dev
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜