🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

研发工作流套件 k0ndrateff/dsh-plugins

DeepSeek Harness
k0ndrateff13 天前有提交已提供中文文档扫描:含敏感能力

把 Jira、Sentry、GitLab 等工具查到的内容画成卡片面板

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add k0ndrateff/dsh-plugins
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/23·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 13 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
  • 发起网络请求
    packages/integration-ui/src/host-api.ts:54
    const response = await fetch(`${basePath}${path}`, {
  • 执行外部命令来自配置/变量
    packages/mcp-oauth/src/browser.ts:26
    execFile(command, args, (error) => {
  • 发起网络请求
    packages/mcp-oauth/src/net.ts:18
    const response = await fetch(url, {
  • 发起网络请求
    packages/mcp-oauth/src/net.ts:44
    response = await fetch(url, {
  • 发起网络请求
    packages/mcp-oauth/src/net.ts:80
    response = await fetch(url, {
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-authorization@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的实用开发者插件。

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness 插件 宣传装饰插图 DeepSeek Harness 的插件。 每个插件都给智能体提供某个服务商的工具,并把查到的内容画成卡片和面板,显示在 Web Client 里,而不是甩一堆原始 JSON:Jira 和 Confluence、Sentry、GitLab、Figma、跨这些服务的每日摘要,还有一条关联链路——顺着错误找到背后的提交、提交所属的合并请求,以及它提到的工单。 插件按服务商允许的方式接入——浏览器 OAuth 流程、用户粘贴的个人令牌,或者同机服务器干脆不要凭证。基于 DSH 0.2.1-rc.2 构建;每个包都已发布到 npm。 安装 一次装齐所有插件——Plugins → Add plugin → dsh-workflow-plugin。 把市场索引加为来源——Settings → Plugins → Discover,打开 @deepseek-ai/dsh-experimental-plugin-market-bundle: https://k0ndrateff.github.io/dsh-plugins/market.json dsh-workflow-plugin 是捷径:它依赖八个 bundle,并为每个挂一行,装一次就全有了。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 插件

宣传装饰插图

DeepSeek Harness 的插件。
每个插件都给智能体提供某个服务商的工具,并把查到的内容画成卡片和面板,显示在 Web Client 里,而不是甩一堆原始 JSON:Jira 和 Confluence、Sentry、GitLab、Figma、跨这些服务的每日摘要,还有一条关联链路——顺着错误找到背后的提交、提交所属的合并请求,以及它提到的工单。

插件按服务商允许的方式接入——浏览器 OAuth 流程、用户粘贴的个人令牌,或者同机服务器干脆不要凭证。基于 DSH 0.2.1-rc.2 构建;每个包都已发布到 npm。

安装

一次装齐所有插件——Plugins → Add plugin → dsh-workflow-plugin。

把市场索引加为来源——Settings → Plugins → Discover,打开 @deepseek-ai/dsh-experimental-plugin-market-bundle:

https://k0ndrateff.github.io/dsh-plugins/market.json

dsh-workflow-plugin 是捷径:它依赖八个 bundle,并为每个挂一行,装一次就全有了。请用它代替各个单独的 bundle,不要和它们并装——两个配置档层插入同一个 id 的行,加载器会当成重复项拒绝。

或者直接从 npm 装单个 bundle:

dsh plugin --profile <profile> add dsh-sentry-plugin

Discover 会保留它读到的索引,而其中的条目锁定一个确切版本,所以新版本发布后要刷新页面——否则它一直提供之前拉到的那个版本。

[!WARNING]
所有插件都在活跃开发中。每个版本都可能包含破坏性变更、不稳定,或者带有安全漏洞。使用风险自负。

包

| 包 | 是什么 |
| dsh-atlassian-plugin | Jira 和 Confluence,走 Atlassian 的远程 MCP 服务器 |
| dsh-sentry-plugin | Sentry 错误,带问题面板 |
| dsh-gitlab-plugin | 合并请求、评审讨论串和流水线,走 REST |
| dsh-figma-plugin | 从本地 Dev Mode 服务器取一个画框、它的变量和它的 Code Connect 映射 |
| dsh-digest-plugin | 跨上述集成的只读每日摘要 |
| dsh-correlation-plugin | 错误 → 提交 → 合并请求 → 工单,一张卡片搞定 |
| dsh-integrations-plugin | 连接卡片所在的那个 Settings 页面 |
| dsh-devkit-plugin | 项目自己的 lint、typecheck、test 和 build 配方 |
| dsh-browser-plugin | 智能体驱动的真实浏览器,用来检查自己的 UI 成果,每个会话一个浏览器,在侧边栏实时显示 |
| dsh-workflow-plugin | 上述所有 bundle,藏在一个配置档条目后面 |
| dsh-mcp-oauth | MCP 服务器的 OAuth,以及带认证的桥接 |
| dsh-integration-host | 宿主侧外壳:endpoint 补丁、登录状态、设置路由、斜杠命令、摘要与关联注册表 |
| dsh-integration-ui | 浏览器端外壳:面板主体、结果卡片、工具行、设置卡片、样式表 |
| dsh-plugin-build | 每个插件都会运行的构建 |

最后四个是库:插件从源码打包它们,所以运行时不需要安装任何东西。

插件

Atlassian。 https://mcp.atlassian.com/v1/mcp 提供的工具会变成普通的 harness 工具(mcp__atlassian__searchJiraIssuesUsingJql、getJiraIssue、searchConfluenceUsingCql 等),走正常的权限与审批流程。atlassian_present 把 issue、候选清单或 Confluence 页面显示成卡片;点击某一行,会在右侧面板打开该 issue,可以改状态流转和经办人。/atlassian status|login|logout|sync。

Sentry。 mcp.sentry.dev/mcp,走同一套 OAuth 库。sentry_present 显示搜索结果或 issue id 列表,带状态、经办人和事件数;点击某一条会打开完整 issue——堆栈、代码位置、可疑提交、标签——并提供 Resolve、Ignore、Reopen 和 Assign。/sentry status|login|logout|sync。

GitLab。 走 REST API 加个人访问令牌,不用 MCP:除非顶层 group 的 Owner 打开 GitLab 的 MCP 端点,否则它是关闭的;而且它的令牌只带 mcp 这一个 scope,任何 REST 调用都不接受。gitlab_present 显示合并请求、评审发现和失败的任务;面板有 Overview、Diff、Discussions 和 Pipeline 几个区块。gitlab_review 负责评论、回复、解决和批准——这些操作都会改动别人的合并请求,所以在调用带上 confirm 之前,它只回复将要发布的原文,面板也显示同样的草稿并带一个 Send 按钮。/gitlab status|login|logout|sync。

Figma。 桌面应用在 http://127.0.0.1:3845/mcp 上提供的 Dev Mode MCP 服务器——不用登录,也不用令牌,所以设置卡片只报告连接状态,不索要凭据。figma_present 把节点的结构、变量和 Code Connect 映射以文本形式返回给模型,同时把画框本身展示给人看:一张截图消耗的上下文远多于旁边的数字。实时调用结束后,面板会自动打开对应节点。/figma status|login|logout|sync。

Checks。 项目自己的 lint、typecheck、test 和 build 命令变成 checks 工具。配方放在项目根目录的 dsh-checks.json 里,所以命令归仓库所有,智能体只负责点名——checks,或 checks test。不接受命令行,那是 bash 的事。卡片带上每项检查的计数、耗时和失败项,失败行是 file:line,点击可在面板中打开该文件。解析器:tsc、biome、eslint、vitest、jest、pytest、generic。/checks 列出配方,/checks init 从 package.json 生成草稿并打印出来,不写入文件。

Digest。 一张只读卡片,汇总已安装的各个集成——进行中和已逾期的 Jira issue、已分配但未开始的工作、合并请求等你审阅、你自己的新 Sentry 错误,以及 CodeRabbit 的提示(默认关闭)。其中没有任何一步是模型调用;某个块失败时,只会让该块显示 unavailable 行,不会让整份摘要失败。投递走 harness 自己的调度器:/digest on 把提醒绑定到你输入命令时所在的会话,设置卡片决定提醒内容和时间。/digest now|on|off|time|timezone|days|blocks。

关联。 correlate 接收一个集成和它自己的某个标识符——Sentry short id 或 issue 链接、commit sha、group/project!12,或 DEV-5977 这类 tracker key——然后从那里一路走:错误、背后的 commit、包含它的 merge request、两边任一提到的工单。每个服务商只回答被问到的那个引用,并给出下一个引用,所以这里没有任何一方知道别的服务商的标识符。链路在哪里断掉会如实报告:「没有已安装的集成能解析它」「GitLab 拒绝了请求(403)」「什么都没找到」是三行不同的结果。

配置

bundle 的补丁会插入一行,带上默认值;在 $DSH_HOME/profiles/<name>/cordis.patch.yml 里覆盖它:

- id: atlassian
config:
endpoint: https://mcp.atlassian.com/v1/mcp
redirectPort: 8143
debug: false
- id: sentry
config:
endpoint: https://mcp.sentry.dev/mcp
redirectPort: 8144
debug: false
- id: gitlab
config:
endpoint: https://gitlab.com
debug: false
- id: figma
config:
endpoint: http://127.0.0.1:3845/mcp
debug: false

endpoint 是 MCP 资源地址;对 GitLab 来说则是实例根地址,每次调用都在它下面发起。redirectPort 是 OAuth 回调最先尝试的 loopback 端口;被占用就换下一个空闲端口。debug 会记录每个工具结果的原始 payload。

禁用某个插件,不用卸载任何东西:

- id: figma
disabled: true

摘要不需要部署配置:它包含什么、什么时候送达,都是设置项,由它的卡片和 /digest 写入 $DSH_HOME/digest/settings.json。读取这个文件很宽容——手改出的笔误只会回退到默认值,不会让插件挂掉。

开发

bun install
bun run build # package, or the whole workspace from the root
bun run typecheck
bun run test
bun run format # biome

在根目录下,bun run market 会重写 docs/market.json,而 bun run market --check 在已提交的索引不再描述这些包时会失败。不比较发布时间:版本一发布时间就变,而发布的同时文件也会提交,比较只会让每次 push 都变红。发布走 changesets:

bun run changeset # describe what changed
bun run version-packages # apply the bumps
bun run release # publish, then regenerate the index

这些库也会发布:已发布插件的 devDependencies 按版本引用它们,而一次发布记录的版本必须真实存在。
如何在这个仓库里干活 —— 见 AGENTS.md。计划做什么、为什么做、过程中量到了什么 —— 见 docs/roadmap.md。

限制

- 卡片和面板的文案是英文。 它既不走客户端 locale 服务,也不走服务商的语言设置。
- 本地 /dsh-* 路由没有鉴权。 它们只监听回环地址,但任何本地进程都能读取或改动某个集成的设置。它们从不写入服务商。
- GitLab 的 MCP 服务器需要组级开关。 除非顶层组的 Owner 打开它,否则它是关的;而且它的 token 只在 MCP 端点生效 —— 这就是这个插件改用 REST 的原因。
- GitLab 的写操作需要 api scope。 read_api 只覆盖读操作。
- Figma 桌面应用必须开着,而且 Figma 只能本地连接:远程服务器的动态注册对匿名调用方返回 403,它唯一的 scope 也不是自建 Figma 应用能申请的。
- Code Connect 只展示文件里已有的内容;面板读取映射,不创建映射。
- 任务的 trace 只保留最后 64 KiB,合并请求列表不带流水线状态 —— GitLab 的列表端点不发这个字段。
- 摘要块固定回看 24 小时,不管投递频率是多少;它的提醒归属于输入 /digest on 的那个会话。
- 关联分析按深度优先走,最多四层引用、四十条事实,所以同一个错误背后的第二个提交会晚一个分支才报出来,而不是并排显示。
预览分享卡片长什么样 ↓k0ndrateff/dsh-plugins
分享 · DeepSeek Harness Hub
k0ndrateff/dsh-plugins

把 Jira、Sentry、GitLab 等工具查到的内容画成卡片面板

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部