DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-sseye

Sseye

DeepSeek Harness 中的 LLM 调试控制台——捕获每次模型调用,查看所有内容,重放任意调用。

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-sseye@0.4.3
README兼容性版本

兼容性与来源证明

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

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/16

版本

0.4.3stable
2026/9/16
0.4.2stable
2026/9/3
0.4.1stable
2026/8/25
查看其余 1 个版本收起版本
0.4.0stable
2026/8/21

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编码计划配额,并提供实时令牌使用记录,同时在侧边栏条目中显示当前会话提供商今日的使用量Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Usage Stats@ychris12138/dsh-usage-statsdsh Web GUI 的令牌使用热力图、提供商余额和订阅配额Codex Connectdsh-codex-connect用于 DeepSeek Harness 的 ChatGPT OAuth 和 Codex 模型。

README

dsh-sseye

The LLM debug console inside DeepSeek Harness — capture every model call, see everything.

English | 简体中文

dsh-sseye is a DSH plugin that taps the harness-native llm/stream waterfall to capture the full content of every LLM call — complete messages, system prompt, tool schemas, streaming response blocks, usage, the real wire protocol and endpoint — and presents it in a DevTools-style viewer docked inside the harness. No proxy, no certificates, no extra setup, and full agent semantics: every capture carries turn / step / session / compaction attribution.

It is the harness-internal sibling of SSEye — same diagnostic philosophy, different observation layer.

SSEye panel: turn-grouped call list with an expanded inline detail — provider/model hero, TTFT/duration/usage stats, cache-hit bar, prompt and message sections

Installation

From npm (prebuilt — no build-approval step):

dsh plugin --profile web add dsh-sseye

Or straight from the source repo:

dsh plugin --profile web add github:jhuanxx44/dsh-sseye

Restart the harness; the SSEye button appears in the session header. (Git-hosted installs build via the package's prepare script; allow the build key pnpm prints if it blocks, then re-run. Pre-built lib/ is committed, so a blocked build is harmless.)

Uninstall:

dsh plugin --profile web remove dsh-sseye

Configuration

The UI is English by default. To switch the panel (and the truncation markers embedded in captured content) to Chinese, override the plugin row's config in your profile's patch layer — ~/.dsh/profiles/<profile>/cordis.patch.yml:

- id: sseye
  config:
    locale: zh-CN

Restart the harness after editing. Any value starting with zh selects Chinese; everything else (or no config) is English.

What you get

Capture — full content, zero intrusion

  • Every call's complete GenerateOptions (system prompt, messages, tools, sampling params) plus every stream chunk of the response — captured at the llm/stream waterfall and tapped through unchanged: chunk identity, ordering, backpressure, cancellation and thrown errors are preserved.
  • Agent semantics for free: calls correlate with agent/request turn/step coordinates (shared AbortSignal identity) and are classified by source — agent loop / compaction / session-title / other.
  • The real wire protocol and endpoint (openai-completions, anthropic-messages, google-generative-ai, …) resolved from the provider's settings profile; routes without a declared protocol fall back to a guess table, clearly marked with ~.
  • Timing and cost signals: TTFT, total duration, chunk count, usage including cache-read tokens, finish reason, errors.
  • Image content is dropped at capture (placeholder kept); everything else is captured whole.

Viewer — DevTools-style, docked in the harness

  • Turn-grouped list: the consecutive calls of one turn group under a header aggregating call count, in/out tokens and total duration; compaction / title / other sources group separately. Collapsible.
  • Step rows with status dot, step number, content preview, TTFT / duration / usage — metrics progressively hide as the column narrows (container queries), so content always wins.
  • Inline accordion detail: click a row and the full detail expands right below it — one scroll flow, no second pane.
  • Detail view: hero with provider/model, protocol chip, endpoint, stats grid and a cache-hit ratio bar; system prompt; messages; tool names; response blocks (text / reasoning / tool-call args); finish reason.
  • Context diffing, first degree: each call's messages are compared with the previous call of the same session — the shared prefix collapses behind one click, and only the newly-added messages render highlighted.
  • Wire JSON reconstruction mirroring the DeepSeek adapter's serialization: tool results expand to standalone role:"tool" messages, reasoning replays as reasoning_content on tool-call turns, reasoning effort resolves to the thinking object.
  • Copy buttons on every block; syntax-colored JSON trees with in-place expansion for large arrays/objects.
  • JSON export: per call (row hover / hero button) or per turn group (bundle); versioned, self-describing payload.
  • Live streaming view: while a call is running, only the settling fields are polled and merged into the open detail; the loop backs off when idle and pauses completely while the panel is closed or the tab is hidden.
  • 本会话 / 全部 session filter; one-click clear.
  • i18n: English UI by default; Chinese via config.locale (see above).

The panel is a tab in the shell's right column. Since DSH 0.1.5-rc that column is a tabbed dock (dsh-client-ui-sidebar-right), so SSEye registers a tab type plus a body and opens it with ctx.sidebarRight.openTab('sseye'); the shell draws the strip, divider, collapse rail, and float/dock controls around it. A stock install opens the column at 45% of the frame (drag ceiling 70%); that width belongs to the shell and is shared by every occupant, so this repo narrows the default with a one-line harness patch — docs/harness-patches.md §1.

Capture policy — runtime-tunable

  • Source toggles (agent / compaction / session-title / other) and field toggles (system / messages / tools / reasoning / answer text / tool args). Omissions are marked honestly in the record (N messages, not captured), never silently blank.
  • Redaction: a regex list, precompiled per policy change, applied before anything enters the buffer (sk-… → ***).
  • Capacity: ring-buffer size (default 100, max 5000), request-field truncation, response-block truncation — clamped to sane bounds; shrinking the buffer trims the oldest records immediately.
  • Defaults are full capture. The policy panel sits collapsed at the top of the viewer, never in the way.

Privacy posture

Full visibility, zero persistence by default. Captures live in a bounded in-memory ring buffer; process exit burns them. Export happens only on explicit user action. The llm/stream layer never sees API keys — they live inside the adapters — and redaction applies before buffering.

Roadmap

Observation is the base; the differentiators come next:

  • Replay & Mutate — clone a captured request, edit it, re-issue it through ctx.llm.stream(), compare responses side by side.
  • Semantic diffs between consecutive calls, beyond the shared prefix.
  • Token anatomy — per-message context-cost breakdown.
  • Cross-subagent fan-out aggregation; route (provider/model) filters.

Relationship to SSEye

SSEyedsh-sseye
Observation pointNetwork (mitmproxy)Inside the harness (llm/stream waterfall)
SeesAny SDK / app on the machineThe DSH process only, but with full agent semantics
Setup costProxy + CA trustOne plugin install

Development

pnpm install
pnpm build        # tsdown → lib/
pnpm test         # node --test
├── src/
│   ├── index.ts          # Host half: llm/stream capture, ring buffer, /__sseye/* HTTP routes
│   └── client/           # Client half: session-header trigger + right-column tab body (React)
├── lib/                  # committed build artifacts (rebuilt by `prepare` on git installs)
├── docs/                 # platform field notes + local harness patches
├── cordis.patch.yml      # bundle patch: inserts the `sseye` plugin row into the profile
└── tsdown.config.ts      # client bundle contract

Host ↔ Client transport is same-origin HTTP on the webServer service (/__sseye/*). See AGENTS.md for the behavior contract and architecture invariants, and docs/prototype-field-notes.md for DSH platform field notes.

Local install from a checkout: dsh plugin --profile web add .. Releases are tag-triggered: bump version → commit → tag v* → push the tag.

License

MIT