前言¶
在 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>'
典型用法与排错¶
- 安装插件并重启 DSH,用
claude_probe确认本机 CLI 可用、版本足够新(若 probe 报--resume: no,需升级@anthropic-ai/claude-code)。 - 用
claude_run提交任务;从返回中取出sessionId。 - 后续在同一工作流里用
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