DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Experimental Tool Witr — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
E

@deepseek-ai/dsh-experimental-tool-witr

Experimental Tool Witr

提供面向模型的 witr 因果进程、端口和锁追踪工具的 DeepSeek Harness 插件

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

npx -y @deepseek-ai/dsh plugin --profile web add github:martinm86867-ops/dsh-plugin-witr#ab42452bae7f23cd4deddf5a06a106d5d173c55b
README兼容性版本

兼容性与来源证明

Experimental Tool Witr 以 @deepseek-ai/dsh-experimental-tool-witr 发布,当前版本为 1.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

1.0.0stable
2026/10/14

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-plugin-witr

The causal process & port tracing plugin for DeepSeek Harness.

Gives autonomous DeepSeek agents instant root-cause visibility into running processes, port collisions (EADDRINUSE), and stuck file locks.


The Problem

Autonomous agents frequently stall during development or operational loops when encountering state conflicts:

  • A local dev server fails to start with EADDRINUSE: 3080.
  • An environment command hangs because /var/lib/dpkg/lock-frontend is locked.
  • A long-lived background worker holds memory, but ps aux only shows an uninformative child process without context.

Standard agent workarounds—chaining ps aux, lsof, fuser, netstat, and kill -9—are fragile, hallucination-prone, and risk accidentally terminating the parent terminal or shell.

The Solution

dsh-plugin-witr wires witr directly into the DeepSeek Harness tool registry via the Cordis plugin lifecycle.

Instead of guessing, the agent calls witr_trace to receive the complete supervisor hierarchy from systemd down through terminal emulators, shells, and parent containers in a single deterministic turn.

graph TD
  A[DeepSeek Agent Loop] -->|witr_trace tool call| B[dsh-plugin-witr]
  B -->|Cordis Effect / AbortSignal| C[witr Causal Engine]
  C -->|Procfs & Netstat Inspection| D[Linux Kernel / Sockets]
  D -->|Root Cause Tree + Metadata| C
  C -->|Formatted Tree / Mermaid / JSON| B
  B -->|Structured Result Block| A

Features

  • Full Causal Ancestry: Traces processes backwards through systemd -> ptyxis -> bash -> node -> esbuild to pinpoint what launched and maintains the target.
  • Port Collision Resolution: Translates port numbers (e.g. 3080, 8080) directly into the owning PID, parent shell, working directory, and active Git branch.
  • File Lock Diagnostics: Pinpoints which background process or daemon holds open a file descriptor.
  • Multi-Format Projection: Supports human-readable diagnostic text, compact hierarchical trees, JSON, and Mermaid.js flowchart diagrams for visual documentation. JSON output omits process environment variables, so tracing a process never copies its secrets into the model context.
  • DeepSeek Plugin Manager UI: Fully declared Cordis bundle with localized metadata, an icon, and configurable runtime parameters in the Web UI.
  • Exit-Code Fidelity: Classifies every trace from witr's documented exit codes instead of scraping its output, so warnings, "not found", and "insufficient privileges" arrive as answers and only genuinely broken runs fail the call.
  • Cancellation & Safety: Strictly read-only; forwards exec.signal to the witr subprocess and reports a cancelled call as cancelled rather than as a failure.

Installation

Prerequisites

Ensure the witr binary is installed in your system PATH (e.g. /usr/local/bin/witr):

# Verify witr binary
witr --version

Method 1: Add via DeepSeek CLI

dsh plugin --profile web add @deepseek-ai/dsh-experimental-tool-witr

Method 2: Profile Mount (cordis.patch.yml)

Add an - insert: entry to your active profile patch file (~/.dsh/profiles/<profile>/cordis.patch.yml):

- insert:
    - id: tool-witr
      name: "@deepseek-ai/dsh-experimental-tool-witr"
      config:
        binaryPath: witr
        timeoutMs: 10000

Model Tool Specification: witr_trace

When mounted, DeepSeek models gain access to the following tool schema:

witr_trace({
  target: string,                            // Port ("3080"), PID ("1234"), name ("node"), or file path
  kind?: "port" | "pid" | "file" | "name",   // Explicit discriminator; inferred when omitted
  format?: "standard" | "tree" | "mermaid" | "dot" | "json",
  exact?: boolean                            // Disable substring matching when searching by name
})

kind, format, and target are validated before witr runs, so an out-of-vocabulary kind or format is rejected instead of silently ignored.

Target inference. With no kind, a bare number is tried as a process ID first and then as a port, a value containing / is treated as a file path, and anything else is a process name. Non-empty targets are passed to witr after a -- terminator, so a process name that begins with - is never misread as a command-line flag.

Working directory. A relative file target is resolved against the calling session's working directory rather than the directory the harness process was launched from.

Concurrency. The tool is read-only, so it is marked concurrency-safe and several traces may share one tool batch.

Outcomes

The plugin reads witr's exit codes rather than matching output text — witr documents the codes as the contract and the wording of its human-readable output as explicitly outside it. Only the outcomes that carry no answer fail the tool call:

witr exitMeaningTool result
0Found, cleanAnswer
1Found, with warningsAnswer — warnings are the diagnostic payload
2Not foundAnswer; also drives the PID → port fallback
3Insufficient privilegesAnswer — witr's own output says how to escalate
4Invalid input, or an ambiguous nameError; retry with exact: true or a fuller name
5Internal errorError
6Found, but the cause can't be tracedAnswer
—witr could not be started at allError naming binaryPath

The canonical result is structured — { output, format, exitCode, warnings? } — with output as the model-facing projection. warnings is populated when format: "json" supplies witr's documented Warnings array, and the exit code and warning count travel to the UI as presentation metadata.

Example Agent Interactions

1. Diagnosing an In-Use Port

Agent call:

{
  "name": "witr_trace",
  "arguments": {
    "target": "3080",
    "kind": "port"
  }
}

Tool output:

Target      : node
Process     : node (pid 9056) {forked}
User        : martin
Command     : node --import tsx/esm apps/cli/src/bin.ts web
Started     : 1 hour ago (Wed 2026-10-14 10:05:05 +01:00)

Why It Exists :
  systemd (pid 1) → systemd (pid 4297) → ptyxis (pid 6407) → ptyxis-agent (pid 6421) → bash (pid 9030) → node (pid 9040) → sh (pid 9055) → node (pid 9056)

Source      : sh (shell)
Working Dir : /home/martin/deepseek
Git Repo    : deepseek (master)
Sockets     : 127.0.0.1:3080 (TCP | LISTENING, 2 connections)

2. Generating a Visual Markdown Architecture Diagram

Agent call:

{
  "name": "witr_trace",
  "arguments": {
    "target": "3080",
    "format": "mermaid"
  }
}

Tool output:

graph TD
  p1["systemd (pid 1)"]
  p4297["systemd (pid 4297)"]
  p1 --> p4297
  p6407["ptyxis (pid 6407)"]
  p4297 --> p6407
  p6421["ptyxis-agent (pid 6421)"]
  p6407 --> p6421
  p9030["bash (pid 9030)"]
  p6421 --> p9030
  p9056["node (pid 9056) :3080"]
  p9030 --> p9056
  style p9056 fill:#2ecc71,stroke:#27ae60,stroke-width:2px,color:#ffffff

Configuration Schema

Configured via Cordis YAML or the DeepSeek Web Settings UI:

OptionTypeDefaultDescription
binaryPathstring"witr"Path to the witr binary.
timeoutMsnumber10000Subprocess execution timeout in milliseconds.

Development & Building

# Install dependencies
pnpm install

# Typecheck the source and test suite
pnpm run typecheck

# Compile TypeScript
pnpm run build

# Run unit tests (Vitest)
pnpm run test

License

MIT © 2026 Martin M