dsh-claude-pilot:在 DeepSeek Harness 里驱动本机 Claude Code CLI

前言

在 DeepSeek Harness(DSH)里编排智能体时,常见做法是让模型通过工具调用外部程序。若你本机已经安装并登录了 Anthropic 的 Claude Code CLI,却希望 Harness 侧能按统一语义发起一次性任务、续接会话并做环境体检,就需要一层薄封装,而不是在对话里手写 shell。

维护者 Dobo233 的 dsh-claude-pilot 正是为此设计:把本机 Claude Code CLI 注册为 DSH 原生工具(claude_run / claude_resume / claude_probe),并与同作者的 dsh-codex-pilot 共用 run / resume / probe 语义——手上有哪个 CLI 就装哪个插件。插件还附带不依赖 DSH 的独立 HTTP 桥,便于脚本或 CI 在同一台机器上调用。

这是什么

dsh-claude-pilot 是 DSH 生态下的客户端类插件(社区目录:skillhub.cn 条目,源码:GitHub)。它不代管登录凭据,只转发本机已登录的 claude 可执行文件;返回结果里保留 sessionId,便于 Harness 或后续工具调用 claude_resume 延续上下文。

两种使用形态如下。

形态 入口 需要什么
DSH 插件(推荐) lib/index.js,注册 claude_* 工具 已装 DSH + 本机 claude 且已登录
独立桥 standalone/bridge.cjs,HTTP + 文件信箱 只要 Node ≥ 20

当前 package 版本为 0.1.0,许可证 MIT。

核心功能

三个 DSH 工具

装完插件并重启 DSH 后,工具面板应出现下列工具。

工具 作用 底层
claude_run 开一次性 print 会话跑整块任务,返回结果与 session_id claude -p "<prompt>" --output-format json,可选 --model、--permission-mode、--json-schema
claude_resume 续接会话:传入 sessionId,或 last=true(当前目录最近一次),fork=true 分叉 --resume <id> / --continue / --fork-session
claude_probe 体检:可执行文件、版本、关键旗标是否齐全 claude --version / claude --help

实践上,Harness 侧最值得持久化的是 sessionId:拿到后即可 claude_resume sessionId=... 接着聊,而不必把整段对话塞进新 prompt。

--json-schema 结构化输出

Claude Code 支持传入 JSON Schema 字符串,让 CLI 按结构返回,适合需要机器可读结果的场景。同生态里 Codex 侧有 codex_queue(往运行中会话投消息),Claude Code 没有对等的 IPC,因此本插件不提供 queue 类工具;结构化输出是 Claude 侧的独有能力。

能力 Codex(dsh-codex-pilot) Claude Code(本插件)
一次性任务 codex_run claude_run
续接会话 codex_resume claude_resume
往运行中会话投消息 codex_queue 无
结构化输出 无 --json-schema

独立桥(不用 DSH)

未安装 DSH 时,可用 Node 直接起本地桥:

node standalone/bridge.cjs        # 默认 http://127.0.0.1:8788
  • HTTP:GET /health、GET /probe、POST /run、POST /resume(别名 POST /claude、POST /start);没有 /queue。
  • 文件信箱:mailbox/inbox/<id>.json → mailbox/results/<id>.json。
  • Windows 上可用 .\standalone\ask.ps1 "任务描述";桥未启动时会尝试自动拉起。

请求体字段:{ prompt, cwd?, model?, permissionMode?, jsonSchema?, timeoutMs?, sessionId?, last?, fork? }。

安装与启用

官方安装命令如下(装完需重启 DSH,再在工具面板确认三个 claude_* 工具)。

dsh plugin --profile web add github:Dobo233/dsh-claude-pilot
dsh plugin --profile web add E:\path\to\dsh-claude-pilot   # 本地路径示例

运行环境(来自 README 与 package.json):

  • DSH 0.2.x
  • Node ^22.19.0 || >=24.0.0
  • Claude Code 在 2.1.187 上实测过 -p、--output-format、--resume、--continue、--json-schema 等旗标

插件以当前 DSH 进程的用户与权限启动子进程;安装前请自行查看仓库源码与 MIT 许可证,确认符合你的安全策略。

配置项

可在插件配置中使用如下字段(节选):

claudePath: null          # 显式路径;null = 自动探测
defaultCwd: null          # 默认工作目录
timeoutMs: 600000
maxOutputChars: 20000     # 超长保留尾部
permissionMode: null      # null = 用 Claude Code 自己的设置;可选 default / acceptEdits / plan / bypassPermissions
extraEnv: {}

claudePath 为 null 时,探测顺序包括:与 node 同目录的 node_modules/@anthropic-ai/claude-code/bin/claude.exe、Windows 下 %APPDATA%\npm\...、~/.local/bin/claude,以及 PATH。

Claude Code 的登录态不与桌面端共享;CLI 凭据在 ~/.claude.json 的 claudeAiOauth 或 ~/.claude/.credentials.json。无头环境可交互执行 claude 后 /login,或使用 claude setup-token 取得长期 token,再通过环境变量或 extraEnv 注入,例如:

$env:CLAUDE_CODE_OAUTH_TOKEN = '<token>'

典型用法与排错

  1. 安装插件并重启 DSH,用 claude_probe 确认本机 CLI 可用、版本足够新(若 probe 报 --resume: no,需升级 @anthropic-ai/claude-code)。
  2. 用 claude_run 提交任务;从返回中取出 sessionId。
  3. 后续在同一工作流里用 claude_resume,传入 sessionId,或 last=true 续接当前目录最近一次会话。

常见错误对照:

现象 原因 处置
result: "Not logged in · Please run /login",exit=1 本机 Claude Code 未登录 终端运行 claude 完成 /login,再用 claude_probe 确认
spawn 失败 EINVAL Windows 上误指 claude.cmd,Node 无法直接 spawn 将 claudePath 指向 ...\claude-code\bin\claude.exe

适用场景与注意

适合:已在 DSH 中编排智能体、且本机固定使用 Claude Code CLI 的开发者;需要在 Harness 里与 Codex 插件对称地使用 run / resume / probe 的团队;或仅要本机 loopback 桥、不想起完整 DSH 的脚本场景。

注意:

  • 插件不读取、不转发、不存储凭据,完全依赖本机已登录的 CLI。
  • Claude Code 默认会询问权限;无人值守时需在本机设置中放行,或显式传 permissionMode: "bypassPermissions"(风险自负)。
  • 独立桥只绑定 127.0.0.1,无鉴权,勿暴露到公网。

DSH 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;选型时以仓库 README 与许可证为准。

结尾

dsh-claude-pilot 把本机 Claude Code CLI 收成 DSH 可编排的三件套工具,并用 sessionId 串起续聊;需要结构化结果时可用 --json-schema,需要脱离 DSH 时可用 standalone/bridge.cjs。

  • 目录页:https://www.skillhub.cn/plugins/Dobo233/dsh-claude-pilot
  • 源码与完整说明:https://github.com/Dobo233/dsh-claude-pilot
羽毛球分组比赛记分
小程序二维码

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

Xiaoye