用 AI 创建和修改钉钉宜搭应用,并在侧栏直接查看
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add pangxie985/dsh-desktop-yida该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · desktop
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 发起网络请求lib/client.js:80
var response = await fetch(API + path, { headers: { accept: 'application/json' } }) - 发起网络请求lib/client.js:95
var response = await fetch(API + path, { - 读取本地文件lib/yida-auth.js:33
if (!existsSync(resolved)) return null - 读取本地文件lib/yida-auth.js:35
return existsSync(join(root, 'lib', 'core', 'yida-client.js')) ? root : null - 读取本地文件lib/yida-login.js:46
return readFileSync(path, 'utf8').slice(-max) - 删除本地文件lib/yida-login.js:96
if (entry.logPath) unlinkSync(entry.logPath) - 读取本地文件lib/yida-cli.js:71
if (existsSync(candidate.path)) { - 执行外部命令来自配置/变量lib/yida-cli.js:244
child = spawn(resolved.command, [...resolved.prefix, ...args], {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
基于开源 CLI OpenYida制作的DSH desktop插件,用 AI 创建、修改钉钉宜搭(Yida)应用,右侧栏「宜搭工作台」直接查看。
README
由 DeepSeek 最新模型翻译生成dsh-desktop-yida
给 DeepSeek Harness(DSH)装上一双手:用 AI 直接创建、修改钉钉宜搭(Yida)应用,并在右侧栏「宜搭工作台」里查看与打开应用。
这是一个 DSH 插件,基于开源 CLI OpenYida 封装。你用自然语言描述需求,AI 读 Schema、生成变更、跑命令、回读校验,最后把应用丢进右侧内置浏览器里给你看。
你说话 │ ▼ AI(DSH 里的模型)⇄ DSH 工具层 ⇄ dsh-desktop-yida(host 半)──spawn──▶ openyida CLI ──HTTPS──▶ 宜搭 │ /yida/api/(只读,回环) │ client 半「宜搭工作台」⇄ DSH 内置浏览器标签页
目录
- 先认识四个名词
- 功能
- 安装
- 首次使用:登录宜搭
- 使用方法
- 安全闸门
- 配置项
- 常见问题
- 兼容性
- 合规提醒(请先读)
- 开发
- License
先认识四个名词
| 名词 | 是什么 | 和本插件的关系 |
| 钉钉(DingTalk) | 阿里旗下的企业协同办公平台 | 宜搭运行在钉钉生态内,账号、组织、权限都来自钉钉 |
| 宜搭(Yida) | 钉钉的低代码平台:可视化拖拽配置页面、表单、流程,一键发布 | 本插件操作的目标系统。
展开完整文档(README 剩余 1 节)
dsh-desktop-yida
给 DeepSeek Harness(DSH)装上一双手:用 AI 直接创建、修改钉钉宜搭(Yida)应用,并在右侧栏「宜搭工作台」里查看与打开应用。
这是一个 DSH 插件,基于开源 CLI OpenYida 封装。你用自然语言描述需求,AI 读 Schema、生成变更、跑命令、回读校验,最后把应用丢进右侧内置浏览器里给你看。
你说话 │ ▼ AI(DSH 里的模型)⇄ DSH 工具层 ⇄ dsh-desktop-yida(host 半)──spawn──▶ openyida CLI ──HTTPS──▶ 宜搭 │ /yida/api/(只读,回环) │ client 半「宜搭工作台」⇄ DSH 内置浏览器标签页
目录
- 先认识四个名词
- 功能
- 安装
- 首次使用:登录宜搭
- 使用方法
- 安全闸门
- 配置项
- 常见问题
- 兼容性
- 合规提醒(请先读)
- 开发
- License
先认识四个名词
| 名词 | 是什么 | 和本插件的关系 |
| 钉钉(DingTalk) | 阿里旗下的企业协同办公平台 | 宜搭运行在钉钉生态内,账号、组织、权限都来自钉钉 |
| 宜搭(Yida) | 钉钉的低代码平台:可视化拖拽配置页面、表单、流程,一键发布 | 本插件操作的目标系统。企业专属站点形如 https://xxxxxx.aliwork.com |
| OpenYida | 开源(MIT)的宜搭命令行工具,npm 包名 openyida | 本插件的「手」:所有真实操作都通过它执行 |
| DSH(DeepSeek Harness) | 本插件运行的宿主:带工具调用能力的 AI Agent 桌面端 | 提供工具注册、右侧栏、内置浏览器 |
关于 OpenYida 的能力边界,值得先知道两点:
- 官方 OpenAPI 只能操作「数据」(表单实例、流程实例、审批任务、附件),元数据只有只读接口;创建/修改应用与表单结构只能用登录态的接口,OpenYida 封装的就是这条路。
- 它需要你自己的宜搭登录态(openyida login),不占用钉钉开放平台的授权包。
功能
1. 14 个 yida_ 工具
| 工具 | 类型 | 作用 |
| yida_status | 只读 | CLI 版本、登录态、工作目录 —— 开工前先跑它 |
| yida_org_list | 只读 | 列出登录态可访问的组织 |
| yida_org_switch | 写入 | 切换本地登录组织(只改本地凭据指针,不动宜搭数据) |
| yida_apps | 只读 | 列应用。scope:mine / admin(我是管理员)/ all(我能访问的全部) |
| yida_forms | 只读 | 列应用下的表单/页面 |
| yida_schema | 只读 | 读表单 Schema(字段、fieldId、校验规则)—— 改表单前必做 |
| yida_app_entry | 只读 | 读平台登记的前端入口 / 管理台地址 |
| yida_data_query | 只读 | 查表单数据实例(分页) |
| yida_urls | 只读 | 推导页面地址;open: true 时请求右侧内置浏览器打开 |
| yida_create_app | 写入 | 建应用 |
| yida_create_form | 写入 | 建表单页(字段 JSON 定义,支持 19 种业务组件 + 分组) |
| yida_update_form | 写入 | 增量改已有表单(保留其它现有组件) |
| yida_patch_form | 写入 | 按 JSON Pointer 深合并改表单 |
| yida_publish_page | 写入 | 编译并发布自定义页面(.canvas.jsx) |
2. 右侧栏「宜搭工作台」
- 登录态徽标、CLI 来源;
- 口径切换:我管理的 / 我能访问;
- 应用列表 → 一键「打开(工作台)」「管理台」「表单」;
- 表单列表 → 打开表单页;
- 地址框:粘贴任意宜搭地址,直接在内置浏览器里打开;
- 后台轮询:AI 侧调用 yida_urls { open: true } 后,工作台会自动把页面开进内置浏览器。
内置浏览器是 DSH 桌面版自带的 Electron <webview>,能带登录态打开宜搭。
它不向模型暴露页面操作能力——本插件的分工是「AI 负责改,浏览器负责看」。
安装
前置:DSH 桌面版、Node.js ≥ 20、一个能登录宜搭的钉钉账号。
git clone https://github.com/pangxie985/dsh-desktop-yida.git
cd dsh-desktop-yida
node scripts/install.mjs
安装脚本做四件事(幂等,改前自动备份 .bak-<时间戳>):
1. 在插件目录 npm install openyida(这样你不用全局装 CLI);
2. 在 profile 的 node_modules 里建目录联接(Windows 用 junction,不需要管理员);
3. 往 profile 的 package.json 写 "dsh-desktop-yida": "link:<插件目录>" 并加入 dsh.profile.bundles;
4. 最后才往 cordis.patch.yml 写挂载行。
顺序是有讲究的:DSH 桌面版会热监听 profile 配置。如果配置里先出现一个还解析不到的包名,加载器会失败,甚至把宿主重启。所以脚本严格按「先让包可解析,再改配置」执行——这也是我自己踩过的坑。
重启 DSH 让 Host 半生效(会中断当前会话)。
其他用法:
node scripts/install.mjs --profile web # 装到 web profile(注意:web 端侧栏不可用,见「兼容性」)
node scripts/install.mjs --uninstall # 卸载
node scripts/install.mjs --skip-cli # 不自动装 openyida(你自己管)
首次使用:登录宜搭
用插件目录里那份 CLI(推荐,版本和插件一起管)
node node_modules/openyida/bin/yida.js login
或者你已全局装过 openyida login
登录成功后,在 DSH 里让 AI 调 yida_status,看到 loginStatus: "ok" 就通了。
多组织账号可以 yida_org_list 看有哪些组织、yida_org_switch 切过去。
使用方法
A. 直接对 AI 说人话(推荐)
| 你想做的事 | 这样说 |
| 盘点应用 | 「列出我是管理员的宜搭应用」 |
| 看结构 | 「读一下 APP_XXX 的表单列表」「把设备台账的 Schema 拉出来」 |
| 建应用 | 「新建一个叫『XX 管理』的宜搭应用」 |
| 建表单 | 「在 APP_XXX 建表单『客户登记』,字段:客户名称、客户编号、联系人手机、地址定位」 |
| 改表单 | 「给客户登记表加一个『是否重点客户』下拉字段(是/否)」 |
| 发布页面 | 「把这个页面发布到 APP_XXX / FORM-XXX」 |
| 看效果 | 「在右侧浏览器打开 APP_XXX 的工作台」 |
AI 会按固定节奏走:读 → 改 → dry-run 给你看命令 → 你确认 → 写入 → 回读校验 → 打开给你看。
B. 右侧栏工作台
1. Ctrl + Alt + B 展开右侧栏(Web 版是 Ctrl + Shift + B);
2. 在 guide 里选「宜搭工作台」;
3. 「我管理的 / 我能访问」切换口径,点应用上的「打开」即可在内置浏览器看到真实应用。
C. 不经过 AI,直接用 CLI
node node_modules/openyida/bin/yida.js app-list --type managed
node node_modules/openyida/bin/yida.js list-forms APP_XXXXXXXX
node node_modules/openyida/bin/yida.js get-schema APP_XXXXXXXX FORM-XXXXXXXX --summary-json
node node_modules/openyida/bin/yida.js create-form create APP_XXXXXXXX "客户登记" fields.json
node node_modules/openyida/bin/yida.js data query form APP_XXXXXXXX FORM-XXXXXXXX --page 1 --size 20
一个真实的字段定义示例
建表单时传给 yida_create_form 的 fieldsFile:
[
{ "type": "Divider", "title": "设备信息", "dividerType": "bold-with-thin" }, { "type": "TextField", "label": "设备名称", "required": true, "placeholder": "请输入设备名称" }, { "type": "TextField", "label": "设备编号", "required": true }, { "type": "Divider", "title": "客户信息", "dividerType": "bold-with-thin" }, { "type": "TextField", "label": "客户名称" }, { "type": "TextField", "label": "客户编号" }, { "type": "AddressField", "label": "设备定位" } ]
常用组件:TextField 单行文本、TextareaField 多行、NumberField 数字、SelectField 下拉、RadioField 单选、CheckboxField 多选、DateField 日期、EmployeeField 成员、AddressField 地址/定位、AttachmentField 附件、ImageField 图片、TableField 子表格、Divider 分组标题、ColumnContainer 分栏。
完整清单见 OpenYida 字段速查。
安全闸门
写入类工具必须同时满足两个条件才会真正执行:
1. 插件设置里 allowRemoteWrites 为真(默认开,可关死);
2. 调用时显式传 confirm: true。
任何一条不满足,工具不执行,只回显将要运行的完整命令。所有写工具都支持 dryRun: true,先看命令再决定。
此外:
- /yida/api/ 只暴露只读接口,且只接受回环 Host(防 DNS rebinding);
- 不做批量、无人值守的改造 —— 这类操作风险与合规成本都太高。
配置项
在 DSH 的插件设置里改(对应 cordis.patch.yml 的 config):
| 键 | 默认 | 说明 |
| cliPath | 空 | openyida 入口绝对路径;留空则依次找:插件自带 node_modules → OPENYIDA_CLI 环境变量 → PATH |
| projectDir | 空 | CLI 工作目录(生成的 .cache/openyida 产物落这里);留空用宿主进程 cwd |
| baseUrl | 空 | 宜搭站点;留空自动用当前登录站点(企业专属站点不是 www.aliwork.com,强烈建议留空) |
| allowRemoteWrites | true | 关掉后所有写入工具一律拒绝 |
| timeoutMs | 180000 | 单次 CLI 调用超时 |
| maxInlineBytes | 24000 | 工具返回给模型的最大字符数 |
常见问题
Q:yida_apps 返回 0 个应用,但我明明有应用? OpenYida 的 app-list 会硬编码 creator=<我的 userId>,只列「我自己创建的」。别人创建、而你是管理员的应用不会出现。
用 yida_apps { scope: "admin" }(我是管理员)或 { scope: "all" }(我能访问的全部),右侧栏工作台也有对应切换。
Q:生成的链接打不开 / 指向 www.aliwork.com? 你的宜搭是专属站点(形如 https://xxxxxx.aliwork.com)。baseUrl 留空时插件会自动读登录站点;如果你手工填了 baseUrl,请改成自己的站点。
Q:右侧栏找不到「宜搭工作台」? ① 先在 GUI 里硬刷新一次(Ctrl+Shift+R)让 client 半加载;② 右侧栏默认是收起的,按 Ctrl+Alt+B 展开;③ 展开后在 guide / 新建标签里找。
Q:改了代码什么时候生效? lib/client.js(client 半)会自动热加载;lib/index.js(Host 半)必须重启 DSH。
Q:安装时报 Cannot find module '@babel/standalone'? OpenYida CLI 的依赖没装全。执行 npm install --prefix . openyida 后重试(scripts/install.mjs 默认会做)。
Q:登录态过期? 重新 openyida login。登录态存在用户目录(%APPDATA%\openyida\auth),与 DSH profile 无关,desktop / web 两个 profile 共用。
兼容性
| 环境 | 工具(Host 半) | 右侧栏(Client 半) | 内置浏览器看应用 |
| DSH 桌面版(0.2.x) | ✅ 实测通过 | ✅ | ✅(Electron <webview>) |
| DSH web profile | ⚠️ 理论可用,未实测 | ❌ 不可用 | ❌ 不可用 |
web 端不可用的原因不是本插件的问题,而是载体限制:
1. web profile 的 DSH 运行时(0.1.x)没有官方的 dsh-client-ui-sidebar-right / dsh-client-ui-slots 这套右侧栏包,web 端的右侧栏由生态插件 dsh-better-sidebar 提供(另一套 ctx.betterSidebar.registerTab API);
2. web 版的内置浏览器是 sandbox iframe,而宜搭返回 X-Frame-Options: SAMEORIGIN,浏览器直接拒绝嵌入。
所以 web 端建议只把它当「执行工具」用:AI 干活,结果用系统浏览器看。
平台:Windows 实测通过;macOS / Linux 未实测(路径与进程调用均使用 Node API,理论上可用,欢迎 PR 反馈)。
合规提醒(请先读)
- OpenYida 不是钉钉官方授权工具。它通过登录态调用宜搭的接口,其中「创建/修改应用与表单结构」走的是内部接口路径。
- 《钉钉服务协议》第八条(软件使用规范)包含「通过非钉钉公司开发、授权的第三方软件、插件、外挂、系统,登录或使用软件及服务」的禁止性条款;《宜搭服务使用规则》另有系统配置、反向工程等条款。是否适用、如何解释,认定权在钉钉。
- 因此建议:只对你自己有权限的应用使用;写入前保留确认;不要在公司内部分发、运营这类工具;不要把批量导出组织数据当作常规操作。
- 用到生产环境前,请让公司合规/法务确认,或向宜搭官方书面确认。
- 这不是法律意见,条款以钉钉官网最新版本为准。
开发
dsh-desktop-yida/
├── package.json # dsh.bundle.patch + dsh.client 声明 ├── cordis.patch.yml # profile 挂载行 ├── lib/ │ ├── index.js # Host 半:14 个工具 + /yida/api/ 只读路由 │ ├── client.js # Client 半:window.__ModuleLoader__ bundle(宜搭工作台) │ ├── yida-cli.js # CLI 定位 / 参数编译 / JSON 解析 / URL 推导 │ ├── yida-auth.js # 登录态与只读接口桥接(应用列表口径、站点识别) │ └── schema.js # defineTool / defineConfig 同形实现(零外部依赖) ├── scripts/install.mjs # 安装 / 卸载(步骤顺序有讲究) ├── tools/ # 排查脚本:组织清单、应用口径对比 └── test/ # 58 项测试 + 假 CLI + 真实 CLI 冒烟
npm test # 58 项:参数/URL/JSON、Host 工具与路由、client bundle 契约
npm run smoke # 用真实 openyida CLI 跑只读命令(不写任何数据)
加一个新工具:在 lib/yida-cli.js 的 buildArgs() 里加一个 operation,再在 lib/index.js 的 tools 数组里用 readTool(...) / writeTool(...) 注册即可;测试里补一条参数编译用例。
为什么不用 bundler
client 半是手写的 window.__ModuleLoader__.load({ id, factory }) 单文件,require('react') 由宿主的平台模块表解析。省掉构建链,改完直接生效。
插件市场 / 索引
仓库被 fork 或 star 不会被任何市场自动收录。 DSH 的插件市场由「索引源驱动」,需要主动登记:
官方市场(DSH 自带,「插件 → 发现」)
官方市场读的是索引源 URL(format 1 的 JSON)。本仓库已经准备好一份,并用官方校验器 @deepseek-ai/dsh-plugin-market-index 验证通过:
https://raw.githubusercontent.com/pangxie985/dsh-desktop-yida/main/market/index.json
添加方式:
1. 插件页 → 发现 → 添加索引源;
2. 粘贴上面的 URL,保存;
3. 列表里就会出现「宜搭 AI 开发(dsh-desktop-yida)」,点安装。
索引里的安装源是 git + commit 固定(git+https://github.com/...#<40位 SHA>),所以装到的是可复现的版本,不会跟着 main 漂移。
发新版本时重新跑 node scripts/build-market-index.mjs 更新 commit,再提交即可。
第三方市场 dshmarket
dshmarket 的目录来自它自己发布的 npm 包里的 plugins.json(见其 catalog-npm.ts)。想被它收录需要:
1. 把插件发布到 npm(它优先安装「经仓库验证的 npm 包」);
2. 向它的 catalog 仓库提 PR,在 plugins.json 里加一条条目。
让安装体验最好:发布到 npm
目前索引用的是 git 源,安装时 pnpm 会拉整仓源码。如果发布到 npm:
npm publish # 之后可把 market/index.json 的 source 改成 { "type": "npm" }
这样安装只需数秒、无需本地构建,也更容易被第三方市场收录。
License
MIT
本插件与钉钉、阿里云、阿里巴巴集团无隶属关系;OpenYida 由其各自作者维护,遵循其自身的 MIT 许可。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
pangxie985/dsh-desktop-yida
用 AI 创建和修改钉钉宜搭应用,并在侧栏直接查看
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2
这是你的仓库?认领条目