DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Codex Review — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
C

dsh-codex-review

Codex Review

DeepSeek Harness 的确定性 /review 命令:将审查子代理固定到由订阅支持的 Codex 模型,提供设置卡片,每个聊天使用一个审查会话,并通过 /review reset 忘记该会话。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:vitas/dsh-codex-review#230ea975c0351e986f69ce286f8d996027a29bd1
README兼容性版本

兼容性与来源证明

Codex Review 以 dsh-codex-review 发布,当前版本为 0.4.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/1

版本

0.4.0stable
2026/10/1

相关插件

正在加载相关插件…

最新版
0.4.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/1
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Vision Toolkit@anionex/dsh-vision-toolkit面向 Harness 原生集成的 DeepSeek 与 agent-vision-toolkit:图像问答、OCR、定位、UI 还原、像素差异、Artifacts 和 Web UI。Remotedsh-remoteDeepSeek Harness 的远程工作助手:连接 SSH(密码/密钥/代理/键盘交互/代理跳转),选择远程工作区,使用 22 个 rw_* 工具操作该工作区(包括 rw_edit/rw_stat/rw_mkdir/rw_remove/rw_move/rw_forward),具备冲突感知的镜像 syBridge@wenbin_wb/dsh-bridgeDSH 远程连接/远程控制插件(remote control):手机扫码即可在移动端/公网继续用 DeepSeek Harness,人不在电脑前也能接着干。一键局域网二维码、Cloudflare 公网隧道、自建隧道与微信 / QQ / 飞书 / Telegram Bot(多工作区/会话持久化/媒体/卡片审批/流式输出),无需自己搭公网服务器。

README

dsh-codex-review

Announced in the DeepSeek Harness community: Show Your Plugins! #8596.

A deterministic /review command for DeepSeek Harness: it sends the current change set to a reviewer subagent pinned to a route you name — by default the subscription-backed openai-codex route.

By default the reviewer is one continuing session per chat: the first /review opens it, every later one hands it the next revision, and the report comes back as a message in the conversation. Set conversation: fresh for a one-shot child whose report is returned as the command's own result instead.

Why this exists

Two things are wrong with asking the current agent to review its own work. It wrote the code, so it is judging its own reasoning; and in a harness that routes per turn, "review this" may well land on a different model than you expect, chosen by a router rather than by you.

DSH already has the pieces: a slash command can call the subagent service directly, and a start request can pin the child's route through agentOptions. So /review is one command that does exactly that, with no LLM client, no credentials of its own, and no dependency on which model the session is running.

Because the route is pinned, this is also the way to review with a ChatGPT subscription instead of per-token API billing: point provider at openai-codex and the child's calls go through that route's own authentication.

Type /review, nothing else

The command needs no argument. The reviewer arrives with a standing brief — the stance (report, never edit a file), a search order (correctness, failure handling, contracts, security, concurrency and state), and an evidence bar (a claim you could not verify is a question, not a finding) — and the prompt tells it how to find something to judge: the change set as it stands, untracked files included; the newest commit when the tree is clean; and, when the workspace is not a Git repository at all, the repositories inside it that report changes — a session workspace is often a directory of checkouts, and reading all of them is not a review.

Anything you type after the command narrows what to judge; it never replaces the brief, and it never narrows what the reviewer reads.

/review                                    the change set as a whole
/review focus on the cache invalidation    the same review, aimed
/review reset                              forget the reviewer: the next review starts fresh

/review reset is the one input that is not a review. The shared reviewer is a single session per chat, which is what lets it tell you what moved since last time; the bare word reset retires that session and stops it if it is still working. Only the whole input counts — /review reset the cache reviews the cache — and nothing deletes the retired session, so a reset followed by a host restart before the next review re-adopts it.

The brief is the row's instruction, so a profile can replace it wholesale — the field next to the ones the settings card writes.

Install

# from the checkout
dsh plugin --profile web add /Users/vitas/git/dsh-codex-review
# or as a dependency
dsh plugin --profile web add link:~/git/dsh-codex-review

The package is a bundle: installing it mounts the codex-review row and the /review command. A restart is not needed for the row itself, but the command appears only once the profile has recomposed.

The route it needs

/review does not authenticate anything. It needs a route named by provider to exist and to work. For the subscription path that is the openai-codex provider — either the one pi-ai ships (OAuth sign-in with your ChatGPT Plus/Pro account) or the one a plugin registers from your Codex CLI login:

  • dsh-codex-auth — registers openai-codex from ~/.codex/auth.json, so the CLI login you already have is the credential; no second sign-in.
  • dsh-subagent-codex — a different shape: a subagent backend named codex that runs codex exec out of process. Use it by setting backend: codex and a route the CLI itself resolves.

If a call fails, the failure is the provider's own message, returned in the command result — a declared route with no credentials, or an unknown model id.

Configuration

Two writers touch this row. In the Web UI, open Plugins → dsh-codex-review: the card picks the route and the reviewer model (its list is the running composition's own model catalog, so subscription models a route plugin registered appear there too), the memory mode, the reasoning effort, and the command name. The same fields belong in your profile's cordis.patch.yml (see cordis.patch.yml for the shipped defaults and the commented rationale):

fielddefaultmeaning
backendspawnsubagent backend: spawn (fresh in-process child), fork (inherits this conversation), or a plugin-provided one such as codex
provideropenai-codexLLM route the reviewer is pinned to
modelgpt-5.6-solmodel id on that route
conversationsharedshared keeps one reviewer session per chat that remembers earlier reviews; fresh starts a one-shot reviewer per call
reasoningEffortnullone of off…max, or null to let the route decide
childMaxDepthnull0 forbids the reviewer from delegating further; null sends nothing (safe for backends without the depthLimit capability)
personanullper-child persona text, if the backend supports it
commandreviewthe slash command name
instruction, diffCommand, statusCommandsee patchwhat the reviewer is told and what it runs first
maxOutputChars40000cap on the review text handed back

A patch's config replaces the row's config wholesale — it is not deep merged. When you override one field, restate the ones you want to keep.

What it deliberately does not do

  • No automatic review. It runs when a human types the command. Automatic per-turn or per-tool-call review is a different feature with a different cost profile (one model call per turn, or per tool call).
  • No fixing. The reviewer reads and reports; the main agent implements.
  • No credentials and no runtime dependencies. Anything that authenticates stays the route's business.
  • No parent conversation inherited with the default spawn backend: the reviewer sees the repository and its own earlier reviews, not the argument that produced the change. That is the point; use backend: fork when you want the opposite.

Reviewer memory, and why the report is a message

conversation: shared is built on DSH's own continuable children, not on a store of this plugin's: the first /review calls subagents.startContinuable, and every later one finds that child again through the durable child catalog (subagents.listChildren) and hands it the prompt with sendMessage. Three consequences worth knowing:

  • The command's own result is a receipt, not the review. The child answers into the conversation — which is what makes the review visible to the main agent. conversation: fresh is the mode that awaits the child and returns the report as the command result.
  • The memory survives a host restart: a child that has gone idle is cold-resumed from its own durable session by the delivery itself, so the reviewer still knows what it flagged last time.
  • /review continues the newest reviewer-labelled continuable child of the session, and there is no reset yet. To start over, run one review with conversation: fresh, or open a new chat.

Each later prompt is shorter and asks for the delta: what was fixed, what is still open, what is new.

Verification

npm run build   # esbuild → lib/client.js, the browser card; ship it, the host never builds it
npm run check   # syntax of every module + tsc --noEmit
npm test        # node:test, no test dependencies

Then, against a real profile:

dsh --profile web --dump-config | grep -A3 codex-review   # the row composed

and type /review in a session. The honest test of the route is the first real call: it either returns a review or returns the provider's error.

License

MIT — see LICENSE.