Devin CLI 与 DeepSeek Harness 之间的非官方桥接:提供 devin 委派工具,外加一条…
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add alexisvaleev/dsh-plugin-devin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 25 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/7) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 11 处,展示前 9 条)
- 读取密钥环境变量src/acp.ts:162
const key = env.WINDSURF_API_KEY ?? process.env.WINDSURF_API_KEY - 读取本地文件src/acp.ts:165
const toml = readFileSync(join(env.HOME ?? homedir(), '.local/share/devin/credentials.toml'), 'utf8') - 发起网络请求src/acp.ts:237
const initResult = await peer.request('initialize', { - 发起网络请求src/acp.ts:247
await peer.request('authenticate', { methodId: 'devin-browser', _meta: { api_key: key } }, initSignal) - 发起网络请求src/acp.ts:265
return await agent.peer.request('session/new', params, signal) - 发起网络请求src/acp.ts:270
await agent.peer.request('authenticate', { methodId: 'devin-browser', _meta: { api_key: key } }, signal) - 发起网络请求src/acp.ts:271
return await agent.peer.request('session/new', params, signal) - 发起网络请求src/acp.ts:639
conn.agent.peer.request('session/set_mode', { sessionId, modeId }, opts.signal).catch(() => undefined), - 读取本地文件src/provider.ts:451
const data = await readFile(path)
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cosmokit@deepseek-ai/dsh-llm@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- devin委派工具
- /devin命令
非官方 Devin 命令行桥接,接入 DeepSeek Harness:devin 委派工具、/devin 命令,以及带 ACP 模型发现的 Devin LLM 服务商路由
README
由 DeepSeek 最新模型翻译生成dsh-plugin-devin
Devin CLI 与 DeepSeek Harness 之间的非官方桥接:提供 devin 委派工具,外加一条 /devin 命令,运行 devin -p(无头打印模式),还有一条 devin LLM 服务商路由,能自动发现模型——全部走 ctx.subprocess 接缝。与 Cognition 无隶属关系。
智能体能拿到什么
- devin 工具 —— 把 devin -p "<prompt>" 作为受管子进程启动。每次调用可传 cwd、model、permissionMode、resume、cloud、timeoutMs。返回 { ok, exitCode, stdout, stderr, timedOut, truncated }。
- /devin <task> —— 斜杠命令快捷方式(前提是配置档组合了 commands 服务)。
取消工具调用会中止子进程,走的是 subprocess 接缝的终止升级流程(SIGTERM → 宽限期 → 对进程树 SIGKILL);输出捕获有上限,溢出时保留尾部。
展开完整文档(README 剩余 1 节)
dsh-plugin-devin
Devin CLI 与 DeepSeek Harness 之间的非官方桥接:提供 devin 委派工具,外加一条 /devin 命令,运行 devin -p(无头打印模式),还有一条 devin LLM 服务商路由,能自动发现模型——全部走 ctx.subprocess 接缝。与 Cognition 无隶属关系。
智能体能拿到什么
- devin 工具 —— 把 devin -p "<prompt>" 作为受管子进程启动。每次调用可传 cwd、model、permissionMode、resume、cloud、timeoutMs。返回 { ok, exitCode, stdout, stderr, timedOut, truncated }。
- /devin <task> —— 斜杠命令快捷方式(前提是配置档组合了 commands 服务)。
取消工具调用会中止子进程,走的是 subprocess 接缝的终止升级流程(SIGTERM → 宽限期 → 对进程树 SIGKILL);输出捕获有上限,溢出时保留尾部。
前置条件
- devin 命令行在 PATH 上(或把 devinPath 设为绝对路径)
- 已完成 devin auth login,或已导出 WINDSURF_API_KEY(通过 forwardEnv 转发给子进程)
安装
from npm
dsh plugin --profile <your-profile> add @quonaro/dsh-plugin-devin
or straight from a git host
dsh plugin --profile <your-profile> add github:quonaro/dsh-plugin-devin
or from a local checkout
dsh plugin --profile <your-profile> add /path/to/dsh-plugin-devin
包内声明了 dsh.bundle,所以 dsh plugin add 会自动把 cordis.patch.yml 应用到配置档。pnpm ≥ 10 时,首次 git 安装会拒绝 prepare 构建——把 pnpm 打印出的包键复制到配置档的 pnpm-workspace.yaml 的 allowBuilds: 下,再重跑一次。
配置
编辑配置档 cordis.patch.yml 里的 dsh-plugin-devin 行,或在 GUI 里编辑派生出的 settings 命名空间。所有字段都是易变的——改动对下一次调用生效,无需重启。
| Key | Default | Notes |
| devinPath | devin | Executable name or absolute path |
| permissionMode | accept-edits | Headless runs can't answer prompts; bypass/autonomous for fully unattended work |
| model | '' | Devin model; empty = CLI/account default |
| cloud | false | true → devin --cloud (Devin Cloud sessions) |
| timeoutMs | 600000 | Cooperative per-call timeout |
| maxOutputBytes | 1048576 | 每条捕获流的内存上限;溢出时保留尾部 |
| respectWorkspaceTrust | false | false → 传入 --respect-workspace-trust false(在不受信任的目录里用 -p 时必须这样) |
| forwardEnv | PATH/HOME/USER/XDG\_\*/WINDSURF_API_KEY | 在清洗过的基础环境之上,再转发给子进程的环境变量名 |
| extraArgs | [] | 原样追加的额外参数,例如 ['--sandbox'] |
开发
pnpm install
pnpm test # typecheck + tsdown build + smoke test (uses a fake devin binary)
说明
- 插件会硬性注入 tools 和 subprocess —— 配置档必须组合出 subprocess 服务商(所有随附的基础配置档都做到了;sdk-minimal 没有)。
- 在不受信任的目录里,--print 模式会卡在 workspace-trust 提示上;所以 respectWorkspaceTrust: false 才是默认值。如果你更想走 Devin 自己的信任流程,就把它设为 true。
- 服务商这一半会保持 ACP 会话常驻(一个 devin acp 进程,每个对话一个会话);而 devin _工具_ 始终无状态 —— 你仍然可以用 resume 按会话 ID 串起多次 -p 调用。
服务商部分(@quonaro/dsh-plugin-devin/provider)
这个包还提供一个 LLM 适配器入口,把 devin 注册为服务商路由 —— 它会出现在 Settings → Models 和 /model 里,整个 dsh 智能体循环都能跑在它上面。
生成过程走 devin acp(基于 stdio 的 Agent Client Protocol),通过一个连接池 —— 一个进程服务多个会话,参考 acp2api 的会话管理器实现。harness 的一个对话(GenerateOptions.sessionId)对应一个常驻 ACP 会话:
- 全新会话会收到完整转录(brief + <transcript> + 每张附带图片,作为原生内容块)—— 智能体自己不保留任何历史;
- 复用会话只收到它还没见过的消息及其图片 —— 绝不重放,否则会重复它的历史;
- 同一会话上的轮次是单飞的(第二次调用排在第一次后面),而不同对话可以在同一个进程上并行跑;
- 如果进程挂了,下一次调用会重新拉起它,重建会话,并恰好重放一次转录;
- 压缩和会话标题调用使用临时会话,免得污染对话自己的会话;
- 空闲回收器(sessionIdleMs)会忘掉过期的会话索引,并终止空进程;ACP v1 无法删除会话,所以可回收的单位是进程。插件卸载时,连接池里的所有智能体都会终止。
附加图片会作为原生图片内容块传入——SWE 以及其他支持视觉的模型确实能看到它们。session/update 通知以文本和推理增量流式返回,提示词结果带有真实的 token 用量。transport: 'print' 保留旧的无状态 devin -p 路径(仅文本——图片会降级为 [image] 占位符)。listModels 会探测 devin acp(initialize + session/new),获取账号真实的模型目录;失败时回退到静态 models 表({id, devinModel, name});当 localSessionTitles 开启时,会话标题的辅助调用在本地应答。
智能体会声明 devin-browser 认证,因此 authenticate 会在 initialize 握手期间被调用,使用转发环境中的 WINDSURF_API_KEY,或 devin auth login 存储的密钥(针对那些要求认证却不声明的服务器,通过认证必需回复上的惰性重试来覆盖)。permissionMode 通过 session/set_mode 映射到 ACP 会话模式(bypass/autonomous → bypass;normal 保留账号默认值),请求的模型按会话通过 session/set_config_option 应用,session/request_permission 提示一律以 allow-once 应答。cloud 和 respectWorkspaceTrust 仅适用于 transport: 'print'。
语义: Devin 是智能体,不是模型。每次模型调用都是一次完整的无头 Devin 会话,运行自己的工具循环——单次响应延迟以分钟计,harness 侧的工具永远不会被调用。devin _工具_(主入口)才是委派的正确形态;服务商的存在是为了把整段对话路由到 Devin。
| 额外配置 | 默认值 | 说明 |
| cwd | '' | 派生会话的工作目录;留空 = harness 的 cwd |
| timeoutMs | 1800000 | 服务商调用比工具调用获得更长的预算 |
| transport | acp | acp = devin acp 会话/提示词(图片、用量、推理);print = devin -p 仅文本 |
| maxImages | 8 | 附加到单条 ACP 提示词的最新图片出现次数 |
| maxImageBytes | 5242880 | 单张图片的字节上限;超出上限的附件降级为 [image] 占位符 |
| models | default, opus | 对外公布的模型 id → --model 取值 + 显示名称 |
| brief | (英文包装) | 前置到每份扁平化转录文本的指令 |
| localSessionTitles | true | 不要为生成会话标题消耗一次 Devin 运行 |
| autoDiscoverModels | true | 探测 devin acp(initialize + session/new),拿到账号真实的模型目录 —— 与 Zed 等 ACP 客户端用的是同一套机制。探测失败时回退到静态的 models 表 |
| discoveryTimeoutMs | 60000 | 单次探测的超时时间 |
| discoveryCacheMs | 300000 | 探测成功后缓存多久再重新探测 |
| sessionIdleMs | 900000 | 池化 ACP 会话/进程的空闲存活时间;会话过期后下一轮重放,进程过期且为空则终止。0 表示关闭回收 |
两部分在 cordis.patch.yml 里是彼此独立的行 —— 删掉 dsh-plugin-devin-provider 就只保留工具,删掉 dsh-plugin-devin 就只保留服务商。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
alexisvaleev/dsh-plugin-devin
Devin CLI 与 DeepSeek Harness 之间的非官方桥接:提供 devin 委派工具,外加一条…
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9