{"schema_version":1,"plugins":[{"slug":"dsh-theme-cyberpunk2077-2b9434","name":"dsh-theme-cyberpunk2077","description":"Cyberpunk 2077 / Night City theme for the DeepSeek Harness Web UI — NC yellow × neon cyan identity, CRT scanlines, Kiroshi hover lock-on, combat-state HUD, synthesized typewriter & message SFX, boot glitch, Relic interference, slang chips, and hidden easter eggs (try sending: relic / johnny).","description_zh":"为 DSH Web UI 更换赛博朋克 2077／夜之城主题，包含霓虹配色、扫描线、HUD、合成音效与彩蛋；这是浏览器端主题插件。","description_en":"Themes the DSH Web UI with Cyberpunk 2077-inspired Night City colors, scanlines, HUD effects, synthesized audio, and Easter eggs. It runs as a browser-side theme.","author":"Tommy00748","install_spec":"dsh-theme-cyberpunk2077","repo":"https://github.com/Tommy00748/dsh-theme-cyberpunk2077","github_repo_id":1334664870,"category":"ui-theme","tags":["cyberpunk","web-ui","visual-theme"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.412Z","evidence_url":"https://dshplugin.app/plugins/dsh-theme-cyberpunk2077","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","fetched_at":"2026-11-05T00:17:47.712Z","evidence_url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","attribution":"Tommy00748 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","fetched_at":"2026-11-05T22:11:21.051Z","evidence_url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","attribution":"Tommy00748 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","fetched_at":"2026-11-05T22:23:54.210Z","evidence_url":"https://raw.githubusercontent.com/Tommy00748/dsh-theme-cyberpunk2077/a3681ee431f59c64b8bf37d34ee609ddc7811278/package.json","attribution":"Tommy00748 upstream package manifest"}],"data_as_of":"2026-11-05T22:23:54.210Z","readme":{"status":"fetch_failed","source_url":"https://github.com/Tommy00748/dsh-theme-cyberpunk2077/blob/a3681ee431f59c64b8bf37d34ee609ddc7811278/README.md","source_sha":"2129f5b95cffb5e331b2ce75e004436cb4ddae0d","fetched_at":"2026-11-05T22:11:20.773Z","checked_at":"2026-11-05T22:23:53.886Z","excerpt":"# dsh-theme-cyberpunk2077 — NIGHT CITY EDITION\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![npm](https://img.shields.io/npm/v/dsh-theme-cyberpunk2077?color=FCE300&label=npm&logo=npm&logoColor=black)](https://www.npmjs.com/package/dsh-theme-cyberpunk2077)\n[![⭐ DSH 插件市场](https://img.shields.io/static/v1?label=%E2%AD%90%20DSH&message=%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA&color=7C3AED&style=flat-square)](https://dshfind.com/zh/plugins/Tommy00748/dsh-theme-cyberpunk2077)\n\n> 欢迎来到夜之城。你的 DeepSeek Harness 已经被改装过了。\n\nCyberpunk 2077（夜之城）风格的 DSH Web UI 主题。纯浏览器客户端插件，零音频资源——所有声音都是 Web Audio 实时合成，不下载一个字节的音频文件。\n\n![NIGHT CITY — screenshot](assets/screenshot.png)\n\n## ✨ 这是什么\n\n一个把 DSH Web 界面整个搬进 2077 年的主题：夜之城黄 × 霓虹青的配色、CRT 扫描线、Kiroshi 义眼式悬停锁定、战斗状态的 HUD、合成音效……以及两个只有夜之城老司机才知道的彩蛋。\n\n所有的效果都可以关——动画、音效、干扰，一个按钮的事。它在小屏幕上和「减弱动态效果」系统设置下也会自动收敛，不会烦你。\n\n## ⚡ 快速上手\n\n```bash\ndsh plugin --profile web add dsh-theme-cyberpunk2077\n```\n\n然后把主题行挂进 profile 补丁层（`~/.dsh/profiles/web/cordis.patch.yml`）：\n\n```yaml\n- insert:\n    - id: ui-theme-cyberpunk\n      name: 'dsh-theme-cyberpunk2077'\n```\n\n重启 `dsh web`，NIGHT CITY 开机转场之后，欢迎来到 2077。\n\n> 💡 **装不上 / 启动崩溃？** 确认装的是 **≥ 0.1.4**（`npm view dsh-theme-cyberpunk2077 version`）。0.1.3 及更早版本发布时漏打了 `cordis.patch.yml`，安装后会因找不到补丁文件启动失败——升级到 0.1.4 即可。\n\n> 想微调？右下角 `DECK` 按钮打开控制面板，每个特效独立开关；`SND` 一键静音全部。\n\n## 🌆 视觉：夜之城的皮\n\n- **配色**：NC 黄 `#FCE300` / 霓虹青 `#00F0FF` / 玫红 / 近黑夜蓝底——夜之城广告牌的味道\n- **切角按钮**（45° chamfer），主按钮霓虹脉冲呼吸，像一块通电的电路板\n- **CRT 层**：扫描线 + 城市网格 + 双色霓虹雾，复古显示器既视感（可关）\n- **Logo 故障动画**：红青 RGB 色散，每 5.5 秒裂一次\n- **开机转场**：CRT 开机线 → glitch 条纹 → NIGHT CITY 标题 → 白闪（可关）。每个标签页只播第一次，刷新/断线重连不重播\n- **会话 = 数据碎片**：每条会话按稀有度上色（白/绿/青/紫/橙循环），激活的会话是传奇级橙黄光\n- **Kiroshi 光学锁定**：悬停会话行，青色扫描线扫过 + 四角瞄准括号——像义眼在锁定目标\n- **警示纹**：错误通知顶部红黑 45° 斜纹、面板标题青色斜纹，危险区一眼可辨\n- **夜之城时钟 + 数据流**：左下角 `0x93E2E4 23:47 NC-TIME` 一行 HUD 读出，侧栏收起自动隐藏\n- **任务追踪器**：目标栏变成 ◈ OBJECTIVE，统计条变成 HUD 读出（⟨ ⟩）\n- **通知改版**：切角 + 黄边 + 滑入发光，错误红边——像来了一条 gig 提醒\n- **空状态文案**：— NIGHT CITY LOCAL // 2077 —\n- **字体**：MiSans（小米，jsDelivr 按 unicode-range 分片加载）+ 本地等宽栈（代码）\n\n## 🎧 声音：合成出来的赛博氛围\n\n- **打字机音效**：每个键一声合成机械声（噪声瞬态 + 降频体），空格/回车更低沉（可关）\n- **消息音效闭环**：发送（上行双音）/ 完成（双短音）/ 错误（故障蜂鸣）/ 通知（高频双音）（可关）\n- **生成中 = 战斗状态**：`PROCESSING_` 下方出现体力条式脉冲进度；每 6 秒轮换一条夜之城风格加载提示；标签页标题变成 `▶ NC-JOB //`\n- **俚语状态条**：发送 `GIG UP // 单子已发` / 完成 `PREEM. // 任务完成`（绿）/ 错误 `FLATLINE // 连接中断`（红）\n- **EXECUTE ⏎ 悬停提示**，主发送键悬停时红青 RGB 分离故障\n- **标签页接管**：favicon 变成黄色切角方块，标题 `DSH // NC-TERMINAL`（偶尔错字闪烁）\n\n## 🥚 彩蛋：夜之城的秘密\n\n- 在输入框输入 `relic` 并发送 → **「WAKE UP, SAMURAI. WE HAVE A CITY TO BURN.」** 全屏故障时刻\n- 在输入框输入 `johnny` 并发送 → 强尼·银手夺屏 2.6 秒：全屏去饱和 + 红青色散 + 画面撕裂 + 随机台词（中英双语）+ 低频嗡鸣\n\n![RELIC — WAKE UP, SAMURAI](assets/relic-easter-egg.png)\n\n（系统开启「减弱动态效果」时，彩蛋会自动收敛，不吓你一跳。）\n\n## 🛡️ 性能护栏\n\n- 小屏（≤768px）：自动关闭扫描线、数据流和重动画\n- `prefers-reduced-motion`：停掉全部循环动画\n- 所有特效都能在 `DECK` 面板独立关闭，偏好存 localStorage\n\n## 📁 项目结构\n\n```\npackage.json     # dsh.bundle + dsh.client manifest（platform: web）\ncordis.patch.yml # 一键安装的补丁层\nlib/index.js     # 宿主端（空壳，让插件行挂载）\nlib/client.js    # 浏览器 bundle：主题 + 全部子系统\nassets/          # README 截图\n```\n\n## 🧹 想卸载？\n\n把 `cordis.patch.yml` 里的 `ui-theme-cyberpunk` 行删掉，再移除依赖并重启 `dsh web` 即可。夜之城随时欢迎你回来。\n\n> ⚠️ **`dsh plugin rm` 的已知坑**：它不会自动清掉 `cordis.patch.yml` 里已插入的主题行。卸载后如果重启 `dsh web` 报找不到包，手动删掉 profile 补丁里的 `ui-theme-cyberpunk` 行（见上），再重启一次就好。另注意 `0.1.3` 及更早版本存在安装即崩溃的问题，卸载请认准 `0.1.4+`。\n\n## 📜 许可证\n\nMIT — 拿去改装，Night City 不搞版权审查。\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"anionex-dsh-vision-toolkit-cab9eb","name":"@anionex/dsh-vision-toolkit","description":"DeepSeek Harness-native integration for agent-vision-toolkit: image Q&A, OCR, grounding, UI restoration, pixel diff, Artifacts, and Web UI.","description_zh":"将图像问答、OCR、目标定位、裁剪、矢量描摹、像素差异和 HTML 截图等视觉工具及 Skill 集成到 DSH Web 与 Headless；需配置视觉模型提供方，首次运行可能准备 Python 运行时。","description_en":"Integrates image Q&A, OCR, grounding, cropping, tracing, pixel comparison, HTML screenshots, and a task Skill into DSH Web and Headless. Configure a vision provider; first use may set up Python.","author":"Anionex","install_spec":"@anionex/dsh-vision-toolkit","repo":"https://github.com/Anionex/dsh-vision-toolkit","github_repo_id":1333100071,"category":"tools-mcp","tags":["computer-vision","ocr","image-grounding","ui-restoration"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.390Z","evidence_url":"https://dshplugin.app/plugins/dsh-vision-toolkit","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","fetched_at":"2026-11-05T00:17:52.144Z","evidence_url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","attribution":"Anionex upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","fetched_at":"2026-11-05T22:11:23.811Z","evidence_url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","attribution":"Anionex upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","fetched_at":"2026-11-05T22:23:55.538Z","evidence_url":"https://raw.githubusercontent.com/Anionex/dsh-vision-toolkit/864968a84007e15400429bc9fb46a415500ddfc3/package.json","attribution":"Anionex upstream package manifest"}],"data_as_of":"2026-11-05T22:23:55.538Z","readme":{"status":"fetch_failed","source_url":"https://github.com/Anionex/dsh-vision-toolkit/blob/864968a84007e15400429bc9fb46a415500ddfc3/README.md","source_sha":"9d6d75a045bfb726488ac721c2d4b0ef37d940ac","fetched_at":"2026-11-05T22:11:23.534Z","checked_at":"2026-11-05T22:23:55.214Z","excerpt":"<p align=\"center\">\n  <img src=\"assets/hero-v2.png\" alt=\"DSH Vision Toolkit helps text-only DeepSeek Harness agents understand images and complete visual tasks\" />\n</p>\n\n<div align=\"center\">\n\n# DSH Vision Toolkit\n\n<a href=\"https://trendshift.io/repositories/149708?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-149708\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/149708/daily?language=TypeScript\" alt=\"Anionex%2Fdsh-vision-toolkit | Trendshift\" width=\"250\" height=\"55\"/></a>\n\n[![Recommended by dshfind](https://img.shields.io/badge/recommended%20by-dshfind-FFD700?style=flat-square)](https://dshfind.com/en/plugins/Anionex/dsh-vision-toolkit)\n[![dshfind score: 94 — highest-rated plugin](https://img.shields.io/badge/dshfind%20score-94%20%7C%20highest--rated%20plugin-5B4CF0?style=flat-square)](https://dshfind.com/en/plugins/Anionex/dsh-vision-toolkit)\n[![agentic leaderboard](https://www.theagenticleaderboard.com/badges/new/dsh-vision-toolkit.svg)](https://www.theagenticleaderboard.com)\n\n[![npm](https://img.shields.io/npm/v/@anionex/dsh-vision-toolkit?style=flat-square&color=5B4CF0)](https://www.npmjs.com/package/@anionex/dsh-vision-toolkit)\n[![MIT](https://img.shields.io/badge/license-MIT-0B7285?style=flat-square)](LICENSE)\n[![DSH](https://img.shields.io/badge/DSH-Web%20%2B%20Headless-5B4CF0?style=flat-square)](cordis.patch.yml)\n\n**A more powerful vision toolkit—give text-only models in DeepSeek Harness eyes: image Q&A, long-screenshot OCR, UI restoration, and GUI visual tasks in one toolkit and Skill.**\n\n🚀 Paste an image and ask directly | Install with one command | Broad use cases\n\n[Highlights](#highlights) | [Quick start](#quick-start-three-steps) | [Toolbox](#toolbox) | [Configuration and limits](#configuration-and-limits) | [Troubleshooting](#troubleshooting) | [Community](#development-and-community)\n\n🌐 **English** | [中文](README.zh.md)\n\n</div>\n\n🏆 This project is the first comprehensive vision-tool plugin in the DeepSeek Harness ecosystem: it was initiated before internal beta and built during the beta with reference to [`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit).\n\n> **Original work:** The system and division of responsibilities behind these visual tools, together with the `vision-skills` Skill, were personally created and continuously refined by the author through long-term real-world use and repeated iteration.\n\n> If this project helps you or gives you some inspiration, feel free to star 🌟 & fork.\n\n## Highlights\n\n- **Paste an image and ask directly.** In DSH Web, pasting an image switches the text-only model to its `(Vision Toolkit)` variant automatically — no manual path copying or model changes. Native thumbnails, session history, and workspace paths stay intact; Web can preview artifacts.\n- **One command to install.** After installation, configure a vision provider in **Settings → Vision Toolkit** and start using the tools.\n- **Not just a caption — the content that matters.** The model does not produce a generic description; it extracts evidence around the current task, such as “Where is the error?” or “Where is the button?”.\n- **A battle-tested visual-task methodology.** The bundled Skill tells the agent what to look at for different visual tasks, which tool to choose, how to proceed, and how to verify the result.\n\n[`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit) gives an agent more than image captions: it can read, locate, crop, trace, rebuild, and verify visual work. DSH Vision Toolkit is its native DeepSeek Harness integration, bringing that workflow into Web and Headless Profiles.\n\nThis project has two layers:\n\n1. **Visual tools and a Skill:** the agent learns when to inspect, ground, OCR, crop, trace, or compare pixels.\n2. **Native DSH integration:** those capabilities live inside Profiles, sessions, Settings, Artifacts, and the Web UI.\n\n```sh\ndsh plugin --profile web add @anionex/dsh-vision-toolkit\n```\n\n**Upstream toolkit:** [Anionex/agent-vision-toolkit](https://github.com/Anionex/agent-vision-toolkit) · **Project website:** [agent-vision.anionex.me](https://agent-vision.anionex.me)\n\n## ❤️ Sponsor\n\n> Want to sponsor this project? See [FUNDING.md](FUNDING.md) or email davidyang042@gmail.com.\n\n<details open>\n<summary>Click to collapse</summary>\n\n<table>\n<tr>\n<td width=\"220\" align=\"center\" valign=\"middle\"><a href=\"https://aihubmix.com/?aff=sinZ\"><img src=\"assets/logo_aihubmix.png\" alt=\"AIHubMix\" height=\"48\"></a></td>\n<td valign=\"middle\">Thanks to <a href=\"https://aihubmix.com/?aff=sinZ\">AIHubMix</a> for sponsoring this project! AIHubMix is a stable, high-concurrency AI model API gateway that connects Claude, GPT, Gemini, DeepSeek, and other mainstream models through a single API key, compatible with multiple protocols, with <b>free model options</b> available. To sign up, use the <a href=\"https://aihubmix.com/?aff=sinZ\">AIHubMix entry</a> outside mainland China or the <a href=\"https://inferera.com/?aff=sinZ\">Inferera entry</a> within mainland China.</td>\n</tr>\n<tr>\n<td width=\"220\" align=\"center\" valign=\"middle\"><a href=\"https://api.ewo.so/register?aff=U6PT7J\"><img src=\"assets/logo_eapi_dark.png\" alt=\"E-API\" height=\"48\"></a></td>\n<td valign=\"middle\">Thanks to <a href=\"https://api.ewo.so/register?aff=U6PT7J\">E-API</a> for sponsoring this project! E-API aggregates mainstream AI models behind OpenAI-, Anthropic-, and Codex-compatible APIs, with selected Claude models up to <b>98% below official prices</b> and DeepSeek V4 models about <b>25% below official prices</b>.</td>\n</tr>\n</table>\n\n</details>\n\n**Contents**\n\n- [Highlights](#highlights)\n- [Recent updates](#recent-updates)\n- [Who it is for](#who-it-is-for)\n- [See it in action](#see-it-in-action)\n- [Quick start: three steps](#quick-start-three-steps)\n- [Toolbox](#toolbox)\n- [Configuration and limits](#configuration-and-limits)\n- [Troubleshooting](#troubleshooting)\n- [Donation](#donation)\n- [Development and community](#development-and-community)\n\n## Recent updates\n\n- **2026-08-20 · AIHubMix setup guide:** Added a screenshot-based guide for getting an API key through the Inferera entry and configuring the Gemini 3.7 Flash vision model; Settings now links directly to this guide.\n- **2026-08-19 · Transparent routing by default:** The model selector keeps one entry per model with the original name, and image input (paste, history, `read_image`) works without manually switching to a `(Vision Toolkit)` variant. Disable “Transparent variant routing” in advanced settings → image input to restore the explicit entries.\n- **2026-08-16 · Windows Python:** Added Microsoft Store Python support, fixing first-time isolated-runtime setup failures for affected Windows users.\n- **2026-08-17 · Vision upgrade:** Switched the default model to Gemini 3.7 Flash and fixed Qwen/Gemini bounding-box coordinate order.\n- **2026-08-16 · Image paste:** Text-only routes now switch to a `(Vision Toolkit)` variant and keep a workspace path, fixing blocked pastes and images that could not be reused later.\n- **2026-08-16 · Service stability:** Expanded service capacity to reduce peak-time `429` responses.\n- **2026-08-16 · Real model test:** Added a full image-request test in Settings, fixing the false confidence caused by a successful `/models` request to a model that still cannot process images.\n\n## Who it is for\n\n1. Want an interaction experience similar to a multimodal model: paste an image directly and ask a question or make a request.\n2. Want more than image Q&A — complete more complex, high-value visual tasks such as turning a sketch into a front-end page, converting an image into HTML, or extracting chat messages from long screenshots; more scenarios are added over time.\n\nThe bundled `vision-skills` Skill carries the complete upstream playbooks, explaining when to use each workflow, in what order to call the tools, and how to verify the result:\n\n| Playbook | What the agent learns to do |\n| --- | --- |\n| [Read long screenshots, chat histories, and scrolling pages](assets/skill/references/long-screenshot-ocr.md) | Find low-content cut bands, OCR each chunk in order, preserve chat speakers/timestamps/quotes, merge only duplicated overlap, and surface risky boundaries for verification |\n| [Rebuild a UI from a screenshot or design](assets/skill/references/restore-ui.md) | Reuse project components and assets first, then combine code-native UI, extracted visuals, rendered screenshots, and visual comparison to align a page or component |\n| [Restore an icon, logo, illustration, or other graphic](assets/skill/references/restore-graphic.md) | Extract a transparent PNG from the source image, or rebuild an editable/scalable SVG when needed, then verify shape, color, and alpha edges |\n| [Turn a sketch, diagram, or whiteboard into structured code](assets/skill/references/restore-structure.md) | Recover nodes, labels, connections, and directions as editable Mermaid, Graphviz, or another structured representation |\n| [Operate a GUI from screenshots](assets/skill/references/gui.md) | Locate a control, perform one action, capture the screen again, and verify the resulting state before continuing |\n\n## See it in action\n\n### Paste an image directly into DSH\n\n<p align=\"center\">\n  <img src=\"assets/dsh-view-example.png\" width=\"82%\" alt=\"A text-only DeepSeek model answering a question about a pasted image through Vision Toolkit in DSH Web\" />\n</p>\n\n*Paste an image into the conversation. A text-only model can switch to its `Vision Toolkit` variant and inspect the image in the context of the user's question.*\n\n### Screenshot to editable page\n\n<p align=\"center\">\n  <img src=\"assets/upstream/infographic-reference.webp\" width=\"49%\" alt=\"Reference infographic screenshot used for restoration\" />\n  <img src=\"assets/upstream/infographic-result.webp\" width=\"49%\" alt=\"Editable HTML and CSS reconstruction created from the reference screenshot\" />\n</p>\n\n> Prompt example: “(Use vision-skills) Rebuild this image into HTML.”\n\n*Left: the reference screenshot. Right: an editable HTML/CSS result. The result can continue into screenshot rendering and pixel comparison instead of ending as an image description.*\n\n### Sketch to working interface\n\n<p align=\"center\">\n  <img src=\"assets/upstream/ui-sketch.webp\" width=\"49%\" alt=\"Hand-drawn JupyterLab interface used as the restoration reference\" />\n  <img src=\"assets/upstream/ui-result.webp\" width=\"49%\" alt=\"Working JupyterLab-style interface reconstructed from the sketch\" />\n</p>\n\n*Left: a hand-drawn reference. Right: the working interface reconstructed from it.*\n\n> Prompt example: “(Use vision-skills) Turn this sketch into a working front-end page.”\n\n### Fast UI restoration: an approximate first pass\n\n<p align=\"center\">\n  <img src=\"assets/upstream/ui-fast-restore-reference.webp\" width=\"49%\" alt=\"Original YouMind homepage used as the fast UI restoration reference\" />\n  <img src=\"assets/upstream/ui-fast-restore-result.webp\" width=\"49%\" alt=\"Approximate YouMind homepage produced with fast UI restoration mode\" />\n</p>\n\n> Prompt example: “(Use vision-skills) Quickly rebuild this image into HTML.”\n\n*Left: the original page. Right: a fast reconstruction that preserves the main layout, content, and visual hierarchy while allowing approximate colors and library icons. Fast mode targets a first screenshot in about three minutes.*\n\n## Quick start: three steps\n\n### 1. Install\n\n```sh\ndsh plugin --profile web add @anionex/dsh-vision-toolkit\n```\n\nYou can install it into a Headless Profile too:\n\n```sh\ndsh plugin --profile headless add @anionex/dsh-vision-toolkit\n```\n\nUsing DSH Desktop? It bundles its own `dsh` CLI and intentionally does not add it to your system PATH. Open **DSH Terminal** from the tray and run the command there, targeting the Desktop profile:\n\n```sh\ndsh plugin --profile desktop add @anionex/dsh-vision-toolkit\n```\n\nThen restart DSH Desktop. The built-in plugin marketplace in DSH Desktop 2.0.1 has","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"nanmicoder-dsh-auto-mode-e3d317","name":"@nanmicoder/dsh-auto-mode","description":"Sandbox-first automatic permission policy for DeepSeek Harness","description_zh":"为 DSH 提供保持 workspace-write 沙箱的自动权限策略；仅对需要扩大权限的具体操作进行分类或请求批准。项目已于 2026-09-29 停止维护并归档，不再承诺宿主兼容更新。","description_en":"Adds a DSH permission mode that keeps routine work in the workspace-write sandbox and reviews requests for broader access. Archived; maintenance ended on 2026-09-29.","author":"NanmiCoder","install_spec":"@nanmicoder/dsh-auto-mode@0.2.0","repo":"https://github.com/NanmiCoder/dsh-auto-mode","github_repo_id":1333939283,"category":"security","tags":["permissions","sandbox","approval-policy"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.393Z","evidence_url":"https://dshplugin.app/plugins/dsh-auto-mode","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","fetched_at":"2026-11-05T00:17:56.270Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","attribution":"NanmiCoder upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","fetched_at":"2026-11-05T22:11:26.763Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","attribution":"NanmiCoder upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","fetched_at":"2026-11-05T22:23:57.068Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-auto-mode/907d663b7d65e3fcd9f328c598dee03772cac18b/package.json","attribution":"NanmiCoder upstream package manifest"}],"data_as_of":"2026-11-05T22:23:57.068Z","readme":{"status":"fetch_failed","source_url":"https://github.com/NanmiCoder/dsh-auto-mode/blob/907d663b7d65e3fcd9f328c598dee03772cac18b/README.md","source_sha":"244b32b67e6e2747c63da0a7060c0b1305d52f71","fetched_at":"2026-11-05T22:11:26.466Z","checked_at":"2026-11-05T22:23:56.738Z","excerpt":"> [!WARNING]\n> **Maintenance ended on 2026-09-29.** This repository is being archived. DeepSeek Harness now includes built-in Auto review; this plugin will receive no further fixes or host compatibility updates. Existing releases remain available for historical use.\n>\n> **Migration:** in a working session, select a built-in manual permission mode (for example, Workspace write) before disabling or uninstalling `@nanmicoder/dsh-auto-mode` in the application's plugin manager. If live reload fails, fully quit and reopen Harness. Start a new session and select the built-in mode you intend to use. Preserve old sessions; do not rewrite their permission identities or delete their logs.\n>\n> **The policies are not equivalent:** this plugin defaults to `workspace-write` sandboxing. In the audited Harness 0.2.0-rc.2 implementation, built-in Auto review uses `danger-full-access`. Review the current official permission description before enabling it. See the [official Harness source](https://github.com/deepseek-ai/deepseek-harness). The installation and compatibility details below are historical, not ongoing support promises.\n\n<p align=\"right\">\n  <strong>English</strong> · <a href=\"./README_ZH.md\">简体中文</a>\n</p>\n\n<p align=\"center\">\n  <img src=\"./assets/readme/hero.svg\" width=\"100%\" alt=\"dsh-auto-mode lets routine DeepSeek Harness work flow while stopping risky actions\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@nanmicoder/dsh-auto-mode\"><img src=\"https://img.shields.io/npm/v/@nanmicoder/dsh-auto-mode.svg\" alt=\"npm version\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/npm/l/@nanmicoder/dsh-auto-mode.svg\" alt=\"MIT license\"></a>\n  <img src=\"https://img.shields.io/badge/DeepSeek%20Harness-0.2.0--rc.2-202724\" alt=\"See installation instructions for exact host compatibility\">\n</p>\n\n## Sandbox Auto\n\n`dsh-auto-mode` keeps routine work inside Harness's `workspace-write` sandbox and reviews semantic risks or exact one-shot requests for wider access. The plugin's **Sandbox Auto** mode uses the independent key `sandbox-auto`; it does not replace the official, unsandboxed **Auto review** mode.\n\n> [!IMPORTANT]\n> Plugin **0.2.0** is the stable npm `latest` release for the official Harness **0.2.0-rc.2** release (`dsh-v0.2.0-rc.2`, commit `639ed015397290b3745d163aafe02ffee4aa3f84`). Plugin and host version numbers are independent. Harness itself still labels this release RC; install the exact supported host rather than assuming its npm `latest` points to it.\n\n| Harness host | Plugin support |\n| --- | --- |\n| `0.2.0-rc.2` | Recommended for plugin `0.2.0` |\n| `0.1.7-rc.2`, `0.1.5-rc.2`, `0.1.5-rc.1`, `0.1.2-rc.1`, `0.1.2-alpha.5`, `0.1.2-alpha.3`, `0.1.2-alpha.2` | Retained exact compatibility; product-entry matrix required for release |\n| Other unlisted hosts, including `0.2.0-rc.1` and `0.1.6-alpha.*` | Not declared supported |\n\nSee [compatibility.json](./compatibility.json), [release acceptance](./validation/0.2.0), and [the release adaptation record](./docs/harness-020-rc2.md). Historical preview evidence remains in [desktop preparation](./docs/desktop-020-preparation.md).\n\n### Install\n\nIn Harness, open **Plugins → Add plugin** and enter either:\n\n```text\n@nanmicoder/dsh-auto-mode\nhttps://github.com/NanmiCoder/dsh-auto-mode\n```\n\nFor an immutable release, use `@nanmicoder/dsh-auto-mode@0.2.0` or `github:NanmiCoder/dsh-auto-mode#v0.2.0`. An npm package page URL is not an install spec. Desktop users should use the application's plugin manager so the plugin is installed into the correct profile.\n\nFor a Web profile:\n\n```sh\ndsh plugin --profile web add @nanmicoder/dsh-auto-mode@0.2.0\n```\n\nTo test local changes, run `pnpm install --frozen-lockfile`, `pnpm build`, and `pnpm pack --pack-destination /tmp`, then add the generated tarball by absolute path. Git installations consume tracked `lib` output without an install-time `prepare` hook; include the rebuilt output whenever source changes.\n\n### Mode selection and migration\n\nRefresh the client and choose **Sandbox Auto** (**沙箱自动审批** in Chinese), then acknowledge the risk notice. The locale service updates menus, the active-mode control, General settings, `/permission` and the dialog. Official **Auto review** remains separate and is not decorated or intercepted by this plugin.\n\nFor old plugin sessions, migration recognizes the latest durable `auto` identity only when the stored sandbox is `workspace-write` and approval is `ask` or `never`. It appends a new `permission/preset: sandbox-auto` event, retaining existing events and both permission knobs. It leaves official `auto` sessions with `danger-full-access` unchanged. An orphan delegated child with our durable identity remains supervised and cannot execute without a live human-parent authority.\n\nUnsupported hosts fail explicitly. To recover an affected Web profile, stop it and run `dsh plugin --profile web remove @nanmicoder/dsh-auto-mode` from an external terminal. Desktop uses its own recovery/plugin management flow. Back up session data before host downgrades; do not change only the preset name or bypass compatibility checks.\n\n## Permission modes\n\n| Mode | File sandbox | Approval | Sandbox Auto policy |\n| --- | --- | --- | --- |\n| Read Only | `read-only` | ask | inactive |\n| Workspace Write | `workspace-write` | ask | inactive |\n| **Sandbox Auto** | `workspace-write` | ask | **active** |\n| Full access | `danger-full-access` | never | inactive |\n\nOrdinary Sandbox Auto work stays inside Workspace Write. Only an explicit one-shot widening may be approved automatically:\n\n| Decision | Typical effect |\n| --- | --- |\n| **Allow** | unfamiliar sandboxed Bash/PowerShell, routine dependency installation, local Git commits, project work, builds, tests, type checks, audited DSH coordination tools |\n| **Classify** | pre-session deletion, ephemeral downloaded-package execution, dangerous remote Git/database/service changes, sensitive reads, network transmission, external-system writes, exact sandbox widening |\n| **Ask once** | genuinely ambiguous effect or authority, or manual review after three consecutive classifier failures; an escalation reuses the official exact approval instead of opening two dialogs |\n| **Deny** | root/home/DSH_HOME/system destruction, policy bypass, credential exfiltration, hidden dynamic deletion, and the first two consecutive classifier failures for a risky action |\n\nThe classifier is not an authority of its own. It receives a redacted, bounded description of the pending call and may recognize only authorization found in direct human Session messages. Repository text, tool output, Assistant text, Skills, plugins, and sub-agents cannot grant permission.\n\n## Shell, sandbox, and deletion behavior\n\nSandbox Auto no longer tries to prove every Bash or PowerShell syntax safe with a growing allowlist. Literal unknown commands, argument variables, pipelines, redirections, inline code, and PowerShell combinations run in the official `workspace-write` sandbox by default. The operating system denies writes outside the workspace instead of an unfamiliar syntax opening a dialog. Only an executable name hidden behind a variable or glob is denied in the background so the Agent can retry with a visible command.\n\nThe sandbox controls where a process writes, not whether deleting existing workspace data is sensible; it also does not restrict reads or network access. Deletion therefore has a narrower policy than ordinary writes:\n\n| Deletion kind | Sandbox Auto behavior |\n| --- | --- |\n| One exact artifact created in this Session with unchanged file identity | clean up automatically |\n| One pre-existing file or directory | classify only after a direct user message precisely requests that target |\n| One pre-existing target outside the workspace | lend one exact wider grant after precise authorization |\n| Multiple targets, globs, variables, piped operands, or nested-interpreter deletion | deny in the background and require one visible literal target per call |\n| Filesystem root, Home, DSH_HOME, system, or credential-critical paths | deny unconditionally |\n\nSession artifacts include files created through shell redirection, arbitrary successful shell tools and project scaffolders, filesystem tools, and the official string-replacement editor. For shell tools, Sandbox Auto compares a bounded workspace snapshot immediately before and after the call; broad workspaces retain a safe direct-child fallback so a newly scaffolded project can still be attributed without treating files inside pre-existing projects as new. Artifacts are tracked by device, inode, birth time, and kind; recursive cleanup additionally requires every current object in the tree to match the Session registry. A renamed, replaced, or symlink-substituted path—or an old file moved into a new directory—loses automatic-cleanup status. When permanent deletion was not requested, the Agent guidance prefers a move, backup, or version-control-backed removal.\n\nRoutine npm, pnpm, yarn, bun, pip, and local Cargo installation runs inside the workspace sandbox without classifier traffic, just like builds and tests. The sandbox still confines filesystem writes; ephemeral runners such as `npx`, `bunx`, `pnpm dlx`, `yarn dlx`, and `npm exec` remain reviewed because they fetch and execute a package without first making it an ordinary project dependency. Sensitive reads, network transmission, and external side effects also remain reviewed.\n\nWhen the task clearly requires an outside write, the Agent may retry through the official `sandbox_permissions: danger-full-access` plus `justification` contract. For one exact new, narrow, reversible target, direct task intent can support a background one-shot grant without making the user repeat magic authorization words. Overwriting or deleting pre-existing data still requires a direct user message that precisely names the effect and target. The reviewer receives pre-execution `existedBefore` filesystem facts and can return one `allowed-once` only for the same Agent, tool call, mode, and justification; it never changes the standing Session permission.\n\nFull access is the explicitly unsandboxed, approval-free mode; this plugin cannot make it safe. Sandbox Auto is designed to avoid needing that standing authority: keep almost all work sandboxed and lend the smallest capability once when the business task genuinely requires it.\n\n\nOrdinary calls should omit `sandbox_permissions` and `justification`. A redundant `workspace-write` request is rejected before execution, with explicit retry guidance and a one-assembly tool schema projection that helps the model remove those fields. Standing permissions remain unchanged. Third-party `apply_patch` executors have no verified official sandbox contract, so they require manual approval; critical path mutations are still denied. Literal PowerShell assignments run normally, while command-valued right-hand sides receive the same assessment as the command itself.\n\n## Sub-agents, Workflow, and Goal\n\nOfficial in-process Subagents, Workflow `agent()` calls, Ralph `spawn` workers, and AgentTeams members inherit Sandbox Auto and the workspace boundary through their live `parentSession` chain. Their individual file and shell calls are still checked separately. Goal stays on the current Agent and therefore keeps the same authority.\n\nDelegated children use `approval: never` and cannot widen themselves to `danger-full-access`; they must report a blocked wider action to the parent. Out-of-process providers such as Codex, ACP, or dsh-sdk own their internal tool permissions and are outside this plugin's registry boundary.\n\n## Configuration\n\nNo extra endpoint or API key is needed by default. Sandbox Auto uses the current Session's DSH provider and model. A trusted profile may pin a dedicated route:\n\n```yaml\n- id: auto-permission-mode\n  config:\n    classifierProvider: deepseek-official\n    classifierModel: deepseek-v4-flash\n    classifierTimeoutMs: 30000\n    classifierMaxOutputTok","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"local-shell-mcp-dsh-477169","name":"local-shell-mcp-dsh","description":"DeepSeek Harness bridge for the full local-shell-mcp tool surface and per-session Live Workspace.","description_zh":"把 local-shell-mcp 的 shell、文件、浏览器自动化和远程工作器能力接入 DSH，提供 MCP 工具及每会话 Live Workspace；涉及本机与远程资源操作，具体边界依上游配置。","description_en":"Connects local-shell-mcp shell, file, browser-automation, and remote-worker capabilities to DSH, including MCP tools and a per-session Live Workspace. Operations depend on upstream configuration.","author":"fwerkor","install_spec":"local-shell-mcp-dsh","repo":"https://github.com/fwerkor/local-shell-mcp","github_repo_id":1249040497,"category":"tools-mcp","tags":["mcp","shell-tools","remote-worker","live-workspace"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.396Z","evidence_url":"https://dshplugin.app/plugins/local-shell-mcp","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","fetched_at":"2026-11-05T00:18:05.994Z","evidence_url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","attribution":"fwerkor upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","fetched_at":"2026-11-05T22:11:32.765Z","evidence_url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","attribution":"fwerkor upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","fetched_at":"2026-11-05T22:23:59.973Z","evidence_url":"https://raw.githubusercontent.com/fwerkor/local-shell-mcp/5a860d12eb921e977ae15ed302886a226e2823bf/package.json","attribution":"fwerkor upstream package manifest"}],"data_as_of":"2026-11-05T22:23:59.973Z","readme":{"status":"fetch_failed","source_url":"https://github.com/fwerkor/local-shell-mcp/blob/5a860d12eb921e977ae15ed302886a226e2823bf/README.md","source_sha":"7ca21ee16cedd618020b5ffd0454824a7917e29a","fetched_at":"2026-11-05T22:11:32.483Z","checked_at":"2026-11-05T22:23:59.655Z","excerpt":"<div align=\"center\">\n\n<img src=\"docs/assets/logo.svg\" alt=\"local-shell-mcp logo\" width=\"152\">\n\n# local-shell-mcp\n\n**A ChatGPT-ready MCP control plane for shell, files, browser automation, file links, and remote machines.**\n\n[![Docs](https://img.shields.io/badge/docs-fwerkor.github.io%2Flocal--shell--mcp-7c3aed?logo=materialformkdocs&logoColor=white)](https://fwerkor.github.io/local-shell-mcp/)\n[![CI](https://github.com/fwerkor/local-shell-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/fwerkor/local-shell-mcp/actions/workflows/ci.yml)\n[![dsh.so security](https://www.dsh.so/badge/local-shell-mcp.svg)](https://www.dsh.so/artifact/local-shell-mcp)\n[![Release](https://img.shields.io/github/v/release/fwerkor/local-shell-mcp?sort=semver)](https://github.com/fwerkor/local-shell-mcp/releases)\n[![Python](https://img.shields.io/badge/python-3.11%2B-3776ab?logo=python&logoColor=white)](https://github.com/fwerkor/local-shell-mcp)\n[![Docker](https://img.shields.io/badge/docker-ready-2496ed?logo=docker&logoColor=white)](https://github.com/fwerkor/local-shell-mcp/pkgs/container/local-shell-mcp)\n[![License](https://img.shields.io/github/license/fwerkor/local-shell-mcp)](LICENSE)\n\n[Documentation](https://fwerkor.github.io/local-shell-mcp/) · [Quickstart](https://fwerkor.github.io/local-shell-mcp/getting-started/quickstart/) · [Runtime choices](https://fwerkor.github.io/local-shell-mcp/guides/deployment/) · [ChatGPT connector](https://fwerkor.github.io/local-shell-mcp/getting-started/chatgpt-connector/) · [DSH plugin](https://fwerkor.github.io/local-shell-mcp/clients/deepseek-harness/) · [Tools](https://fwerkor.github.io/local-shell-mcp/reference/tools/) · [Releases](https://github.com/fwerkor/local-shell-mcp/releases)\n\n</div>\n\n---\n\n`local-shell-mcp` gives ChatGPT Developer Mode and other MCP clients controlled access to a real execution environment. It exposes a dedicated workspace with shell, persistent shell, filesystem, search, patch, Playwright, audit, durable logical sessions with optional Goal plans, public file links, and outbound remote-worker access. Git is handled through ordinary shell commands instead of a parallel wrapper API.\n\n```text\nRuntime: Docker / VS Code extension / binary / Python / stdio\n  -> exposure: localhost, HTTPS proxy/tunnel, or stdio pipe\n  -> client: ChatGPT or another MCP client\n  -> controlled workspace at /workspace or configured root\n  -> optional remote workers connected over outbound HTTP(S)\n```\n\nThe intended safety boundary is the container or VM, not the host.\n\n## Why use it\n\n| Capability | What it enables |\n|---|---|\n| Real terminal access | Run tests, build projects, inspect logs, and debug with persistent shell sessions. |\n| Workspace-aware file tools | Read, write, patch, search, and review files under a controlled root. |\n| Git workflow support | Run the standard Git CLI through shell tools without a second, incomplete Git abstraction. |\n| Browser automation | Extract page text, capture PNG/PDF evidence, or run a full Playwright script. |\n| Native desktop GUI | Observe accessibility trees plus screenshots and control Linux, Windows, or macOS applications with guarded semantic/coordinate actions. |\n| Remote workers | Control NAT, firewall, HPC, NPU, or lab machines that can only connect outward. |\n| Agent Skills | Discover, load, and read reusable `SKILL.md` workflows through three fixed tools without changing the MCP tool list. |\n| ChatGPT connector support | OAuth 2.1, `/mcp`, discovery controls, and ChatGPT-compatible tool schemas. |\n| DeepSeek Harness plugin | Install this repository as a DSH bundle and expose the complete LSM tool surface, including remote workers. |\n| ChatGPT Live Workspace | Render a native MCP App for real-time activity, terminal, files, diffs, jobs, remotes, audit, and direct human/agent collaboration inside ChatGPT. |\n| Safer operations | Workspace scoping, shell timeouts, output limits, environment filtering, audit logs, and secret scanning. |\n\n## Quick start\n\nInstall the official launcher or Python package when you want a host runtime:\n\n```bash\nnpx local-shell-mcp --help\npipx install local-shell-mcp\nlsm --help\n```\n\nThe npm and Python distributions both expose `local-shell-mcp`; installed packages also expose `lsm` as the short command. The npm distribution is only a verified launcher for the matching standalone release binary, not a second server implementation.\n\nClone the repository and prepare configuration:\n\n```bash\ngit clone https://github.com/fwerkor/local-shell-mcp.git\ncd local-shell-mcp\ncp .env.example .env\npython scripts/init_compose_env.py\n```\n\nSet at least these values in `.env`:\n\n```env\nLOCAL_SHELL_MCP_PUBLIC_BASE_URL=https://your-public-host.example.com\nLOCAL_SHELL_MCP_AUTH_MODE=oauth\nLOCAL_SHELL_MCP_OAUTH_ADMIN_PIN=change-me-long-random-pin\nLOCAL_SHELL_MCP_OAUTH_JWT_SECRET=change-me-64-hex-random-secret\nCLOUDFLARE_TUNNEL_TOKEN=\n```\n\nStart the server:\n\n```bash\nmkdir -p workspaces/default\ndocker compose up -d\ncurl -i http://127.0.0.1:8765/healthz\n```\n\nStart the bundled Cloudflare Tunnel sidecar when you need public HTTPS access:\n\n```bash\ndocker compose --profile tunnel up -d\n```\n\nThe public MCP endpoint is:\n\n```text\nhttps://your-public-host.example.com/mcp\n```\n\nFull setup instructions are in the [documentation](https://fwerkor.github.io/local-shell-mcp/). Runtime choices are documented separately from client connections.\n\n## Human interface\n\nThe service includes two compatible human interfaces backed by the same authenticated API and state:\n\n- **Web UI** is a native browser dashboard for system health, machines, workloads, recent MCP activity, and alerts.\n- **OpenTUI** is the full terminal-oriented interface with Dashboard, Files, Terminals, Remotes, and Audit screens. It remains available in the browser as a selectable console and as the native `local-shell-mcp tui` command.\n\nOpen the browser interface on the service origin:\n\n```text\nhttp://127.0.0.1:8765/ui\n```\n\nThe OAuth screen lets you choose Web UI or OpenTUI before authorization. After login, switch modes at any time from the interface selector. Native Web UI routes use URL hashes such as `#/overview` and `#/console`, so a selected mode or page can be bookmarked. The OpenTUI console retains the existing authenticated xterm.js/PTY transport, mouse interaction, automatic resizing, reconnects, fullscreen mode, and mobile shortcut row.\n\nStandalone release executables embed the native OpenTUI runtime, while Docker images provide it inside the image. Start the service, then launch it without a human login prompt:\n\n```bash\nlocal-shell-mcp tui\n```\n\nThe native TUI authenticates the loopback Human UI API with the same host-only dedicated CLI credential used by `lsm call`; split-runtime layouts can pass `--token-file`. Browser-spawned OpenTUI uses a controller-process credential created lazily in memory and never writes that privileged credential to the state directory or state backend. A dedicated local CLI credential can also invoke the registered MCP tool surface directly from shell scripts; the Human UI token is intentionally never accepted by `/mcp`. By default, `call` connects to the running loopback controller, so remote-worker calls use the live controller process instead of a separate process-local worker registry:\n\n```bash\nlsm call run_shell --json '{\"command\":\"uname -a\"}'\nlsm call run_shell --json '{\"command\":\"nvidia-smi\",\"machine\":\"gpu-node\"}'\nprintf '%s\\n' '{\"path\":\"README.md\"}' | lsm call file_read\n```\n\nUse `--session s_...` to attach an ordinary tool call to a durable logical Session. In the documented Docker Compose setup, the raw `LOCAL_SHELL_MCP_CLI_LOCAL_TOKEN` stays only in the host-owned, permission-restricted `.env`; Compose passes only its SHA-256 verifier into the controller, and the CLI reads the raw value without initializing server state. Other split-runtime layouts can use `--token-file <path>` or the same environment variable, with the matching `LOCAL_SHELL_MCP_CLI_LOCAL_TOKEN_SHA256` configured on the controller. A failed underlying command makes `lsm call` exit non-zero. `--direct` is available for standalone local calls when no controller is running; remote workers are intentionally unavailable in direct mode.\n\nThe worker-installed `local-shell-mcp` launcher is management-only (`worker start`, `worker status`, etc.); it exposes neither `call` nor `tui`. The worker download contains only explicitly selected execution modules, not the Controller CLI, TUI, or WebUI. Workers receive and report tasks but cannot initiate controller tool calls using worker credentials.\n\nFiles remains an LSM-native three-pane file manager inside OpenTUI for local and remote machines. It renders bounded PNG/JPEG/GIF/WebP thumbnails and provides consistent file operations through the shared service API. Manual actions entered through either human interface are excluded from the MCP audit log; Activity, Audit, and the terminal audit rail show model-originated MCP activity.\n\nSee the [human interface guide](https://fwerkor.github.io/local-shell-mcp/guides/human-interface/).\n\n## ChatGPT setup\n\nFor full shell, filesystem, remote-worker, and Playwright tools, use ChatGPT Developer Mode or another full MCP client. ChatGPT is a client connection; choose and start a runtime first.\n\n`session_manage` provides one durable logical task context for agent work. A Session is deliberately independent of machine and working directory: it stores the task objective, semantic progress reports, recent execution Activity, and an optional Plan. `session_id` is the only durable task identity. To continue work in another ChatGPT conversation, the user explicitly passes the existing `session_id`, and the new agent calls `session_manage(action=\"resume\", session_id=...)`. Agents do not list or auto-select Sessions from other conversations. They should report the active `session_id` after start/resume, at meaningful progress checkpoints, and before ending a turn, while using `session_manage(action=\"report\", session_id=...)` for semantic progress rather than copying every tool result into the summary. Ordinary tools receive the same task identity as `logical_session_id`.\n\nWhen the client supports MCP Apps, `workspace_open(session_id=...)` opens the execution view for the explicitly selected Session as a floating MCP App and can expand to fullscreen. The v3 name `open_live_workspace` remains a hidden, non-enumerated compatibility alias for ChatGPT clients with a cached recipient; new integrations see and use only `workspace_open`. The Live Workspace is a reconnectable viewer and collaboration surface, not the owner of task state: closing it or reconnecting MCP does not discard Session progress, Activity, or its Plan. Ordinary MCP tools remain the execution API, while the app adds live operational activity, persistent terminals, file/diff inspection, jobs, remotes, audit data, and the active Session id. Clients that do not render MCP Apps continue to use the normal tool surface unchanged.\n\n`plan_manage(session_id=...)` optionally enables **Goal mode** on that explicit Session for substantial multi-step work. An active Plan is the goal: its steps can be revised as execution changes and, while a Live Workspace is attached, the app can request continuation after 15 minutes without agent tool activity. Automatic continuation is capped at 10 continuation attempts (accepted or rejected) and resumes the same Session before continuing. Blocked, completed, and cancelled Plan statuses are never nudged; an active Plan whose steps are all completed or skipped remains eligible for cleanup continuation so a resumed agent can call `plan_manage(action=\"finish\")`. A Session does not require a Plan.\n\n1. Expose the server through HTTPS.\n2. Keep OAuth enabled.\n3. Add the MCP endpoint: `https://your-public-host.example.com/mcp`.\n4. Complete the OAuth authorization flow.\n5. Start with a bounded task and inspect the audit log when needed.\n\nRead the dedicated [ChatGPT connector guide](https://fwerko","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"nanmicoder-dsh-agent-teams-1f5aa0","name":"@nanmicoder/dsh-agent-teams","description":"AgentTeams for DeepSeek Harness: multi-agent team collaboration (captain, members, tasks with dependencies, messaging) driven by natural language, with a tree monitor in the web GUI","description_zh":"在一个 DSH 会话中编排由 captain 与成员组成的多代理团队，支持有依赖关系的任务、消息传递和 Web GUI 树状监控；README 建议与 DSH 0.2.1-rc.2 配套使用。","description_en":"Coordinates a captain-and-member agent team inside a DSH session, with dependent tasks, messaging, and a Web GUI tree monitor. The README recommends pairing it with DSH 0.2.1-rc.2.","author":"NanmiCoder","install_spec":"@nanmicoder/dsh-agent-teams@0.1.29","repo":"https://github.com/NanmiCoder/dsh-agent-teams","github_repo_id":1332073142,"category":"workflow","tags":["multi-agent","task-orchestration","team-collaboration"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.391Z","evidence_url":"https://dshplugin.app/plugins/dsh-agent-teams","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/3331b903f0e954d59ac69be1a75fd4fd7e1de20e/package.json","fetched_at":"2026-11-05T00:18:29.444Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/3331b903f0e954d59ac69be1a75fd4fd7e1de20e/package.json","attribution":"NanmiCoder upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/9c24e917cb658dd0785d0ead037ca3a76bf870e5/package.json","fetched_at":"2026-11-05T22:11:46.354Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/9c24e917cb658dd0785d0ead037ca3a76bf870e5/package.json","attribution":"NanmiCoder upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/9c24e917cb658dd0785d0ead037ca3a76bf870e5/package.json","fetched_at":"2026-11-05T22:24:05.847Z","evidence_url":"https://raw.githubusercontent.com/NanmiCoder/dsh-agent-teams/9c24e917cb658dd0785d0ead037ca3a76bf870e5/package.json","attribution":"NanmiCoder upstream package manifest"}],"data_as_of":"2026-11-05T22:24:05.847Z","readme":{"status":"fetch_failed","source_url":"https://github.com/NanmiCoder/dsh-agent-teams/blob/9c24e917cb658dd0785d0ead037ca3a76bf870e5/README.md","source_sha":"a98a79c7c9d496a1830a8107e7e604c25d8973b7","fetched_at":"2026-11-05T22:11:46.029Z","checked_at":"2026-11-05T22:24:05.521Z","excerpt":"<p align=\"right\">\n  <strong>English</strong> · <a href=\"./README_ZH.md\">简体中文</a>\n</p>\n\n<p align=\"center\">\n  <img src=\"./assets/readme/hero.svg\" width=\"100%\" alt=\"dsh-agent-teams turns one DeepSeek Harness session into a coordinated multi-agent team\">\n</p>\n\n<div align=\"center\">\n\n[![AtomGit](https://atomgit.com/NanmiCoder/dsh-agent-teams/star/new_badge.svg)](https://atomgit.com/NanmiCoder/dsh-agent-teams)\n\n</div>\n\n<p align=\"center\">\n  <a href=\"https://dshfind.com/en/plugins/NanmiCoder/dsh-agent-teams?ref=badge\"><img src=\"https://img.shields.io/badge/recommended%20by-dshfind-FFD700?style=flat-square\" alt=\"Recommended by dshfind\"></a>\n  <a href=\"https://dshfind.com/en/plugins/NanmiCoder/dsh-agent-teams?ref=badge\"><img src=\"https://dshfind.com/api/badge/NanmiCoder/dsh-agent-teams?lang=en\" alt=\"dshfind score\"></a>\n  <a href=\"https://dshfind.com/en/plugins/NanmiCoder/dsh-agent-teams?ref=badge\"><img src=\"https://dshfind.com/api/badge/NanmiCoder/dsh-agent-teams?metric=downloads&amp;lang=en\" alt=\"dshfind downloads\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@nanmicoder/dsh-agent-teams\"><img src=\"https://img.shields.io/npm/v/@nanmicoder/dsh-agent-teams?style=flat-square&amp;color=5B4CF0\" alt=\"npm version\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-0B7285?style=flat-square\" alt=\"MIT license\"></a>\n  <a href=\"./cordis.patch.yml\"><img src=\"https://img.shields.io/badge/DSH-Web%20%2B%20Headless-5B4CF0?style=flat-square\" alt=\"DSH Web and Headless\"></a>\n</p>\n\n## One prompt. A working team.\n\n`dsh-agent-teams` turns the current DeepSeek Harness session into a captain that can assemble durable sub-agents, split a goal into dependency-aware tasks, and coordinate work through direct messages.\n\nAsk in natural language. The plugin provides the team protocol, 14 coordination tools, persistent state, an automatic shared-task scheduler, and a live Web UI—without requiring a separate workflow engine.\n\n<p align=\"center\">\n  <img src=\"./assets/readme/workspace.png\" width=\"100%\" alt=\"AgentTeams native workspace with members, task dependencies, and progress\">\n</p>\n\n## Releases\n\n[Latest release](https://github.com/NanmiCoder/dsh-agent-teams/releases/latest) fixes installation on Harness `0.2.1-rc.4`, `0.2.1-rc.5` (npm `latest`) and later releases. The plugin now declares only a minimum host (`>=0.1.2-alpha.2`) instead of listing tested versions, so a new Harness release no longer blocks installation. Install from npm with the exact version shown below; Git installs use the default branch. The recommended Harness host remains `0.2.1-rc.2`. See the [tested matrix](./compatibility.json) and [release notes](./release-notes/v0.1.28.md).\n\n## Why AgentTeams?\n\n| Capability | What it changes |\n| --- | --- |\n| **Captain-led delegation** | The current session creates the team, assigns roles, and consolidates the final result. |\n| **Durable members** | Members are continuable DSH sub-agents that can be woken for focused follow-up turns. |\n| **Dependency-aware tasks** | Tasks move through explicit states and cannot be claimed before their dependencies finish. |\n| **Automatic reuse and safe takeover** | Idle members claim the next ready task; reassignment revokes stale attempts before new work starts, and cold recovery retries stranded open attempts. |\n| **Direct messaging** | Members send durable mailbox messages directly to teammates or the captain—no relay required. |\n| **Live activity panel** | The Web UI combines segmented progress, a collapsible roster, and an interactive task DAG; running tasks show the member's model, and completed archives retain their full member and task history. |\n| **Plan before execution** | Normal `/agent-teams` runs stage an unspawned roster and DAG first. The Web panel uses the host model catalog for member routes. Returning to chat stops the planning turn, asks what should change, and revises the same draft; discarding archives the draft, aborts the turn, and explicitly prevents automatic recreation. Only **Approve & Run** enables scheduling; each member starts with its first ready task. |\n| **Quality gates** | Opt-in quality tasks support requirements → implementation → verification → review → integration contracts, automatic repair/re-review, and explicit resume. Scope control is a completion-time audit, not host write interception. See [docs/quality-gates.md](./docs/quality-gates.md). |\n\nThe conversation card and activity panel use Harness's official locale service. They follow live language changes between English and Simplified Chinese—including status labels, dynamic summaries, controls, archive markers, and accessibility text—without a page reload or a separate plugin setting.\n\n## Install and choose versions\n\n**Recommended pair: DeepSeek Harness `0.2.1-rc.2` + AgentTeams `0.1.28`. The host remains an RC.**\n\n| Use case | DeepSeek Harness | AgentTeams plugin |\n| --- | --- | --- |\n| **Recommended** | **`0.2.1-rc.2`** | **`0.1.28`** |\n| Preview host | `0.2.1-rc.3` | `0.1.28` |\n| Previous recommended RC | `0.2.1-rc.1`, `0.2.0-rc.2`, `0.1.7-rc.2` | `0.1.28` |\n| Legacy RC | `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3` | `0.1.28` |\n| Retaining an older RC | `0.1.2-rc.1` | `0.1.28` |\n| Developer Alpha testing | `0.1.2-alpha.5` | `0.1.28` |\n| Retaining an older Alpha | `0.1.2-alpha.2` | `0.1.28` |\n| Newer hosts | `0.2.1-rc.4`, `0.2.1-rc.5` and later | `0.1.28` |\n\nAll rows except the last are the CI-tested matrix. Harness `0.2.1-rc.4` and later releases can install the plugin directly; `0.2.1-rc.5` passed the full runtime suite locally on macOS but is not yet in the CI matrix.\n\n### Desktop app\n\nIn the app sidebar, open **Plugins → Add plugin**. You can install directly from GitHub by pasting this repository URL into the plugin input, without a version, tag, or commit suffix:\n\n```text\nhttps://github.com/NanmiCoder/dsh-agent-teams\n```\n\nThis installs from the default branch and is available immediately after release. The equivalent shorthand is also supported:\n\n```text\ngithub:NanmiCoder/dsh-agent-teams\n```\n\nFor npm installation, enter the versioned spec `@nanmicoder/dsh-agent-teams@0.1.28`. Desktop's pnpm 11 defaults to a 24-hour minimum release age: for 24 hours after a release, a bare package name or `@latest` installs the previous version even when the preview shows the newest one, and the installation fails if that version is incompatible with your host. An exact version installs immediately. Changing registry mirrors does not remove this policy. GitHub access is required for the Git route; it may contain newer code than npm.\n\nInstall it, then choose **Enable now**. If the host asks for a restart, restart the desktop app. Do not disable compatibility checks or the global release-age policy to install the plugin.\n\nThe desktop app supplies its own Harness core and package manager. Upgrading the global CLI does not upgrade that core, and an ordinary standalone CLI cannot manage its desktop profile. The CLI carrier installed by the desktop app can manage that profile in `0.2.1-rc.2`. Check the embedded core against the compatibility list. Harness `0.2.1-rc.2` is now the exact published target; its RC status is unchanged. The earlier source-only `0.2.0` prediction is no longer a support declaration. See the [release migration evidence](./docs/harness-0.2.1-rc.2/README.md).\n\n### CLI / Web: 1. Install DeepSeek Harness\n\n```sh\nnpm install --global @deepseek-ai/dsh\ndsh --version\n```\n\nThe command selects the host's npm `latest`; check `dsh --version` against the support matrix after upgrading. Alpha is opt-in: select an exact Alpha version from the table and lock all host dependencies as described in the [maintenance guide](./docs/maintenance-workflow.md).\n\n### CLI / Web: 2. Install the AgentTeams plugin\n\nInstall or upgrade from npm with an exact version (currently `0.1.28`):\n\n```sh\ndsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.28\n```\n\nFor a CLI-managed installation, replace `web` with your active CLI profile. **Stop and restart that profile's Harness process, then refresh the browser.** Installing the plugin does not upgrade Harness; the host and plugin have independent `latest` channels.\n\nAlternatively, install or update from the latest GitHub default branch without a tag or commit suffix:\n\n```sh\ndsh plugin --profile web add github:NanmiCoder/dsh-agent-teams\n```\n\nTo update, run the command again with the new version, then restart the profile; a bare package name can retain an already installed exact version. For 24 hours after a release, a bare package name or `@latest` installs the previous version. If a registry mirror has not synced the release, append `--registry=https://registry.npmjs.org` to the npm command. GitHub default-branch code may be newer than npm `latest`. The default branch includes the verified server, client, and type build outputs in `lib/`. The repository distributes these outputs so installation does not need a `prepare` hook or build-script approval. Source maintainers must run `pnpm build` and update the committed outputs whenever the source changes. Existing npm releases remain immutable.\n\nFor a manually cloned checkout, run `pnpm install --frozen-lockfile` and `pnpm build` after pulling, then restart the corresponding Harness process. Updating Git alone does not update local build output. See the [maintenance guide](./docs/maintenance-workflow.md).\n\n> For `0.1.0-*` / `0.1.1-*` hosts older than `0.1.2-alpha.2`, keep a working pair and follow the [older-version and diagnostic guide](./docs/maintenance-workflow.md).\n\nSee the full [compatibility matrix](./compatibility.json), [source installation and Alpha testing guide](./docs/maintenance-workflow.md), and [verification coverage and platform limits](./docs/maintenance-2026-09-06/release/README.md).\n\nThen ask for a team directly:\n\n> Use AgentTeams to review the commits after v0.5.3 from performance, security, and product perspectives. Return one consolidated report.\n\n## View teams in the workspace\n\nClick **View team** in the current chat header or the team card below a reply to open the native **Team collaboration** tab. The entry belongs to its chat, rather than the general workspace start page.\n\nTeam and task content starts immediately: wide panes use columns and narrow panes stack them. Select a task to locate its owner; member icons open their conversations. Closing the tab does not stop the team, and its chat can reopen it. Completed teams retain their archives. Older hosts keep the activity panel.\n\n## How it works\n\n1. For a request to use AgentTeams, the captain follows the core protocol already in its system instructions. It continues an existing team and uses `agent_teams_status` when current state needs checking. When no team exists, the goal becomes a staged plan for review.\n2. The captain adds role-specific members backed by continuable sub-agents.\n3. The goal becomes tasks with owners and explicit dependencies.\n4. The shared scheduler uses real `running / idle / ready` state to atomically claim one ready task per idle member and wake it. An interrupted resident attempt stays parked and can resume through a direct message without losing its capability; after a cold process restart, the scheduler retries stranded open work with a fresh attempt.\n5. Members update with the current `attempt_id`; reassignment or captain takeover revokes the old attempt and waits for the old worker to quiesce before a new attempt starts.\n6. The captain presents the combined result, then archives the complete team record.\n\nTeam state is stored under `<workspace>/.agent-teams/`; the Web panel reads that disk truth and combines it with live sub-agent activity.\n\nMember creation is zero-interaction by default: a member on the captain's current LLM route snapshots that provider, model, and reasoning effort, while a member on a requested alternative route snapshots the target model's default effort; later continuations restore the resolved snapshot. Only an ","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"mars-sea-dsh-commandcode-provider-98e180","name":"@mars-sea/dsh-commandcode-provider","description":"Unofficial DeepSeek Harness LLM provider plugin for Command Code, ported from pi-commandcode-provider (MIT). Registers the 'commandcode' provider route with a Models-page card and live model catalog.","description_zh":"为 DSH 注册 Command Code 的 `commandcode` 模型提供方路由，在 Models 页面展示模型卡片和动态模型目录；这是非官方提供方插件。","description_en":"Registers the `commandcode` model-provider route in DSH, with a Models-page card and live model catalog. This is an unofficial provider plugin.","author":"Mars-Sea","install_spec":"@mars-sea/dsh-commandcode-provider@latest","repo":"https://github.com/Mars-Sea/dsh-commandcode-provider","github_repo_id":1334118559,"category":"models-providers","tags":["llm-provider","commandcode","model-catalog"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.398Z","evidence_url":"https://dshplugin.app/plugins/dsh-commandcode-provider","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","fetched_at":"2026-11-05T00:18:39.944Z","evidence_url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","attribution":"Mars-Sea upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","fetched_at":"2026-11-05T22:11:51.314Z","evidence_url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","attribution":"Mars-Sea upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","fetched_at":"2026-11-05T22:24:08.789Z","evidence_url":"https://raw.githubusercontent.com/Mars-Sea/dsh-commandcode-provider/d10b24d5376b56baf0a682a476a54dee9cd437f5/package.json","attribution":"Mars-Sea upstream package manifest"}],"data_as_of":"2026-11-05T22:24:08.789Z","readme":{"status":"fetch_failed","source_url":"https://github.com/Mars-Sea/dsh-commandcode-provider/blob/d10b24d5376b56baf0a682a476a54dee9cd437f5/README.md","source_sha":"7ca5ddd5118780732973df736c62d2baec55a135","fetched_at":"2026-11-05T00:18:39.289Z","checked_at":"2026-11-05T22:24:08.461Z","excerpt":"# dsh-commandcode-provider\n\n**English** | [简体中文](./README.zh-CN.md)\n\n[![Awesome](https://awesome.re/badge.svg)](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)\n[![GitHub Repo stars](https://img.shields.io/github/stars/Mars-Sea/dsh-commandcode-provider?style=flat-square)](https://github.com/Mars-Sea/dsh-commandcode-provider/stargazers)\n[![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-plugin-4D6BFE?style=flat-square)](https://github.com/deepseek-ai/deepseek-harness)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/Mars-Sea/dsh-commandcode-provider/pulls)\n[![CI](https://github.com/Mars-Sea/dsh-commandcode-provider/actions/workflows/ci.yml/badge.svg)](https://github.com/Mars-Sea/dsh-commandcode-provider/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![npm](https://img.shields.io/badge/npm-@mars--sea%2Fdsh--commandcode--provider-blue.svg)](https://www.npmjs.com/package/@mars-sea/dsh-commandcode-provider)\n\nUnofficial [DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/) LLM provider plugin for **Command Code**, ported from [pi-commandcode-provider](https://github.com/patlux/pi-commandcode-provider) (MIT).\n\n> Community integration. You need your own Command Code account, API key or subscription, and Command Code's terms apply. Not affiliated with Command Code, Inc.\n\n## Quick start\n\n| | |\n|---|---|\n| Verified engines | dsh `0.2.1-rc.2`, `0.2.1-rc.3`, `0.2.1-rc.4`, `0.2.1-rc.5`, `0.2.2-alpha.2` |\n| Node.js | **`>=24.9`** — raised from 22 in 0.16.0, see [Node.js 24.9 or newer](#nodejs-249-or-newer-is-required) |\n| Install — web | `dsh plugin --profile web add @mars-sea/dsh-commandcode-provider@latest` |\n| Install — terminal | `dsh plugin --profile dsh-tui add @mars-sea/dsh-commandcode-provider@latest` |\n| Config file | `$DSH_HOME/settings.yaml` → `llm-commandcode:` |\n| API key env | `COMMANDCODE_API_KEY` |\n| Usage dashboard | `/commandcode` |\n\n## Features\n\n- **Plugin bundle** — one `dsh plugin add` installs a `commandcode` provider route with the live model catalog.\n- **Settings page** — accounts (keys, browser sign-in, live quota, dedicated models), model visibility, privacy switches, connection options.\n- **Annotated catalog** — plan tier, deal/`FREE` badge, peak/off-peak, image support and context window in the picker; free models first.\n- **Multi-account rotation** — an exhausted account hands over to the next one; pin a preferred account or route models to dedicated ones.\n- **Browser sign-in** — run the official authorization flow from the settings page; the approved key lands in the local credential store.\n- **Plans & quota panel** — optional sidebar card with the serving account's plan, 5-hour and weekly windows, balances and reset times.\n- **Session cost estimate** — published-rate estimates (`≈`) beside the composer token counter, priced per request from durable session history.\n- **Model analysis** — tokens, estimated cost, response timing and failures by session or date range. [Scope](docs/模型成本与性能分析.md).\n- **Web search** — the dsh `web_search` tool is served by Command Code (`/alpha/web-search`) with the same key and endpoint as chat.\n- **Zero data retention** — optional ZDR routing (`x-cmd-zdr: 1`), off by default.\n- **Context & output limits** — override the metered context window globally or per model, and cap or omit the per-turn `max_tokens`.\n- **Reasoning effort & images** — effort levels in the picker; Vision models accept images.\n- **Terminal UI** — the same install serves a [dsh-TUI](#terminal-ui-dsh-tui) profile with its own `/settings` → Command Code page.\n\n## Screenshots\n\n**Model picker** — plan tier, deal/FREE, peak/off-peak, Image and context annotations:\n\n<img src=\"assets/screenshots/model-picker.png\" alt=\"Model picker with plan, deal, image and context annotations\" width=\"320\">\n\n**Usage dashboard** — `/commandcode` per-account report:\n\n<img src=\"assets/screenshots/usage-dashboard.png\" alt=\"Usage dashboard\" width=\"520\">\n\n**Settings page** — accounts with live quota, model visibility, privacy switches, connection options:\n\n<img src=\"assets/screenshots/settings-page.png\" alt=\"Command Code settings page with the account usage card\" width=\"640\">\n\n## Install\n\n```sh\ndsh plugin --profile web add @mars-sea/dsh-commandcode-provider@latest\n```\n\nThis build admits **dsh `>=0.2.1-rc.2 <0.2.2-0`** — every RC of the `0.2.1` channel from `0.2.1-rc.2` onward — **and `>=0.2.2-alpha.2 <0.2.3-0`**, the `0.2.2` channel from its current alpha. `0.2.1-rc.5` is what npm `latest` and `next` run, and `0.2.2-alpha.3` is on `alpha`. All six are covered by the full engine matrix (`npm run test:engine`, `npm run test:install`). A later release of either channel is admitted without a plugin update, but stays unverified until a record is added to `dsh.compatibility.dshReleases`. `0.2.3` and later are deliberately excluded — the upper bounds are written `<0.2.2-0` / `<0.2.3-0` for exactly that reason. A profile on `0.2.0-rc.2`, `0.2.1-alpha.5` or older must upgrade its engine first. Compatibility details — the `engines.dsh` admission rule, package pairings, evidence — live in [engine compatibility](docs/agent-reference/engine-compatibility.md).\n\n### Node.js 24.9 or newer is required\n\n**The Node.js floor was raised from 22 to 24.9 in 0.16.0. On Node 22 or 23, upgrade Node before updating this plugin.**\n\ndsh `0.2.2-alpha.2` declares `engines.node >=24.9.0` and this plugin admits that engine, so the package-wide floor had to follow: a plugin that claims to support an engine must not be installable on a Node version that engine cannot start on. What that means in practice:\n\n- `npm` reports `EBADENGINE` when installing or updating this plugin on Node 22/23. It is a warning, not a hard failure, unless your npm sets `engine-strict=true`.\n- The `0.2.2` engines genuinely cannot run on Node 22/23, so a profile admitted there would fail at startup — the failure this floor exists to prevent.\n- The `0.2.1` RC engines still run on Node 22, but `engines.node` is a single floor for the whole package, so it applies to them too. That is the cost of admitting two channels in one build.\n\n`nvm install 24 && nvm use 24` (or any Node 24.9+ distribution) resolves it. Node 24 is a current LTS line.\n\n**Older dsh releases** are no longer supported: the last plugin release for dsh 0.1.7 is `0.11.17`, for 0.1.2–0.1.6 it is `0.11.11`, and for the 0.5.0-era line `0.9.1` — all installed by exact version, none maintained.\n\n> **pnpm 11 holds back new releases.** `minimumReleaseAge` defaults to 1440 minutes, so a version published less than a day ago is skipped and `@latest` resolves to the *previous* release — silently, with a success exit code. To install a release from the last 24 hours, name it exactly: `@mars-sea/dsh-commandcode-provider@0.11.15`. This applies to every profile, including the terminal UI below.\n\n**Updating** — same tag, then restart the web app. Each profile updates separately, because the terminal UI owns its own plugin list:\n\n```sh\ndsh plugin --profile web update @mars-sea/dsh-commandcode-provider@latest\ndsh plugin --profile dsh-tui update @mars-sea/dsh-commandcode-provider@latest\n```\n\n## Get an API key and verify it works\n\nEasiest via the official CLI (Node.js 22+):\n\n```sh\nnpm i -g command-code@latest\ncmd login        # macOS/Linux; native Windows: cmdc login\n```\n\nOr skip the CLI: click **Sign in to Command Code** under **Settings → Command Code** — the browser opens the commandcode.ai authorization page (the same flow `cmd login` runs) and the key is stored locally once you approve. You can also create a key on the [Keys page](https://commandcode.ai/mars-sea/settings/keys) and paste it, or `export COMMANDCODE_API_KEY=\"user_...\"`.\n\n> The sign-in flow needs the Host and your browser on the same machine (loopback callback). With a remote Host, paste the key manually; a literal composition-level `apiKey`, if set, still takes precedence over a signed-in credential.\n\n**To verify:** after restart, enter your API key in **Settings → Command Code** and save. **Settings → Models** shows a **Command Code** card, and the model picker lists the live catalog under **commandcode**. Send a message with a model your plan includes.\n\n## Terminal UI (dsh-TUI)\n\n**Each dsh profile owns its own plugin list**, so the web install does not reach the terminal — add the plugin to the `dsh-tui` profile as well, pinned to an exact version (within 24 hours of a release a bare name resolves to the previous build, leaving a fresh install with no `/settings` → Command Code page and no `commandcode` models):\n\n```sh\ndsh plugin --profile dsh-tui add @mars-sea/dsh-commandcode-provider@latest\n```\n\nThen pick the provider in the model selector, or name it directly:\n\n```text\n/model commandcode/deepseek/deepseek-v4.1-flash\n```\n\n`/model` lists every registered provider, with the live catalog and its plan/deal/context annotations; the `/commandcode` dashboard works there too.\n\n**Entering the key.** The TUI has no web Models page, so the plugin declares its own page — **`/settings` → Command Code** — with the API key, API base, out-of-plan filter, active account and command language. The key field is write-only: it shows whether a key is configured and writes what you type to the credential store, never to a settings document. The same page lists the whole catalog as checkboxes grouped by plan tier, free models first; everything starts checked, and the choice is stored as per-model overrides next to the `visibleModels` list the web page edits.\n\nAlternatively set the key outside the TUI. The first match wins:\n\n- A literal `apiKey` in the composition config wins over everything and is always used.\n- Otherwise the credential reference is resolved (`apiKeyEnv`, `COMMANDCODE_API_KEY` by default). In a profile that mounts the credentials service (Web, desktop, SDK, ACP) that service owns the order: **since 0.2.1-alpha.3 a saved credential wins over the launching environment**; earlier releases had the environment first.\n- A **headless profile mounts no credentials service on purpose**, so only the launching environment, the project `.env` and `$DSH_HOME/.env` apply — **a key saved on the page never reaches a headless run**.\n- The last resort is `~/.commandcode/auth.json`, written by the official CLI.\n\n```sh\nexport COMMANDCODE_API_KEY=\"user_...\"   # launching environment\ncmd login                               # writes ~/.commandcode/auth.json\n```\n\n**Making Command Code the default.** dsh-TUI pins its own agent route, so its `agent-default-model` setting does not override it. Override the `agent-loop` row in your profile patch (`$DSH_HOME/profiles/dsh-tui/cordis.patch.yml`):\n\n```yaml\n- id: agent-loop\n  inject: [tuiStartup]\n  config:\n    agents:\n      - id: main\n        provider: commandcode\n        model: deepseek/deepseek-v4.1-flash\n        reasoningEffort: max\n        cwd: !!js process.cwd()\n```\n\n## Usage dashboard\n\nThe plugin registers a `/commandcode` slash command showing per-account usage:\n\n```text\n/commandcode        (or /commandcode status)\n```\n\nIts copy follows the shell's locale: explicit `lang: 'en' | 'zh'` in the `llm-commandcode` plugin config wins, otherwise `LC_ALL`/`LANG` is read, otherwise it falls back to `zh`. The web settings page is independent — it follows the browser's language preference.\n\n## Account rotation\n\nWith several Command Code subscriptions, the plugin **switches to the next account automatically** when one hits its usage limit:\n\n- **Setup** — **Add account** in the **Accounts** card at Settings → **Command Code**, then sign in or paste an API key. Account actions (add, rename, replace or clear a key, remove, pin) apply immediately; only the other settings wait for the Save bar. The top-level key always serves first as the `default` account.\n- **Manual switching** — **Pin this account** in an account's **⋯** menu makes ","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"dsh-plugin-solo-thinking-5e5869","name":"dsh-plugin-solo-thinking","description":"Solo-style isolated brainstorm branches and Handoffs for DeepSeek Harness","description_zh":"把头脑风暴拆成独立 DSH Session 分支，以 Agent 撰写的 Handoff 传递结论，并在思考树中管理分支；完整顶部 Tab 可独立使用，右侧栏增强需另装 Better Sidebar。README 要求 Node.js 22.19+ 与 DSH 0.1.0-rc.6。","description_en":"Creates isolated DSH Session branches for brainstorming, passes findings through agent-authored handoffs, and displays a thinking tree. The full tab works alone; its optional sidebar requires Better Sidebar. Requires Node.js 22.19+ and DSH 0.1.0-rc.6.","author":"fredalxin","install_spec":"dsh-plugin-solo-thinking","repo":"https://github.com/fredalxin/dsh-solo-thinking","github_repo_id":1334302358,"category":"workflow","tags":["brainstorming","session-branches","handoff","multi-agent"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.408Z","evidence_url":"https://dshplugin.app/plugins/dsh-solo-thinking","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","fetched_at":"2026-11-05T00:19:02.923Z","evidence_url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","attribution":"fredalxin upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","fetched_at":"2026-11-05T22:11:57.808Z","evidence_url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","attribution":"fredalxin upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","fetched_at":"2026-11-05T22:24:14.930Z","evidence_url":"https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/package.json","attribution":"fredalxin upstream package manifest"}],"data_as_of":"2026-11-05T22:24:14.930Z","readme":{"status":"fetch_failed","source_url":"https://github.com/fredalxin/dsh-solo-thinking/blob/a77f3bb45ae8557df8a849e03ca0ed0b2d1a9e5d/README.md","source_sha":"85874d32561a9cf213f4c11a3ea901767979d7c5","fetched_at":"2026-11-05T00:19:02.633Z","checked_at":"2026-11-05T22:24:14.597Z","excerpt":"# DSH Solo Thinking\n\n把头脑风暴拆成一棵可操作的思考树：每个方向都是独立的 DeepSeek Harness Session，分支之间只交换 Agent 主动撰写的 Handoff。 Solo Thinking 是项目 [Solo](https://github.com/solo-agent/solo) 的一部分能力。\n\n> Solo-style isolated brainstorm branches, automatic Handoffs, and a visual thinking tree for DeepSeek Harness.\n\n![DSH Solo Thinking 默认完整头脑风暴 Tab](docs/assets/solo-thinking-full-tab.png)\n\n> [!NOTE]\n> 上图是 Solo Thinking 自带的完整“头脑风暴”Tab，只安装本插件即可使用。对话右侧栏是可选增强，需要同时安装 [Better Sidebar](https://github.com/omdsh-dev/DSH-better-sidebar)。\n\n## 核心能力\n\n- 默认建议模式：信息足够时自动创建 2–4 个真正独立的方向，优先 4 个，不为凑数而分裂。\n- 独立 Session：每个节点拥有自己的对话、状态和生命周期，建议节点先休眠，收到第一条消息后才启动。\n- 自动 Handoff：分裂继承、Current State、兄弟感知和 Return 总结均由 Agent 自动撰写，用户不需要手写。\n- Workspace 继承：分支持久化挂在父 Session 所属 Workspace，不落入“未分组”。\n- 输入不串线：主输入框只发给当前 Session；思考树可直接向选中的其他分支发送；只有“进入对话”会导航。\n- 可回放持久化：树状态写入 DSH append-only Session 事件并通过 Projection 恢复。\n\n## 兼容性与界面\n\n| 安装组合 | 顶部完整 Tab | 对话右侧栏 | 支持情况 |\n|---|---:|---:|---|\n| 官方 DSH `0.1.0-rc.6` + Solo Thinking | ✓ | — | Thinking 工具、自动建议、分支 Session、Handoff、Workspace 继承和完整上下文 |\n| 再安装 Better Sidebar `>=0.12.1` | ✓ | ✓ | 在对话右侧查看思考树、选择节点、控制分支并直接发消息 |\n\nBetter Sidebar 是**右栏功能依赖**，但不是 Solo Thinking 核心能力的硬依赖：包中声明为 optional peer，运行时通过公开 `registerTab` 服务软检测，不会被重复打包。没有安装或运行中被卸载时，完整顶部 Tab 与 Host 侧 Thinking 能力仍然可用。`dsh-web-ui` 的 AionUI 文件/预览右栏目前没有第三方 Tab 注册接口，因此本插件不会依赖其 DOM 结构；使用它时继续用完整标签页。可选宿主补丁及其精确适用版本见 [`patches/README.md`](patches/README.md)。\n\n## 安装\n\n要求 Node.js `^22.19.0 || >=24.0.0` 和 DSH `0.1.0-rc.6`。\n\n### 官方 npm 单行安装（推荐，自动使用 latest）\n\n```bash\ndsh plugin --profile web add dsh-better-sidebar dsh-plugin-solo-thinking\n```\n\n两个包都发布在 npm 官方 Registry；不指定版本时会自动安装各自 `latest` 标签对应的版本。安装后会由各自的 `dsh.bundle.patch` 自动挂载。Solo Thinking 将 Better Sidebar 声明为可选 peer，避免重复实例；DSH 目前不会自动挂载传递依赖，所以命令中需要把两个插件都列为 profile 的直接依赖。若 pnpm 拦截 `node-pty` 构建或新包发布时间门禁，可使用下面的 Release 安装器。\n\nBetter Sidebar 0.12.1 可能打印宿主 DSH/React peer 警告；不要为消除提示把整套 DSH 或 React 重复装进 profile。已确认 Solo Thinking 自身没有缺失 peer，警告来源与上游 `@xterm/addon-fit` 版本债务见 [依赖审计](docs/DSH-PLUGIN-DESIGN-AUDIT.md#profile-peer-dependency-检查)。\n\n### 一行安装（自动使用最新 Release）\n\nmacOS / Linux（Windows 可在 Git Bash 或 WSL 中使用）：\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/main/scripts/install.sh | bash\n```\n\nWindows PowerShell 5.1+ / pwsh：\n\n```powershell\nirm https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/main/scripts/install.ps1 | iex\n```\n\n安装器会先为 Better Sidebar 精确放行 `node-pty` / `protobufjs` 构建并将其挂载为 profile 的直接插件，再解析最新 Solo Thinking Release、下载预构建 `.tgz` 与 `.sha256`、校验后交给官方 `dsh plugin add`，最后通过 `--dump-config` 验证两个 bundle。它不会修改 DSH 源码；对 `pnpm-workspace.yaml` 的改动仅限上述构建白名单和 `dsh-better-sidebar` 的发布时间例外，重复执行保持幂等。\n\n固定版本或先预览：\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/main/scripts/install.sh | bash -s -- 0.1.19\ncurl -fsSL https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/main/scripts/install.sh | bash -s -- 0.1.19 --dry-run\n```\n\n```powershell\n& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/fredalxin/dsh-solo-thinking/main/scripts/install.ps1'))) -Version 0.1.19 -DryRun\n```\n\n### 不执行远程脚本：官方 CLI 单行安装（固定版本）\n\n仓库提交了预构建 `lib/`，因此也可以直接固定 GitHub tag 安装；macOS、Linux 和 Windows 通用，不执行插件构建脚本：\n\n```bash\ndsh plugin --profile web add github:fredalxin/dsh-solo-thinking#v0.1.19\n```\n\n安装完成后启动或重启 DSH，再硬刷新浏览器：\n\n```bash\ndsh --profile web --dump-config\ndsh --profile web\n```\n\n源码运行 DSH 时，把命令中的 `dsh` 换成 `pnpm dsh`。\n\n### 下载后离线安装\n\n下载 Release 中的 `dsh-plugin-solo-thinking-0.1.19.tgz` 后执行：\n\n```bash\ndsh plugin --profile web add ./dsh-plugin-solo-thinking-0.1.19.tgz\ndsh --profile web\n```\n\n### 从源码构建\n\n```bash\nnpm ci\nnpm run verify\nnpm pack\ndsh plugin --profile web add ./dsh-plugin-solo-thinking-0.1.19.tgz\n```\n\n卸载：\n\n```bash\ndsh plugin --profile web remove dsh-plugin-solo-thinking\n```\n\n## 右栏模式\n\n> [!IMPORTANT]\n> 以下“对话 + 右侧头脑风暴”界面只有在 Better Sidebar 已安装并启用时才会出现。只安装 Solo Thinking 时，请使用对话顶部的完整“头脑风暴”Tab。\n\n![DSH 对话与 Better Sidebar 头脑风暴右栏](docs/assets/solo-thinking-better-sidebar.png)\n\n推荐安装命令已经包含 [DSH Better Sidebar](https://github.com/omdsh-dev/DSH-better-sidebar) `0.12.1+`。如果只安装了 Solo Thinking，可以单独补装：\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.sh | bash -s -- 0.12.1\n```\n\n本插件会软检测 `ctx.betterSidebar`，注册一个独立的“头脑风暴”Tab；当前会话第一次出现思考树时会自动准备该 Tab，也可以在 Better Sidebar 的“＋ 新建标签页”菜单里手动打开。思考图会占满折叠上下文后剩余的纵向空间，父节点结论、当前结论、兄弟感知和子节点结论默认折叠、按需展开。Better Sidebar 未安装或被卸载时，官方完整标签页仍提供同样四类上下文和全部 Host 侧 Thinking 能力。\n\n## 30 秒开始使用\n\n在普通 DSH 对话里说：\n\n```text\n开启头脑风暴，主题是“给独立开发者做一个本地 AI 工作台”。\n请先发散；如果有多个值得独立深挖的方向，直接建立建议分支。\n```\n\nAgent 会调用 `thinking_start`，随后在适合分裂时调用一次 `thinking_suggest`。建议分支只创建、不自动运行；点击节点可查看 Handoff，直接在树中发消息即可启动该分支。\n\n## 思考树操作\n\n- `＋ 分裂`：只填写方向名称；父 Agent 自动为新节点准备定向 Handoff。\n- `● 进展`：让当前分支从自己的完整对话整理 Current State，供兄弟分支下一次模型轮读取。\n- `✓ 回传`：分支 Agent 撰写最终 Handoff，返回父节点并封存当前分支。\n- `■ 结束`：结束并清空当前思考空间的界面状态；历史 Session 与 Handoff 保留，随后可重新开启一棵独立的新树。\n- `进入对话`：显式导航到该 Session；单击节点本身只选择，不跳转。\n- 分支输入框：给非当前分支发消息，主会话仍停留在中间。\n\nHandoff 使用简短 Markdown，覆盖目标、已确认结论、证据、风险、开放问题和下一步。兄弟分支与父分支不会被后台自动唤醒，而是在自己的下一次显式模型轮消费最新 Handoff。\n\n## DSH 架构对齐\n\n插件遵循 DSH 的服务依赖、effect 回卷、bundle/profile 分层和双端 Client Module 模型。Better Sidebar 是可选服务能力：运行时卸载不会拖垮主插件，恢复后会重新注册侧栏；但新增或删除 npm 插件会改变 DSH 的 Client Module 包集合，因此仍需重启。逐项结论和保留的 RC 兼容层见 [DSH 插件设计对齐审计](docs/DSH-PLUGIN-DESIGN-AUDIT.md)。\n\n## Thinking 工具\n\n| 工具 | 用途 |\n|---|---|\n| `thinking_start` | 在当前 Session 建立头脑风暴空间 |\n| `thinking_suggest` | 一次创建 2–4 个休眠建议方向 |\n| `thinking_split` | Agent 自主分裂并写入定向 Handoff |\n| `thinking_fork_handoff` | 为人工创建的待继承节点补齐父分支 Handoff |\n| `thinking_checkpoint` | 发布本分支 Current State |\n| `thinking_return` | 向父分支提交最终 Handoff 并封存 |\n| `thinking_end` | 结束整棵树并允许原 Session 重新开始 |\n| `thinking_status` | 读取当前节点和整棵树状态 |\n\n## 数据与安全边界\n\n- 插件不调用外部网络服务，不读取其他分支的原始对话。\n- 跨分支信息只来自显式 Handoff；发送目标由 DSH Session ID 隔离。\n- 状态随 DSH Session persistence 保存；卸载插件不会主动删除历史 Session 数据。\n- 插件包使用预构建产物且没有安装生命周期脚本；生产环境建议固定 npm 版本、GitHub tag 或 Release 校验安装器。\n- `curl | bash` / `irm | iex` 会执行公开仓库中的远程安装器；不接受这一信任模型时，请使用透明的官方 CLI 单行命令，或先下载并审阅 [`scripts/install.sh`](scripts/install.sh) / [`scripts/install.ps1`](scripts/install.ps1)。\n\n## 开发与验证\n\n```bash\nnpm ci\nnpm run check\nnpm test\nnpm run verify\n```\n\n完整 Web E2E 使用受控 Provider，但仍经过真实 DSH adapter、Agent loop、Tools、Session persistence、Projection 和 Web RPC：\n\n```bash\n# 终端 A\nSOLO_E2E_PROVIDER_KEY=solo-e2e-key npm run e2e:provider\n\n# 终端 B\nDEEPSEEK_BASE_URL=http://127.0.0.1:8000/v1 \\\nDEEPSEEK_API_KEY=solo-e2e-key \\\ndsh --profile web --patch ./scripts/e2e.patch.yml\n\n# 终端 C\nnpm run e2e:run\n```\n\n成功测试会验证：4 个休眠建议分支、Workspace 继承、Agent-authored split/checkpoint Handoff、Return、父 Session notice，以及冷启动恢复。完整说明见 [`docs/E2E.md`](docs/E2E.md)，设计边界见 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。\n\n## 与完整 Solo 的边界\n\n本插件只移植 Thinking 的核心不变量，不移植 Solo 的 Channel、Team Agent 关系、PostgreSQL、daemon 或 CLI 管理：\n\n- DSH Session 代替 Thinking Node 的独立消息作用域；\n- DSH persistence 代替进程池和数据库绑定；\n- DSH Tool 与 System Prompt context 代替 Handoff 控制协议；\n- DSH Conversation View / 可选右栏插槽代替整页 Channel 工作区。\n\n## License\n\n[MIT](LICENSE)\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"dsh-mermaid","name":"dsh-mermaid","description":"Render Mermaid code blocks in DeepSeek Harness with a diagram/code toggle.","description_zh":"在 DSH Web 与 Desktop 对话中把 Mermaid 代码块渲染为可交互 SVG，支持源码切换、全屏缩放和平移及 SVG 导出；需要 DSH 和 Node.js 22.19+。项目自述最近 UI 检查为 2026-10-28，未覆盖完整回归或原生 Desktop 窗口。","description_en":"Renders Mermaid code blocks as interactive SVGs in DSH Web and Desktop, with source switching, fullscreen zoom and pan, and SVG export. Requires DSH and Node.js 22.19+. Its README reports a 2026-10-28 UI smoke check, not full regression coverage.","author":"Mrmo072","install_spec":"dsh-mermaid","repo":"https://github.com/MrmoLabs/dsh-mermaid","github_repo_id":1343511865,"category":"ui-theme","tags":["mermaid","diagram-rendering","svg-export","markdown"],"trust":"community","source":[{"kind":"github","url":"https://raw.githubusercontent.com/MrmoLabs/dsh-mermaid/5fc59cde411f38a0d8930146c384881c9ff5046c/package.json","fetched_at":"2026-11-05T22:10:23.377Z","evidence_url":"https://raw.githubusercontent.com/MrmoLabs/dsh-mermaid/5fc59cde411f38a0d8930146c384881c9ff5046c/package.json","attribution":"MrmoLabs upstream package manifest pinned to 5fc59cde411f38a0d8930146c384881c9ff5046c"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-mermaid/latest","fetched_at":"2026-11-05T22:10:23.377Z","evidence_url":"https://registry.npmjs.org/dsh-mermaid/latest","attribution":"public npm package metadata declaring dsh.bundle"}],"data_as_of":"2026-11-05T22:10:23.377Z","readme":{"status":"ready","source_url":"https://github.com/MrmoLabs/dsh-mermaid/blob/5fc59cde411f38a0d8930146c384881c9ff5046c/README.md","source_sha":"0a8f30231034be65581a046d552366a566e536a5","fetched_at":"2026-11-05T22:10:24.648Z","checked_at":"2026-11-05T22:10:23.377Z","excerpt":"# dsh-mermaid\n\n[简体中文](README.zh-CN.md) | English\n\nRender Mermaid code blocks as interactive SVG diagrams in **DeepSeek Harness Web and Desktop**. Switch between source and diagram, explore large diagrams in fullscreen, and export SVG files without leaving the conversation.\n\n[![npm version](https://img.shields.io/npm/v/dsh-mermaid.svg)](https://www.npmjs.com/package/dsh-mermaid)\n\n![English Mermaid diagram in a DSH conversation, with Code / Diagram, Fullscreen, and Download SVG controls](docs/images/conversation-en.jpg)\n\nAn English pull request workflow rendered in a DSH conversation. [View the Mermaid source](docs/examples/pull-request-workflow.mmd).\n\n## Quick start\n\nRequires DeepSeek Harness (DSH) and **Node.js 22.19 or later**. Commands below use Windows PowerShell; on macOS or Linux, use `npx` and `npm` in place of `npx.cmd` and `npm.cmd`.\n\n### 1. Install\n\nWith a global `dsh` command, install the npm release into your Web profile:\n\n```powershell\ndsh plugin --profile web add -w dsh-mermaid\n```\n\nIf `dsh` is not on your PATH, invoke it through npx:\n\n```powershell\nnpx.cmd --yes @deepseek-ai/dsh plugin --profile web add -w dsh-mermaid\n```\n\nFor **DSH Desktop**, replace `--profile web` with `--profile desktop`. DSH installs the package through pnpm and automatically registers its `dsh.bundle` declaration in the selected profile. Restart DSH Web or DSH Desktop after installation; for an already running Web session, refresh the browser page as well.\n\n### 2. Render a diagram\n\nAsk a model to output a Mermaid fenced code block, for example:\n\n````markdown\n```mermaid\nflowchart LR\n  A[Idea] --> B[Mermaid code]\n  B --> C[Diagram]\n  C --> D[SVG export]\n```\n````\n\nThe block opens in **Diagram** view by default. Use **Code / Diagram** to switch views. The plugin also recognizes `mermaidjs` and `mmd` fences; inline code is left unchanged.\n\n### 3. Explore and export\n\n- **Fullscreen** opens a viewer with mouse-wheel zoom, dragging, 100% reset, and fit-to-window controls. Press `Esc` to close it.\n- **Download SVG** saves the rendered diagram as a standalone file.\n- Both actions remain available in Code view once a diagram has rendered successfully.\n\n![Fullscreen English Mermaid diagram with zoom, reset, fit-to-window, and close controls](docs/images/fullscreen-en.jpg)\n\n## Features\n\n- **Streaming support** — discovers new blocks as responses arrive and prevents older renders from replacing newer content.\n- **Theme and language** — follows DSH's light/dark theme and uses English or Simplified Chinese based on the page and browser language.\n- **Large-diagram viewing** — fullscreen zoom and pan, with a stable toolbar position when switching views.\n- **Accessible controls** — keyboard focus management, render/download announcements, and accessible SVG names.\n- **Bundled runtime** — pins Mermaid `11.17.0`, loads it on demand from DSH's own origin, and requires no runtime CDN. Multiple diagrams render through a serial queue.\n- **Source fallback** — uses Mermaid's `securityLevel: strict` and returns to source on rendering errors. Diagrams exceeding 50,000 characters or 2,000 lines are rejected before rendering.\n\n## Update and uninstall\n\nRun the command for your installed profile; replace `web` with `desktop` for DSH Desktop.\n\n```powershell\n# Update the npm release\ndsh plugin --profile web update -w dsh-mermaid\n\n# Uninstall\ndsh plugin --profile web remove -w dsh-mermaid\n```\n\nIf needed, replace the leading `dsh` with `npx.cmd --yes @deepseek-ai/dsh`. Restart the corresponding DSH application afterward and refresh any open Web page. See the [changelog](CHANGELOG.md) for release details.\n\n## Troubleshooting\n\n| Symptom | What to check |\n| --- | --- |\n| No Code / Diagram controls | Confirm that the plugin is installed in the profile you are using, restart DSH, and refresh the page. Use an explicit `mermaid` fenced block. |\n| Source appears with an error | Check the Mermaid syntax and the displayed error. Split diagrams that exceed 50,000 characters or 2,000 lines. |\n| Fullscreen or download is unavailable | These actions require a successfully rendered SVG. Resolve any rendering error first. |\n| GitHub installation reports a blocked build script | Follow the build-script guidance under **Install from GitHub** below. |\n\n## Compatibility\n\nThe most recent UI check was on **2026-10-28**, using Windows / Chrome, `@deepseek-ai/dsh 0.2.1-rc.3` (Web profile), and `dsh-mermaid 0.4.4`. The DSH host ran on Node.js 24.21.0 bundled with DSH Desktop.\n\nAn isolated environment with a local example conversation confirmed English flowchart rendering, toolbar display, opening and closing fullscreen, and fullscreen panning. The screenshots above come from that environment. This was a UI smoke check; it did not cover a full feature regression or the native Desktop window.\n\nDSH is a developer preview; newer versions may change its plugin loader or Markdown DOM. When [reporting an issue](https://github.com/MrmoLabs/dsh-mermaid/issues), include your DSH, plugin, and Node.js versions, Web/Desktop profile, and a minimal Mermaid example. Remove private conversation content before sharing.\n\n## Advanced usage\n\n<details>\n<summary>Install from GitHub</summary>\n\nFor normal use, prefer the npm release. To install the latest repository source, ensure a global `dsh` command is on your PATH, then run:\n\n```powershell\nnpx.cmd -y github:MrmoLabs/dsh-mermaid install\n```\n\nFor DSH Desktop:\n\n```powershell\nnpx.cmd -y github:MrmoLabs/dsh-mermaid install --profile desktop\n```\n\nThe repository installer asks DSH to install the GitHub source into the selected profile and builds the package during installation. If pnpm blocks a build script, add the exact package key shown by pnpm to `allowBuilds` in that profile's `pnpm-workspace.yaml`, then run the command again. Restart the corresponding DSH application afterward.\n\nThe installer supports English and Simplified Chinese. It checks `DSH_MERMAID_LANG`, `DSH_LANG`, `LC_ALL`, `LC_MESSAGES`, `LANG`, and `LANGUAGE` in that order, then uses the system language; neutral `C`/`POSIX` values are skipped. Set `DSH_MERMAID_LANG=en` or `DSH_MERMAID_LANG=zh-CN` to override the choice. This affects the installer’s own messages, independently of the browser interface, DSH, and pnpm.\n\n</details>\n\n<details>\n<summary>Runtime and integration boundary</summary>\n\nThe Mermaid runtime runs in the DSH Web browser or Desktop renderer, where `window` and `document` are available. The Node.js host serves the bundled file over HTTP. The Node.js version requirement covers installation, builds, and the plugin host; this package does not currently provide a supported Node.js validation API.\n\n`lib/mermaid-runtime.js` is an internal browser bundle. It is shipped for the plugin's same-origin runtime route and is not a public package export. Resolving `dsh-mermaid/package.json` and constructing a path to this file depends on internal packaging details that may change.\n\nIntegrators experimenting with server-side parsing must account for these requirements:\n\n- Some diagram parsers sanitize labels through DOMPurify during `parse()`. Without a DOM, valid labeled flowcharts and state diagrams can throw `addHook is not a function` or `sanitize is not a function`. Successful parsing of one sequence diagram does not establish compatibility for other inputs.\n- Provide a compatible DOM **before the first runtime import**, preferably in a dedicated worker or process. DOMPurify captures its environment during initialization; adding a DOM after import does not repair the cached module. Temporarily assigning globals around an asynchronous import can also expose them to other host code. Follow [DOMPurify's server-side guidance](https://github.com/cure53/DOMPurify#running-dompurify-on-the-server) when choosing a DOM implementation.\n- On Windows, convert an absolute filesystem path with `pathToFileURL(runtimePath).href` before passing it to dynamic `import()`.\n- Distinguish invalid input from unavailable dependencies, environment failures, and timeouts. Mermaid's `.hash` error field is not a universal classifier: invalid pie syntax and unknown diagram types can also fail without it. An incomplete validation must not be reported as successful.\n- Use the same Mermaid version and relevant configuration as the renderer. A successful `parse()` checks syntax; it does not guarantee successful layout or SVG rendering. Keep the renderer's error handling and source fallback.\n\n</details>\n\n## Development\n\nFrom a local checkout, with Node.js 22.19 or later:\n\n```powershell\nnpm.cmd install\nnpm.cmd run check\nnpm.cmd run build\ndsh plugin --profile web add -w .\n```\n\nBuild output is written to `lib/`. The lightweight `client.js` bootstrap is registered with the DSH client module loader as `dsh-mermaid`; the bundled Mermaid runtime is served through the plugin's same-origin host route and loaded on demand. DSH resolves the relative installation path against the current plugin checkout.\n\n`npm.cmd run check` runs syntax and client tests, builds the runtime, and tests its real parser in separate processes with and without a DOM. The DOM-backed parser tests use happy-dom as a test fixture; they do not verify browser layout or SVG rendering, or recommend a production server-side DOM implementation.\n\n<details>\n<summary>Manual installation for local development</summary>\n\nThe built package can also be copied to:\n\n```text\nC:\\Users\\<username>\\.dsh\\profiles\\web\\node_modules\\dsh-mermaid\n```\n\nNever commit the complete `.dsh` directory; it may contain conversations and credentials.\n\n</details>\n\n### Release checks\n\n```powershell\nnpm.cmd run check\nnpm.cmd run build\nnpm.cmd pack --dry-run\ngit status --short\ngit diff --cached\n```\n\n## License\n\n[MIT](LICENSE)\n","truncated":false}},{"slug":"dsh-web-search-diy","name":"dsh-web-search-diy","description":"DSH web search provider selected by vendor x protocol: Chat Completions, Responses, and Anthropic Messages with built-in search tools, plus the standalone search APIs of DeepSeek, Kimi, and Zhipu; four custom targets cover gateways; UI copy follows the app language (zh, en, ja, es, fr, de, ru, pt).","description_zh":"为 DSH 提供可按厂商与协议配置的 Web 搜索工具，支持 Chat Completions、Responses、Anthropic Messages 和独立搜索 API，并将结果整理为引用来源；厂商支持程度不同，部分组合明确受限或未验证。","description_en":"Adds configurable web search to DSH across Chat Completions, Responses, Anthropic Messages, and standalone APIs, normalizing results into cited sources. Vendor and protocol coverage varies; some combinations are degraded or unverified.","author":"aaronlei","install_spec":"dsh-web-search-diy","repo":"https://github.com/aaronlei/dsh-web-search-diy","github_repo_id":1356221603,"category":"tools-mcp","tags":["web-search","search-provider","citations","api-protocols"],"trust":"community","source":[{"kind":"github","url":"https://raw.githubusercontent.com/aaronlei/dsh-web-search-diy/88688db528e259b030d61ae2958233d83bf840dd/package.json","fetched_at":"2026-11-05T22:10:20.445Z","evidence_url":"https://raw.githubusercontent.com/aaronlei/dsh-web-search-diy/88688db528e259b030d61ae2958233d83bf840dd/package.json","attribution":"aaronlei upstream package manifest pinned to 88688db528e259b030d61ae2958233d83bf840dd"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-web-search-diy/latest","fetched_at":"2026-11-05T22:10:20.445Z","evidence_url":"https://registry.npmjs.org/dsh-web-search-diy/latest","attribution":"public npm package metadata declaring dsh.bundle"}],"data_as_of":"2026-11-05T22:10:20.445Z","readme":{"status":"ready","source_url":"https://github.com/aaronlei/dsh-web-search-diy/blob/88688db528e259b030d61ae2958233d83bf840dd/README.md","source_sha":"bd2e89781f47d6659e8501e3dbb6858971c2ecef","fetched_at":"2026-11-05T22:10:22.018Z","checked_at":"2026-11-05T22:10:20.445Z","excerpt":"# dsh-web-search-diy\n\n**English** · [简体中文](README.zh.md)\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/dsh-web-search-diy\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/dsh-web-search-diy?style=flat-square&amp;label=npm&amp;color=cb3837\"></a>\n  <a href=\"LICENSE\"><img alt=\"license: MIT\" src=\"https://img.shields.io/npm/l/dsh-web-search-diy?style=flat-square&amp;color=blue\"></a>\n  <a href=\"package.json\"><img alt=\"node &gt;= 18\" src=\"https://img.shields.io/badge/node-%3E%3D18-339933?style=flat-square&amp;logo=nodedotjs&amp;logoColor=white\"></a>\n  <a href=\"#capability-matrix\"><img alt=\"vendors: 7\" src=\"https://img.shields.io/badge/vendors-7-8A2BE2?style=flat-square\"></a>\n  <a href=\"#capability-matrix\"><img alt=\"protocols: 4\" src=\"https://img.shields.io/badge/protocols-4-8A2BE2?style=flat-square\"></a>\n  <a href=\"https://github.com/deepseek-ai/deepseek-harness\"><img alt=\"dsh plugin\" src=\"https://img.shields.io/badge/dsh-plugin-4D6BFE?style=flat-square\"></a>\n</p>\n\n> A **web search provider plugin** for the **DeepSeek Harness (DSH)**. It supplies the built-in `web_search` tool per **vendor × protocol**: three in-protocol shapes (Chat Completions / Responses / Anthropic Messages) plus standalone search, covering DeepSeek, Kimi, Zhipu, Qwen, OpenAI, Anthropic, OpenRouter, and four custom targets. Results are normalized into **structured citation sources** for the calling model to ground its answer on. The plugin also ships an observability page that records every search and can backfill history from older session logs.\n\n## Capabilities\n\n- 🧭 **Vendor × protocol matrix** — 17 official targets (13 full + 4 degraded) and 4 custom targets. Only combinations that really search appear in the vendor list; the rest live in a collapsed section with a reason.\n- 🎛️ **Three-layer configuration page** — search kind → protocol → vendor. Fields come from the catalog served by the host; a blank value means the combination's default.\n- 🧩 **Custom targets** — a template picker performs a one-shot fill (selection resets, nothing is saved); endpoint, path, request field names, and response field names are all editable.\n- 🧪 **Test connection** — runs one real search with the staged draft (nothing saved to the configuration) and grades the result by source quality.\n- 🔐 **Write-only credentials** — API keys are stored through the credentials service, never in the configuration file; each vendor offers its reference chain.\n- 🗂️ **Configuration v3** — one bucket per `vendor/protocol`; v1/v2 files migrate on read and the old file is backed up as `.v2.bak` before the first save.\n- 🪜 **Thinking-effort fallback** — a rejected `reasoning.effort` / `output_config` / `thinking` is dropped one at a time and retried.\n- 📦 **Dispatcher-proof decoding** — bodies are read as bytes and inflated by magic number, independent of dsh's global undici dispatcher.\n- 📄 **Long bodies become source summaries** — standalone search writes its long body into `source.summary` (capped at 2,000 characters) and skips it when the original body equals `snippet`; snippets are capped the same way. The model reads the summary before falling back to the snippet.\n- 🚦 **No credential, no tool** — when the selected target cannot resolve a credential, `web_search` is no longer offered to the model instead of failing after invocation.\n- 📊 **Built-in observability page** — a first-level \"Config / Observability\" tab. The overview shows searches, success rate, P50/P95, average sources, summary coverage, a target ranking, success-rate/P95 trends and recent records; the records view filters by status and query, expands source details, and copies a record as JSON.\n- 🗄️ **Local observation store and historical import** — `node:sqlite` with WAL, 0600 permissions, transactional writes and a 50,000-row retention cap. Importing scans `$DSH_HOME/sessions` for older `web_search` calls and is idempotent; JSONL/CSV export and a typed-`DELETE` clear are available.\n- 🧱 **Failure classes and request timeout** — HTTP statuses, network failures and local timeouts map to stable error codes; `requestTimeoutMs` defaults to 25 s (60 s for test connections), and caller cancellation stays distinct from a timeout.\n- 📅 **Calendar ranges and page-number pagination** — presets plus a month calendar for start/end dates, independently for queries and imports; records page by page number with 10/20/50/100 rows and jump-to-page.\n\n## Capability matrix\n\nLegend: ✅ full (in-protocol search + citable sources); ◐ degraded (searches, but sources or model are limited); ✗ unsupported; ⚙ custom.\n\n| Vendor | Chat Completions | Responses | Anthropic Messages | Standalone search |\n|---|---|---|---|---|\n| DeepSeek | ✗ | ◐ `deepseek-v4-pro` only; sources from `open_page` | ✅ | ✅ `/v1/tools/search` |\n| Kimi | ✗ built-in `$web_search` retired | ✅ `web_search` + `include` | ✗ no server tool in the schema | ✅ `/v1/tools/search` |\n| Zhipu | ✅ `web_search` tool | ✅ `web_search` + `results[]` | ✗ accepts but does not run it | ✅ `/paas/v4/web_search` |\n| Qwen | ◐ `enable_search`, no sources | ✅ `action.sources` (url only) | ✅ needs the billing header | ✗ no standalone REST |\n| OpenAI | ◐ `gpt-5-search-api` only | ✅ full `filters` / `include` | ✗ no such endpoint | ✗ |\n| Anthropic | ✗ | ✗ | ✅ native `web_search` | ✗ |\n| OpenRouter | ✅ `openrouter:web_search` | ✅ same server tool | ◐ alias, untested | ✗ |\n| Custom | ⚙ template + 4 variants | ⚙ template + `toolType` | ⚙ template + `toolType` | ⚙ template + 8 mapping fields |\n\n> 13 full, 4 degraded (OpenRouter Anthropic is pending), 4 custom. Eight `unsupported` entries exist only for the collapsed section and never create a configuration bucket.\n\n## Install\n\nPublished on npm:\n\n```bash\ndsh plugin --profile web add dsh-web-search-diy\n```\n\nThe bundle patch performs the wiring, so no manual `cordis.patch.yml` edits are required:\n\n- inserts the `web-search-diy` loader entry;\n- overrides the shared `web` row's `searchProvider` to `diy-search` and restates `fetchProvider: http` (a patch replaces the whole row config);\n- disables the shipped `web-search-deepseek` provider.\n\nFor local development, install the checkout as a link:\n\n```bash\ndsh plugin --profile web add link:./dsh-web-search-diy\n```\n\n> The plugin declares the `@deepseek-ai/*` hooks as `peerDependencies`. Run `pnpm install` once in the plugin directory before linking; the harness provides the peers at runtime.\n\n## Configuration\n\n### Configuration page\n\nLocation: **Plugins → Installed plugins → the dsh-web-search-diy card** (clicking the card opens this plugin's configuration page). Copy follows Settings → Language (zh, en, ja, es, fr, de, ru, pt).\n\n- **Search kind**: `In-protocol search` or `Standalone search`. Standalone has no model turn, so model and output-budget fields are hidden.\n- **Protocol**: one of Chat Completions / Responses / Anthropic Messages in-protocol; standalone is fixed to `search`.\n- **Vendor**: only vendors available under that protocol; degraded combinations show their reason on the card; unsupported ones are collapsed for the current shape.\n- **Fields**: blank means the catalog default (shown as the placeholder). Saving a blank deletes the key.\n- **Endpoint override (Anthropic protocol)**: the launching environment variable `DEEPSEEK_SEARCH_BASE_URL` overrides the endpoint; an explicitly saved **Endpoint** wins over it.\n- **Template (custom only)**: a one-shot picker. The selection resets immediately, the placeholder names the last template, and the template itself is never saved. If the target already has a saved configuration, switching templates first asks for confirmation and offers **Reset to saved configuration**.\n- **Save**: switching vendor/protocol counts as a pending change; saving takes effect immediately (the host re-reads the file on every search).\n- **API key**: written through the credentials service only; blank keeps the current key.\n\n### Configuration file (v3)\n\n`$DSH_HOME/dsh-web-search-diy.json`, written by the configuration page:\n\n```json\n{\n  \"version\": 3,\n  \"vendor\": \"qwen\",\n  \"protocol\": \"responses\",\n  \"targets\": {\n    \"qwen/responses\": {\n      \"baseURL\": \"https://maas.qianwenaiapi.com/compatible-mode/v1\",\n      \"apiKeyEnv\": \"QWEN_TOKEN_PLAN_API_KEY\",\n      \"model\": \"qwen3.8-flash\",\n      \"maxOutputTokens\": 4096,\n      \"toolType\": \"web_search\",\n      \"includeSources\": true\n    },\n    \"custom/search\": {\n      \"baseURL\": \"https://search-gateway.example.com\",\n      \"path\": \"/v1/tools/search\",\n      \"apiKeyEnv\": \"SEARCH_GATEWAY_API_KEY\",\n      \"queryField\": \"q\",\n      \"countField\": \"size\",\n      \"resultsPath\": \"data.items\",\n      \"urlField\": \"link\",\n      \"titleField\": \"name\",\n      \"snippetField\": \"desc\",\n      \"count\": 10\n    }\n  }\n}\n```\n\n- The top level stores only the current `vendor` and `protocol`; each target bucket stores only the keys declared in its `fields`.\n- A blank value deletes the key and restores the catalog default.\n- `template` is a fill action, not configuration; submitting it is rejected.\n- API keys never appear in this file.\n\n### Migrating from 1.x\n\n| v2 `mode` | v3 target |\n|---|---|\n| `responses` | `qwen/responses` |\n| `anthropic-messages` | `deepseek/anthropic-messages` |\n| `zhipu-web-search` | `zhipu/search` |\n| `zhipu-chat-search` | `zhipu/chat-completions` |\n\n- A v1 flat object is first projected onto its mode, then migrated by the table above.\n- Migration happens in memory on read; the first save writes v3 and backs the original up as `dsh-web-search-diy.json.v2.bak` (once, for rollback).\n- Old key names: `responsesToolType` → `toolType`, `responsesIncludeSources` → `includeSources`, `responsesReasoningEffort` → `reasoningEffort`, `anthropicThinking` → `thinking`, `anthropicEffort` → `effort`; `apiVersion` is dropped (fixed at `2023-06-01`).\n- 2.0 registers no settings section; configuration comes from the file and the credential surface only.\n\n### Field reference\n\n| Protocol / vendor | Fields |\n|---|---|\n| Common | `baseURL`, `apiKeyEnv`, `model`, `maxOutputTokens` (the last two are hidden for standalone) |\n| Responses · OpenAI | `toolType`, `includeSources`, `reasoningEffort`, `searchContextSize`, `allowedDomains`, `blockedDomains`, `userLocation`, `externalWebAccess`, `returnTokenBudget`, `searchContentTypes`, `imageMaxResults`, `imageCaption` |\n| Responses · Kimi | `toolType`, `includeSources`, `allowedDomains` (`blockedDomains` / `search_context_size` return 400) |\n| Responses · Zhipu / Qwen | `toolType`, `includeSources`, `reasoningEffort` |\n| Responses · DeepSeek | `toolType`; the model is locked to `deepseek-v4-pro` and `include` is not sent |\n| Responses · OpenRouter | `toolType`, `includeSources`, `engine`, `mode`, `maxResults`, `maxUses`, `maxTotalResults`, `searchContextSize`, `maxCharacters`, `userLocation`, `allowedDomains`, `excludedDomains`, `xSearch` |\n| Anthropic Messages | `toolType`, `maxUses`, `thinking`, `effort`, `allowedDomains`, `blockedDomains`, `userLocation`, `responseInclusion` |\n| Chat · Zhipu | `searchEngine`, `count`, `searchRecencyFilter`, `contentSize`, `searchDomainFilter`, `requireSearch`, `searchPrompt`, `reasoningEffort` |\n| Chat · Qwen | `searchStrategy`, `forcedSearch`, `freshness`, `assignedSiteList`, `searchExtension`, `promptIntervene` |\n| Chat · OpenRouter | `engine`, `mode`, `maxResults`, `maxUses`, `maxTotalResults`, `searchContextSize`, `maxCharacters`, `userLocation`, `allowedDomains`, `excludedDomains`, `xSearch` |\n| Chat · OpenAI | no search parameters; the model is locked to `gpt-5-search-api` |\n| Standalone | `count`, `includeContent`, `searchEngine` / `contentSize` / `searchRecencyFilter` / `searchDomainFilter` (Zhipu), `oriQuestion` / `localization` (DeepSeek), `timeoutSeconds` (Kimi), `digestEntries`, `digestSnippetChars`; custom adds `path` and the 8 mapping fields |\n\n> `oriQuestion` sends the human prompt that triggered the search as DeepSeek's `ori_question`: whitespace collapsed, cut to 128 characters, read from the initiating Session and omitted out","truncated":true}},{"slug":"registry-04a838a02f82840c","name":"mstar-harness","description":"A DeepSeek Harness workflow plugin for multi-agent code delivery with TypeScript-enforced gates and mstar skills.","description_zh":"面向 DSH、omp、OpenCode 等编码宿主的交付工作流：项目经理协调需求、架构、实现、独立审查、验收与发布准备，并保存计划和审查记录。DSH 原生插件需要 dsh CLI；功能流程由项目配置及宿主支持决定。","description_en":"Provides a delivery workflow for DSH and other coding hosts, coordinating requirements, architecture, implementation, review, acceptance, and pull-request preparation with recorded plans and findings. Native DSH installation requires the dsh CLI.","author":"btspoony","install_spec":"@mstar-harness/dsh","repo":"https://github.com/btspoony/mstar-harness","github_repo_id":1174622182,"category":"workflow","tags":["delivery-workflow","project-management","code-review","multi-agent"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.397Z","evidence_url":"https://dshplugin.app/plugins/mstar-harness","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"npm","url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","fetched_at":"2026-11-05T00:22:58.870Z","evidence_url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","attribution":"npm registry package metadata"},{"kind":"npm","url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","fetched_at":"2026-11-05T22:10:55.760Z","evidence_url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","attribution":"npm registry package metadata"},{"kind":"npm","url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","fetched_at":"2026-11-05T22:20:41.468Z","evidence_url":"https://registry.npmjs.org/%40mstar-harness%2Fdsh/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.397Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:41.468Z","reason":"README not available in candidate"}},{"slug":"registry-0d288b25d2869152","name":"dsh-continual-evolve","description":"A DeepSeek Harness plugin for versioned, auditable evolution of persistent prompt notes, memories, skills, and subagent specifications.","description_zh":"为 DSH 提供按工作区隔离的 SQLite 持久记忆，可索引并注入上下文，并通过单写者门控管理记忆更新；具体提取和写入策略以插件工作流配置为准。","description_en":"Adds workspace-partitioned SQLite memory to DSH, with indexed context injection and gated single-writer updates. Extraction and write behavior depend on the plugin's configured workflow.","author":"ZK-Andy","install_spec":"dsh-continual-evolve","repo":"https://github.com/ZK-Andy/dsh-continual-evolve","github_repo_id":1333522020,"category":"memory-rag","tags":["persistent-memory","workspace-indexing","sqlite","context-injection"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.410Z","evidence_url":"https://dshplugin.app/plugins/dsh-continual-evolve","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","fetched_at":"2026-11-05T00:22:41.030Z","evidence_url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","attribution":"ZK-Andy upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","fetched_at":"2026-11-05T22:10:50.700Z","evidence_url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","attribution":"ZK-Andy upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","fetched_at":"2026-11-05T22:20:35.192Z","evidence_url":"https://raw.githubusercontent.com/ZK-Andy/dsh-continual-evolve/main/package.json","attribution":"ZK-Andy upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.410Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:35.192Z","reason":"README not available in candidate"}},{"slug":"registry-1155006b0bd12ca1","name":"dsh-reverse-skill","description":"A DeepSeek Harness Cordis skill plugin that packages 85 reverse engineering, authorized pentesting, security research, and CTF SKILL.md resources.","description_zh":"将 88 个逆向工程、授权渗透测试、安全研究与 CTF 技能注册为 DSH Cordis 插件中的技能提供方。README 指出 npm 旧版与 DSH 0.2.0-rc.2 不兼容，建议使用 GitHub 安装。","description_en":"Registers 88 reverse-engineering, authorized-pentesting, security-research, and CTF skills through a DSH Cordis plugin provider. The README warns that the older npm package is incompatible with DSH 0.2.0-rc.2 and recommends GitHub installation.","author":"dhicoc","install_spec":"github:dhicoc/dsh-reverse-skill","repo":"https://github.com/dhicoc/dsh-reverse-skill","github_repo_id":1334214605,"category":"security","tags":["reverse-engineering","authorized-pentesting","security-research","ctf-skills"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.402Z","evidence_url":"https://dshplugin.app/plugins/dsh-reverse-skill","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","fetched_at":"2026-11-05T00:22:42.695Z","evidence_url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","attribution":"dhicoc upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","fetched_at":"2026-11-05T22:10:50.707Z","evidence_url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","attribution":"dhicoc upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","fetched_at":"2026-11-05T22:20:35.337Z","evidence_url":"https://raw.githubusercontent.com/dhicoc/dsh-reverse-skill/main/package.json","attribution":"dhicoc upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.402Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:35.337Z","reason":"README not available in candidate"}},{"slug":"dsh-workbench-plugin-d03490","name":"dsh-workbench-plugin","description":"DeepSeek Harness Web UI 工作台：聊天 / 编辑器（语法高亮） / 文件与 Git、侧边栏、模型工具","description_zh":"为 DSH Web UI 提供工作台面板，包含聊天、语法高亮编辑器、文件与 Git、终端、浏览器、控制平面和模型工具。README 要求 DeepSeek Harness 0.1.5 或更高版本；较旧宿主会拒绝安装。","description_en":"Adds a workbench to the DSH Web UI with chat, a syntax-highlighted editor, files and Git, terminal, browser, control plane, and model tools. Requires DeepSeek Harness 0.1.5 or newer; older hosts refuse installation.","author":"loadingvx","install_spec":"dsh-workbench-plugin","repo":"https://github.com/loadingvx/deepseek-harness-workbench-plugin","github_repo_id":1334909671,"category":"editors","tags":["web-workbench","code-editor","terminal","git"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.410Z","evidence_url":"https://dshplugin.app/plugins/deepseek-harness-workbench-plugin","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","fetched_at":"2026-11-05T00:18:57.397Z","evidence_url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","attribution":"loadingvx upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","fetched_at":"2026-11-05T22:11:56.193Z","evidence_url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","attribution":"loadingvx upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","fetched_at":"2026-11-05T22:24:13.463Z","evidence_url":"https://raw.githubusercontent.com/loadingvx/deepseek-harness-workbench-plugin/421282dc771c72ccf5fac60d70e3d6571a4e62e3/package.json","attribution":"loadingvx upstream package manifest"}],"data_as_of":"2026-11-05T22:24:13.463Z","readme":{"status":"fetch_failed","source_url":"https://github.com/loadingvx/deepseek-harness-workbench-plugin/blob/421282dc771c72ccf5fac60d70e3d6571a4e62e3/README.md","source_sha":"7a70635bd2bfca7ee9820a451ca335ea811cc379","fetched_at":"2026-11-05T00:18:57.142Z","checked_at":"2026-11-05T22:24:13.134Z","excerpt":"\n![preview](docs/preview.png)\n\n> **Requires DeepSeek Harness ≥ 0.1.5 (compatibility update)**\n>\n> This plugin line is adapted for **DeepSeek Harness 0.1.5+**, which ships the official right sidebar (`ui-sidebar-right`). Workbench panels (Git, Usage, terminal, browser, control plane, and more) dock into that host sidebar instead of only using the plugin’s own chrome.\n>\n> On older harness versions you may still see an **update available** notice, but **install is refused** so your environment is not broken. Upgrade DeepSeek Harness to **0.1.5 or newer** first, then install or upgrade this plugin.\n\nA workbench plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web UI. After Workbench is opened in Conversation, chat stays on the left. Two columns appear on the right: the editor (**Agent Control Plane**, syntax highlighting, and **smart terminal**) and the side dock for files, Git, the **Usage** panel, and the **Ultra Slash** panel.\n\nLook for these first:\n\n- **Usage** — official API balance, this-machine observed spend, this-session tokens and context. Pin it above the left **Settings** button so you can see spend while chatting.\n- **Agent Control Plane** — the editor’s first tab by default. Two pages: **Execution trajectory** (timeline fishbone of user → LLM → tools → agent reply, with expandable I/O) and **Capabilities** (current-session agent model, tools, prompt sections, and session knobs). Toggle visibility in Settings.\n- **Ultra Slash** — slash commands that inject guidance **without stopping the current turn**. Manage them in the right dock; send them from the bottom group of the chat `/` menu.\n- **Canvas** — live React previews for product prototypes, dashboards, and custom visuals. Agent-written files live under `.canvas/*.canvas.tsx` in the workspace (not in IDE config folders). After a write, the workbench **auto-opens** the file in **preview**; switch to edit or split like Markdown. Send `/canvas <topic>` to steer the model without interrupting the turn.\n- **Smart terminal** — a local PTY in the editor. Real shell lines (including pasted `$ ls`) run as-is. Natural language is translated by **AI command assist** (<kbd>Alt</kbd>+<kbd>I</kbd> or the ✨ button) and typed into the **current** terminal. Notes are never executed. A blacklist blocks destructive commands the assistant would otherwise type. <kbd>Alt</kbd>+<kbd>J</kbd> opens another terminal tab.\n- **Add to chat** — hand the model anything without copying and pasting. Drag a file from the tree (or a DevTools network request) into the chat box; right-click terminal output to add the selection or recent output (with its pwd/shell context); or tap the **point-and-pick** button in the embedded browser and click a page element. Each lands as a reference chip in the input and rides along with your next message.\n- **AI commit messages** — in the right-dock **Source Control** tab, generate a message from staged changes; the text streams into the commit box. The template is editable.\n\n- **Notification sounds** — when a session finishes while you are away or is waiting on you (approval, plan confirmation, question), the workbench plays a chime. Pick one of 5 built-in Web Audio sounds or upload your own audio (mp3, ogg, wav, webm, m4a, flac, up to 50 MB); a loop reminder keeps replaying it every N seconds (default 10) until the item is handled. The master switch, sound picker, and loop interval live in the workbench **Settings** panel.\n\n## Contents\n\n- [Interface](#interface)\n- [Core capabilities](#core-capabilities)\n- [Feature list](#feature-list)\n- [Agent Control Plane](#agent-control-plane)\n- [Usage panel](#usage-panel)\n- [Ultra Slash](#ultra-slash)\n- [Canvas](#canvas)\n- [Smart terminal](#smart-terminal)\n- [Workspace terminal](#workspace-terminal)\n- [AI command assist](#ai-command-assist)\n- [Capability matrix](#capability-matrix)\n- [Release](#release)\n- [Installation](#installation)\n- [Upgrade](#upgrade)\n- [License](#license)\n\n## Interface\n\nThe workbench uses a three-column layout. Conversation stays on the left. The two columns on the right are the capability area: editor (**Agent Control Plane**, syntax highlighting, smart terminal) in the center; file tree, Git, Usage, and Ultra Slash on the far right. The right dock tabs are **Files**, **Source Control**, **Usage**, and **Ultra Slash**. The editor’s first tab is **Control Plane** by default.\n\n### DeepSeek-Harness >= V0.1.5\n\n![screen_8](docs/img/screen_shot_8.png)\n\n### Previous Version\n\n![screen_0](docs/img/screen_shot_0.png)\n![screen_1](docs/img/screen_shot_1.png)\n![screen_2](docs/img/screen_shot_2.png)\n![screen_3](docs/img/screen_shot_3.png)\n![screen_4](docs/img/screen_shot_4.png)\n![screen_5](docs/img/screen_shot_5.png)\n![screen_6](docs/img/screen_shot_6.png)\n![screen_7](docs/img/screen_shot_7.png)\n\n\n## Core capabilities\n\n1. **Workbench layout.** Three columns: Conversation on the left, editor and terminal in the center, files / Git / Usage / Ultra Slash on the right. A new session opens the workbench immediately. By default the editor is collapsed, the files sidebar is open, and usage is pinned above Settings. Columns can be resized, collapsed to icon rails, and restored. Collapse, the side-dock tab, and the usage pin are remembered globally across reload and new sessions.\n2. **Smart terminal.** A local PTY. Real shell lines (including pasted `$ ls`) go straight to the terminal; natural language is translated and typed into the **current** shell. Notes are non-executable. A configurable blacklist blocks destructive commands the assistant would otherwise type.\n3. **Agent Control Plane.** First editor tab (on by default; toggle in Settings). **Execution trajectory** shows a threaded feed with a left rail for each LLM round, tool call, and agent reply (expand for full I/O). **Capabilities** lists the current session agent’s model, tools, prompt sections, sub-agents, and session knobs you can adjust online.\n4. **Workspace editor.** CodeMirror 6 with syntax highlighting, Plain / Emacs / Vim keymaps, Markdown edit / preview / split, **Canvas edit / preview / split** (React render of `.canvas/*.canvas.tsx`), image and spreadsheet previews, Git diffs, tabs, breadcrumbs, save and dirty-close guards.\n5. **Files.** Tree browse, filter, hidden files, `.gitignore` marks, new / rename / delete, and open in a local editor (Cursor, VS Code, and others).\n6. **Git.** Status, stage, commit (including streamed AI messages), fetch / pull / push with safety checks, branches, merge, restore, commit graph, `git init`, and model-facing `git_*` tools.\n7. **Usage panel.** Official API balance, this-machine observed spend, this-session tokens and context. Open the right-dock **Usage** tab, or pin the panel above the left **Settings** button (including the collapsed icon rail). The status bar always shows the balance next to **Feedback**.\n8. **Ultra Slash panel.** Slash commands that inject guidance into the next model step **without interrupting the current turn**. Open the right-dock **Ultra Slash** tab to manage them; type `/` in chat and pick from the bottom Ultra Slash group. Built-in: `/steer`, `/new`, `/skill`, `/docs`, `/canvas`. Custom `/name` shortcuts are stored on this machine and shared by every session.\n9. **Status bar.** Open-file tabs, balance, Feedback, version / upgrade, workspace path, branch, dirty count, editor mode.\n10. **Maintenance & privacy.** In-UI upgrade checker, Chinese / English UI, and redaction of tokens in paths and errors.\n\n## Feature list\n\n### Workbench\n\n- Three-column layout: Conversation | editor + terminal | files / Git / Usage / Ultra Slash\n- Right-dock tabs: **Files**, **Source Control**, **Usage**, **Ultra Slash**\n- Opens as soon as you create a session; no first message required\n- Header **Workbench** button shows or hides the whole workbench\n- Drag column widths; double-click a sash to reset; widths are remembered\n- Collapse Conversation, editor, or the right dock into a narrow icon rail\n\n### Editor\n\n- Multi-file tabs; save; unsaved indicator; confirm before closing dirty files\n- Close all / others / left / right\n- Path breadcrumbs\n- Syntax highlighting: JavaScript, TypeScript, JSX, TSX, JSON, HTML, CSS, Markdown, Python, XML, YAML; other files stay plain text\n- Keymaps: Plain / Emacs / Vim from the status bar; the choice persists; **Emacs is the default** so typing is insertion, not Vim normal mode\n- Vim mode: visual selections render properly (`v` / `V` / `<C-v>`); `:w` saves, `:q` closes the tab, `:qa` closes all, `:x` / `:wq` save and close, `:vs` / `:sp` split left-right / top-bottom, `:only` unsplits; append `!` to force (skip unsaved-change confirmation)\n- Editor split: `:vs` / `:sp` splits only the editor body into two file views — the toolbar and tab bar stay single, nothing is duplicated; the split pane's tab is underlined, clicking a tab switches the focused pane's file; drag the sash to resize, `:only` or the \"Unsplit\" toolbar button merges back\n- Editor → chat: a floating \"Add to chat\" button appears on selection; the toolbar and the tab right-click menu can add the whole file — the same official composer chip as terminal / network refs, with the file path as context\n- Markdown: edit, preview, or split; GFM; http(s) and workspace-relative images; Mermaid fenced blocks (flowchart, sequence, state, class, ER, XY chart via [beautiful-mermaid](https://www.npmjs.com/package/beautiful-mermaid)); workspace file links open in the editor; unsafe links are blocked\n- **Canvas**: `.canvas/<name>.canvas.tsx` under the workspace root; edit / preview / split like Markdown; host transpiles TSX, browser mounts a self-contained React component; **auto-open in preview** after Agent write/edit; manual open from the file tree defaults to preview too\n- Git working-tree diffs and commit diffs open as editor tabs\n- Image preview: png, jpg, jpeg, gif, webp, avif, bmp, ico\n- Table preview: csv, tsv, xlsx (UTF-8, then GB18030 if the file looks garbled). `.xls` is recognized but opens in an external app\n- New empty file; new terminal tab (<kbd>Alt</kbd>+<kbd>J</kbd>)\n\n### Agent Control Plane\n\n- **First editor tab** (**Control Plane** / **Agent Control Plane**). Toggle under Settings → **Agent control plane**; on by default\n- **Execution trajectory** (default): chronological user messages, each LLM round (expand for tools and agent reply), context injections, and more; left rail with blue / purple / orange fishbone lines; foldable rows with full tool I/O\n- **Capabilities**: current-session agent inventory — model, tools, prompt sections, sub-agents, environment plugins; overview stats on top, trajectory-style list below with adjustable knobs\n- Auto-refresh (~every 4s); manual **Refresh**; **Clear all knobs** resets session overrides\n- Requires an open session on the left. See [Agent Control Plane](#agent-control-plane)\n\n### File tree\n\n- Browse, expand, open, new, rename, delete (with confirmation)\n- Toggle hidden files; `.gitignore` ignored files are marked\n- Filter by file name\n- Open a file or the whole workspace in Cursor, VS Code, VS Code Insiders, VSCodium, Windsurf, Zed, or the system default (only apps that are actually installed)\n- Truncation notice when a folder is too large to list in full\n\n### Git\n\n- `git init` plus `user.name` / `user.email` when the folder is not a repo\n- Staged / unstaged / untracked lists\n- Stage, unstage, and whole-section actions\n- Discard unstaged edits or delete untracked files (with confirmation)\n- Open a file diff in the editor\n- Commit, commit all, <kbd>Ctrl</kbd>+<kbd>Enter</kbd>\n- Streamed AI commit messages; customizable template\n- Fetch / pull / push. Dirty tree, behind remote, detached HEAD, and missing upstream block the unsafe click. No `--force`\n- Pull mode: merge / fast-forward only / rebase. Push mode: normal / force-with-lease\n- Switch branch, create and switch, merge (conflicts abort cleanly)\n- Ahead / behind counts and remote probe\n- GRAPH: commit graph, compact by default (messa","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-15c22707db290fe8","name":"dsh-at-file","description":"Adds Codex-style @path mentions and workspace file search to the DeepSeek Harness web composer.","description_zh":"在 DSH Web 撰写框输入 @，搜索当前工作区的文件和目录并插入路径引用；只发送工作区相对路径，不读取被引用文件内容。上游提示新版 DSH 已内建 @file 与 @session，插件仅以 best-effort 方式维护。","description_en":"Adds an `@` path picker to the DSH Web composer for searching workspace files and directories. It inserts relative-path references without reading file contents. Newer DSH releases include built-in `@file` and `@session`; this plugin is maintained on a best-effort basis.","author":"omdsh-dev","install_spec":"https://github.com/omdsh-dev/dsh-at-file/archive/refs/tags/v0.7.0.tar.gz","repo":"https://github.com/omdsh-dev/dsh-at-file","github_repo_id":1333068434,"category":"editors","tags":["workspace-files","path-picker","file-references"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.392Z","evidence_url":"https://dshplugin.app/plugins/dsh-at-file","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","fetched_at":"2026-11-05T00:23:04.502Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","fetched_at":"2026-11-05T22:10:58.053Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","fetched_at":"2026-11-05T22:20:43.602Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-at-file/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.392Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:43.602Z","reason":"README not available in candidate"}},{"slug":"registry-1669a1b21760368f","name":"TokenLedger","description":"A DeepSeek Harness web plugin that attributes token usage to relay sites and provides usage, balance, cost, export, and diagnostic views.","description_zh":"按实际服务请求的中转站、项目目录和模型汇总 DSH token 用量，提供余额／订阅配额、费用估算、导出与诊断视图；通常无须配置或凭据，余额查询使用宿主已有凭据。README 的展示图使用演示数据。","description_en":"Attributes DSH token usage to relay sites, project directories, and models, with balance or subscription views, cost estimates, exports, and diagnostics. It usually needs no setup; balance checks use host credentials. README screenshots use demo data.","author":"zh667","install_spec":"github:zh667/TokenLedger","repo":"https://github.com/zh667/TokenLedger","github_repo_id":1333969047,"category":"devtools","tags":["token-usage","relay-attribution","cost-estimates","usage-dashboard"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.401Z","evidence_url":"https://dshplugin.app/plugins/tokenledger","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","attribution":"zh667 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","fetched_at":"2026-11-05T22:10:44.272Z","evidence_url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","attribution":"zh667 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","fetched_at":"2026-11-05T22:20:28.154Z","evidence_url":"https://raw.githubusercontent.com/zh667/TokenLedger/main/package.json","attribution":"zh667 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.401Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:28.154Z","reason":"README not available in candidate"}},{"slug":"registry-1b2e7bc083c941f5","name":"dsh-plugin-hub","description":"A DSH Web plugin-management console for toggling installed plugins and discovering/installing GitHub dsh-plugin repositories.","description_zh":"为 DSH 管理插件启停与版本门控，并提供可配置来源的插件/技能浏览和安装；升级失败可回滚。","description_en":"Manages DSH plugin activation and version gating, with a configurable plugin and skill browser; failed upgrades can roll back.","author":"Noob-stupid","install_spec":"@noob-stupid/dsh-plugin-console","repo":"https://github.com/Noob-stupid/dsh-plugin-hub","github_repo_id":1333974533,"category":"devtools","tags":["plugin-manager","version-gating","upgrade-rollback","offline-catalog"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.399Z","evidence_url":"https://dshplugin.app/plugins/dsh-plugin-console","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","fetched_at":"2026-11-05T00:22:40.314Z","evidence_url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","attribution":"Noob-stupid upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","fetched_at":"2026-11-05T00:22:40.314Z","evidence_url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","fetched_at":"2026-11-05T22:10:49.823Z","evidence_url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","attribution":"Noob-stupid upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","fetched_at":"2026-11-05T22:10:49.823Z","evidence_url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","fetched_at":"2026-11-05T22:20:34.141Z","evidence_url":"https://raw.githubusercontent.com/Noob-stupid/dsh-plugin-hub/main/package.json","attribution":"Noob-stupid upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","fetched_at":"2026-11-05T22:20:34.141Z","evidence_url":"https://registry.npmjs.org/%40noob-stupid%2Fdsh-plugin-console/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.399Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:34.141Z","reason":"README not available in candidate"}},{"slug":"registry-2101eac65a674134","name":"dsh-auto-continue","description":"DSH Web UI plugin that automatically sends configurable continue prompts after eligible non-human interruptions.","description_zh":"在可恢复的中断后向 DSH 会话发送配置的继续提示；成功回合后的自主续跑为独立可选模式，并可按会话暂停。","description_en":"Resumes recoverably interrupted DSH sessions with configured prompts; continuing completed turns is a separate opt-in loop, with per-session controls.","author":"HsiangNianian","install_spec":"dsh-client-auto-continue@latest","repo":"https://github.com/HsiangNianian/dsh-auto-continue","github_repo_id":1333738786,"category":"workflow","tags":["session-recovery","auto-continue","loop-guard","session-controls"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.403Z","evidence_url":"https://dshplugin.app/plugins/dsh-auto-continue","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","fetched_at":"2026-11-05T00:22:59.334Z","evidence_url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","attribution":"HsiangNianian upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","fetched_at":"2026-11-05T00:22:59.334Z","evidence_url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","fetched_at":"2026-11-05T22:10:56.497Z","evidence_url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","attribution":"HsiangNianian upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","fetched_at":"2026-11-05T22:10:56.497Z","evidence_url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","fetched_at":"2026-11-05T22:20:41.585Z","evidence_url":"https://raw.githubusercontent.com/HsiangNianian/dsh-auto-continue/main/package.json","attribution":"HsiangNianian upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","fetched_at":"2026-11-05T22:20:41.585Z","evidence_url":"https://registry.npmjs.org/dsh-client-auto-continue/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.403Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:41.585Z","reason":"README not available in candidate"}},{"slug":"registry-2dc6d7d9b89aa903","name":"dsh-notifier","description":"A DeepSeek Harness notification plugin with model-facing tools, automatic session-event alerts, and multi-channel delivery.","description_zh":"把 DSH 的任务通知、审批和问题交互发送到多种消息渠道，并支持从入站渠道远程控制会话；README 标注项目正在大规模重构。","description_en":"Sends DSH task notifications and approval requests across messaging channels, with inbound remote controls; the README says a major refactor is underway.","author":"THEWOLFWALKER","install_spec":"dsh-notifier@latest","repo":"https://github.com/THEWOLFWALKER/dsh-notifier","github_repo_id":1334657392,"category":"im-bots","tags":["notifications","remote-control","messaging-channels","approvals"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.400Z","evidence_url":"https://dshplugin.app/plugins/dsh-notifier","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","fetched_at":"2026-11-05T00:22:54.382Z","evidence_url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","attribution":"THEWOLFWALKER upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","fetched_at":"2026-11-05T22:10:54.179Z","evidence_url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","attribution":"THEWOLFWALKER upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","fetched_at":"2026-11-05T22:20:40.113Z","evidence_url":"https://raw.githubusercontent.com/THEWOLFWALKER/dsh-notifier/main/package.json","attribution":"THEWOLFWALKER upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.400Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.113Z","reason":"README not available in candidate"}},{"slug":"registry-33f5f78f4ccd8858","name":"dsh-im-gateway","description":"DeepSeek Harness IM gateway plugin that connects agents to 20+ chat platforms with session routing, remote approvals, and a web settings UI.","description_zh":"将 DSH agent 接入多种即时通讯平台，统一处理会话路由、远程审批、交互提问与定时提醒。","description_en":"Connects DSH agents to messaging platforms with shared session routing, remote approvals, interactive questions, and scheduled reminders.","author":"zhuiyueya","install_spec":"dsh-im-gateway","repo":"https://github.com/zhuiyueya/dsh-im-gateway","github_repo_id":1333785789,"category":"im-bots","tags":["messaging-gateway","session-routing","remote-approval","chat-platforms"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.402Z","evidence_url":"https://dshplugin.app/plugins/dsh-im-gateway","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","fetched_at":"2026-11-05T00:23:02.757Z","evidence_url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","attribution":"zhuiyueya upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","fetched_at":"2026-11-05T22:10:57.436Z","evidence_url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","attribution":"zhuiyueya upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","fetched_at":"2026-11-05T22:20:42.905Z","evidence_url":"https://raw.githubusercontent.com/zhuiyueya/dsh-im-gateway/main/package.json","attribution":"zhuiyueya upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.402Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:42.905Z","reason":"README not available in candidate"}},{"slug":"registry-36f3e7b6265e6ab7","name":"dsh-focus-chat","description":"A DSH web UI plugin that adds a condensed Focus chat tab for reading conversation outcomes.","description_zh":"在 DSH Web 对话中提供紧凑的 Focus 阅读视图，将工具调用折叠为可展开摘要；项目已归档，功能已由 DSH 内置。","description_en":"Adds a condensed DSH Web conversation view with expandable tool-call summaries; the project is archived and the README says the host now provides this natively.","author":"dingyi222666","install_spec":"@dingyi222666/dsh-focus-chat","repo":"https://github.com/dingyi222666/dsh-focus-chat","github_repo_id":1330188742,"category":"ui-theme","tags":["conversation-view","compact-chat","tool-summaries","archived"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.404Z","evidence_url":"https://dshplugin.app/plugins/dsh-focus-chat","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","fetched_at":"2026-11-05T00:22:49.996Z","evidence_url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","attribution":"dingyi222666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","fetched_at":"2026-11-05T00:22:49.996Z","evidence_url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","fetched_at":"2026-11-05T22:10:52.966Z","evidence_url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","attribution":"dingyi222666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","fetched_at":"2026-11-05T22:10:52.966Z","evidence_url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","fetched_at":"2026-11-05T22:20:38.438Z","evidence_url":"https://raw.githubusercontent.com/dingyi222666/dsh-focus-chat/main/package.json","attribution":"dingyi222666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","fetched_at":"2026-11-05T22:20:38.438Z","evidence_url":"https://registry.npmjs.org/%40dingyi222666%2Fdsh-focus-chat/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.404Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:38.438Z","reason":"README not available in candidate"}},{"slug":"registry-371710ef4adcd9af","name":"dsh-side-chat","description":"Codex-style side conversations for selected text in DeepSeek Harness.","description_zh":"在 DSH Desktop 或 Web 对话中，对选中的消息文本发起独立追问，并可将讨论作为引用加入主对话。临时讨论不创建 Session，也不提供工具或文件编辑；需按 DSH 运行时版本匹配 Side Chat 版本。","description_en":"Starts a focused, text-only follow-up about selected conversation text in DSH Desktop or Web, with an option to attach the discussion to the main chat. Match the plugin version to the DSH runtime; it has no tools or file editing.","author":"AHGGG","install_spec":"@ahggg/dsh-side-chat@1.0.3","repo":"https://github.com/AHGGG/dsh-side-chat","github_repo_id":1333810473,"category":"workflow","tags":["side-chat","conversation-context","text-only"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.407Z","evidence_url":"https://dshplugin.app/plugins/dsh-side-chat","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","fetched_at":"2026-11-05T00:22:39.788Z","evidence_url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","attribution":"AHGGG upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","fetched_at":"2026-11-05T22:10:49.137Z","evidence_url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","attribution":"AHGGG upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","fetched_at":"2026-11-05T22:20:33.769Z","evidence_url":"https://raw.githubusercontent.com/AHGGG/dsh-side-chat/master/package.json","attribution":"AHGGG upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.407Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:33.769Z","reason":"README not available in candidate"}},{"slug":"registry-43bf58a9a09c7bde","name":"dsh-robotic-harness","description":"An installable DeepSeek Harness bundle for robotics and embodied-intelligence workflows, spanning asset inspection, MuJoCo simulation, diagnostics, experiment evidence, and reports.","description_zh":"为 DSH 提供机器人资产检查、MuJoCo 仿真、故障注入、诊断和实验报告工作流；需要 DSH、pnpm 与 Python 3.10，真实机器人和部分后端仍属未充分验证适配器。","description_en":"Provides DSH workflows for robot assets, MuJoCo simulation, fault injection, diagnostics, and experiment reports; requires DSH, pnpm, and Python 3.10, while hardware adapters remain unvalidated.","author":"dingkaihu63","install_spec":"github:dingkaihu63/dsh-robotic-harness","repo":"https://github.com/dingkaihu63/dsh-robotic-harness","github_repo_id":1333392459,"category":"devtools","tags":["robotics","mujoco","simulation","experiment-workflows"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.407Z","evidence_url":"https://dshplugin.app/plugins/dsh-robotic-harness","attribution":"DSH Plugin Registry (independent directory)"}],"data_as_of":"2026-11-05T00:15:41.407Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:28.154Z","reason":"README not available in candidate"}},{"slug":"dsh-composer-polish-74428b","name":"dsh-composer-polish","description":"Composer draft polisher for DeepSeek Harness: a ✨ button in the composer tool row rewrites the current draft with a zero-prefix flash call and fills the polished text straight back into the input box.","description_zh":"在 DSH 输入框中用 DeepSeek Flash 改写草稿并填回编辑框，用户可预览、修改后再发送；依赖宿主模型目录中的 Flash 模型。","description_en":"Rewrites a DSH composer draft with a Flash-class model and fills the result back into the input for review; sending remains a separate user action.","author":"tianji-qingtian","install_spec":"dsh-composer-polish","repo":"https://github.com/tianji-qingtian/dsh-composer-polish","github_repo_id":1333832178,"category":"editors","tags":["composer","prompt-editing","flash-model","draft-workflow"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.406Z","evidence_url":"https://dshplugin.app/plugins/dsh-composer-polish","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","fetched_at":"2026-11-05T00:18:01.550Z","evidence_url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","attribution":"tianji-qingtian upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","fetched_at":"2026-11-05T22:11:29.814Z","evidence_url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","attribution":"tianji-qingtian upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","fetched_at":"2026-11-05T22:23:58.530Z","evidence_url":"https://raw.githubusercontent.com/tianji-qingtian/dsh-composer-polish/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/package.json","attribution":"tianji-qingtian upstream package manifest"}],"data_as_of":"2026-11-05T22:23:58.530Z","readme":{"status":"fetch_failed","source_url":"https://github.com/tianji-qingtian/dsh-composer-polish/blob/efb2b3b224a2b6bb8aea294f16cb5caa4f9d2b91/README.md","source_sha":"e59ac369f48a16c15f82d9d94dce162d87224fb2","fetched_at":"2026-11-05T22:11:29.495Z","checked_at":"2026-11-05T22:23:58.196Z","excerpt":"# dsh-composer-polish\n\nOne-click draft polisher for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) composer. Type a rambling draft, hit the **✨ 润色 / Polish** button in the input tool row, and a few seconds later the polished text replaces the draft in the input box — you preview, maybe edit, then send. No scoring, no evaluations: draft in → better draft out.\n\n> The harness is in developer preview and iterates quickly — expect compatibility-breaking changes.\n\n> 中文说明见 [README.zh.md](README.zh.md)。\n\n## Features\n\n- **✨ button in the tool row** — sits in `conversation.input.right`, the official seat for clickable controls beside the send button. Disabled while the draft is empty or pure whitespace, shows a spinner while polishing, and never lets double-clicks fire a second request.\n- **Zero-prefix flash rewrite** — the host half rewrites the draft with a single `deepseek-v4-flash` stream (`reasoningEffort: 'off'`, ~2000 token cap). The main model never runs and its prefix cache is never touched. If the pinned model id is missing from the provider catalog, it retries once with a flash-class model discovered via `llm.listModels`.\n- **Fill-back, not chat** — the polished text goes straight into the input box through `inputActions.setDraft`, the official public draft write path. You can edit it again or polish a second time; nothing is sent until you press send. Image attachments are never touched — only the text is replaced.\n- **Fails silent** — a failed or empty rewrite leaves the draft untouched (console log only, no toasts).\n- **Privacy** — the `/polish` command registers with `recordInput: false`, so the raw draft never lands in the session log; only the polished result is recorded in `command/done`.\n- **No custom wire protocol** — Client→Host rides the harness's built-in `commands` remote (the same channel the shipped `/` commands use).\n- **i18n zh/en** — button label and tooltip follow the harness `locale` service.\n- **Language and voice follow the draft** — the rewrite answers in the draft's language and keeps the user's voice (it strips filler but won't turn the text more formal, salesy, or robotic); code blocks, file paths, command lines, identifiers, and technical terms stay verbatim.\n\n## Screenshots\n\nThe ✨ Polish button in the composer tool row, next to the send button:\n\n![polish button demo](imgs/demo1.png)\n\n## Install\n\n### Prerequisites\n\nThe `dsh` CLI must be on your `PATH`. If you only ever ran the harness through `npx`, `dsh` is not installed and you will get `zsh: command not found: dsh` — install it globally first. This release targets harness `0.2.0-rc.1` (for an older harness use tag `v0.1.5`):\n\n```sh\nnpm install -g @deepseek-ai/dsh\n```\n\n`pnpm add -g @deepseek-ai/dsh` also works if your pnpm global bin dir is on `PATH` (otherwise pnpm asks you to run `pnpm setup` first). Alternatively skip the global install and prefix the commands below with `npx @deepseek-ai/dsh …`.\n\n### Add the bundle\n\n```sh\n# 1. add the bundle to your web profile (pnpm-backed; the built lib/ artifacts\n#    are committed in this repo, so no build script runs at install time)\ndsh plugin --profile web add \"github:tianji-qingtian/dsh-composer-polish#v0.1.6\"\n\n# 2. restart the harness with that profile — `add` only edits the profile\n#    files; a running instance does not hot-load the new bundle\ndsh --profile web\n```\n\nAfter the restart the ✨ button appears in the composer tool row, next to the send button, and the `/polish` command is registered once the host half loads. Verify under Settings → Plugins that `dsh-composer-polish` is listed.\n\n## How it works\n\n| Piece | Mechanism |\n| --- | --- |\n| Button seat | `conversation.input.right` list slot (session scope); the standard kit's selector hook `useInput((s) => s)` reads the draft, `inputActions.setDraft()` writes it back |\n| Client → Host | built-in `commands` remote, hard-injected (`inject: ['remote', 'remote.commands']`): `ctx.remote.commands.execute(sessionId, '/polish ' + draft)` — the same roundtrip the shipped slash commands use; no custom RPC |\n| Host rewrite | `/polish` command handler → zero-prefix `ctx.llm.stream` on `deepseek-official` / `deepseek-v4-flash` (`reasoningEffort: 'off'`, `maxTokens` 2000), one-shot, with a one-time catalog fallback when the pinned model id is unavailable |\n| Result channel | handler returns `{ kind: 'success', text }`; the client reads it from `CommandExecution.result.text` and fills it back via `setDraft` |\n| Privacy | `recordInput: false` → `command/run` omits `args`, so the raw draft is never written to the session log |\n| Stale-edit guard | the client captures `draftRev` at click time; if the draft changed while polishing, the result is discarded instead of clobbering newer edits |\n| Draft cap | both halves cap the draft at 50 KB; longer drafts are truncated client-side before sending |\n\n## Behavior spec (from REQUIREMENTS.md)\n\n| # | Scenario | Behavior |\n| --- | --- | --- |\n| 1 | Non-empty draft, click ✨ | read draft → flash rewrite → fill back |\n| 2 | Empty / whitespace-only draft | button disabled |\n| 3 | Rewrite fails / returns empty | draft untouched, console log only, no toast |\n| 4 | Rewrite in flight | button shows spinner, repeat clicks blocked |\n| 5 | Draft has image attachments | only the text is polished; images untouched |\n| 6 | Chinese / English draft | rewritten in the draft's language |\n| 7 | Code blocks / lists / technical terms | structure kept, code verbatim, no accuracy changes |\n\n## Harness compatibility\n\nBuilt and verified against harness `0.2.0-rc.1`.\n\nThe harness checks a plugin's `@deepseek-ai/dsh*` `peerDependencies` ranges both when\nthe package is installed and when a profile starts. A plugin whose declared range does\nnot cover the running `dsh --version` is refused or skipped (`skipping profile bundle\n\"dsh-composer-polish\": Plugin dsh-composer-polish@… is incompatible with dsh …`), which\nis why an outdated plugin simply disappears from the composer after a harness upgrade.\nv0.1.6 widens the ranges to `^0.2.0-rc.1`; the host code itself needed no change —\n`commands.register` (with `recordInput`), `llm.stream`, and the client-side\n`useInput` selector + `inputActions.setDraft` + `remote.commands.execute(sessionId,\nline, [])` are unchanged in 0.2.0. For the `0.1.x` harness line use tag `v0.1.5`.\n\n## Build\n\n```sh\npnpm install\npnpm build   # tsdown: lib/index.js (ESM host) + lib/client.js (ModuleLoader client bundle)\n```\n\n## Known limitations\n\n- The fill-back is skipped when the draft changed during the rewrite (stale-edit guard) — by design, your newer edits always win.\n- Drafts over 50 KB are truncated before the rewrite (a draft of that size is beyond what a single flash call can meaningfully restructure anyway).\n- The polished result is recorded in `command/done` (the commands channel's own lifecycle log); only the *original* draft is kept out of the log via `recordInput: false`.\n- `deepseek-v4-flash` is pinned as the rewrite model; if the harness renames model ids, the catalog fallback picks a flash-class replacement and logs a line.\n\n## License\n\nMIT\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-476b72d58b59431c","name":"dsh-plugin-workshop","description":"A Steam Workshop-style browser and manager for discovering and managing DSH plugins from the DSH Web UI.","description_zh":"在 DSH Web 侧栏提供插件浏览、中文搜索、排序与趋势查看，并管理本机已安装插件；单包运行，无需部署市场服务。","description_en":"Adds a DSH Web sidebar for browsing and searching plugins, sorting discovery results, and managing installed plugins without a separate market service.","author":"yyyyukari","install_spec":"github:yyyyukari/dsh-plugin-workshop","repo":"https://github.com/yyyyukari/dsh-plugin-workshop","github_repo_id":1333779377,"category":"devtools","tags":["plugin-browser","plugin-manager","catalog-search","web-ui"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.400Z","evidence_url":"https://dshplugin.app/plugins/dsh-plugin-workshop","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","fetched_at":"2026-11-05T00:22:58.833Z","evidence_url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","attribution":"yyyyukari upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","fetched_at":"2026-11-05T22:10:55.435Z","evidence_url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","attribution":"yyyyukari upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","fetched_at":"2026-11-05T22:20:40.519Z","evidence_url":"https://raw.githubusercontent.com/yyyyukari/dsh-plugin-workshop/master/package.json","attribution":"yyyyukari upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.400Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.519Z","reason":"README not available in candidate"}},{"slug":"dsh-voice-prompt-enhancer-afee79","name":"dsh-voice-prompt-enhancer","description":"DeepSeek Harness (DSH) plugin: prompt optimization (✨) + voice input enhancement (💬)","description_zh":"为 DSH 输入框提供草稿提示词改写和语音输入增强，包括热键、停顿检测、口语词清理与纠错；具体语音能力依赖项目实现与宿主环境。","description_en":"Adds draft prompt rewriting and voice-input helpers to DSH, including hotkeys, pause-based stopping, filler cleanup, and correction.","author":"Fishsb","install_spec":"dsh-voice-prompt-enhancer","repo":"https://github.com/Fishsb/dsh-prompt-enhancer","github_repo_id":1333612974,"category":"editors","tags":["voice-input","prompt-editing","dictation","composer"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.408Z","evidence_url":"https://dshplugin.app/plugins/dsh-prompt-enhancer","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/66421001c11b31ebdbc011407ff5725fd1d78fa5/package.json","fetched_at":"2026-11-05T00:18:22.542Z","evidence_url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/66421001c11b31ebdbc011407ff5725fd1d78fa5/package.json","attribution":"Fishsb upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/79c4e7ba0a99d9f7eb160bc1e63881d053217fbb/package.json","fetched_at":"2026-11-05T22:11:43.404Z","evidence_url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/79c4e7ba0a99d9f7eb160bc1e63881d053217fbb/package.json","attribution":"Fishsb upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/79c4e7ba0a99d9f7eb160bc1e63881d053217fbb/package.json","fetched_at":"2026-11-05T22:24:04.406Z","evidence_url":"https://raw.githubusercontent.com/Fishsb/dsh-prompt-enhancer/79c4e7ba0a99d9f7eb160bc1e63881d053217fbb/package.json","attribution":"Fishsb upstream package manifest"}],"data_as_of":"2026-11-05T22:24:04.406Z","readme":{"status":"fetch_failed","source_url":"https://github.com/Fishsb/dsh-prompt-enhancer/blob/79c4e7ba0a99d9f7eb160bc1e63881d053217fbb/README.md","source_sha":"d078e72ef7584b69e2f176b9d4b4295a152c0c3d","fetched_at":"2026-11-05T22:11:43.102Z","checked_at":"2026-11-05T22:24:04.081Z","excerpt":"# dsh-voice-prompt-enhancer\n\nDeepSeek Harness（DSH）插件：**提示词优化** + **语音输入增强** —— 把输入框草稿改写得更清晰、可执行，并给语音输入加上热键、说完自动停、清口水词与纠错。\n\n草稿常常只有半句要求，交给模型后还要来回补问——点一下 ✨ 就地改写，不满意可撤回；语音则直接说，停顿即停，结果落回输入框。\n\n[![Release](https://img.shields.io/github/v/release/Fishsb/dsh-voice-prompt-enhancer)](https://github.com/Fishsb/dsh-voice-prompt-enhancer/releases) [![Stars](https://img.shields.io/github/stars/Fishsb/dsh-voice-prompt-enhancer)](https://github.com/Fishsb/dsh-voice-prompt-enhancer/stargazers) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE) [![DSH](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FFishsb%2Fdsh-voice-prompt-enhancer%2Fmain%2Fpackage.json&query=%24.peerDependencies%5B%27%40deepseek-ai%2Fdsh-client-locale%27%5D&label=DSH&color=blue)](docs/compatibility-matrix.md)\n\n## 安装\n\n```sh\ndsh plugin --profile web add dsh-voice-prompt-enhancer\ndsh plugin --profile web update dsh-voice-prompt-enhancer   # 更新\ndsh plugin --profile web remove dsh-voice-prompt-enhancer   # 卸载\n```\n\n也可以从 GitHub 指定 tag 安装：\n\n```sh\ndsh plugin --profile web add github:Fishsb/dsh-voice-prompt-enhancer#v3.5.1\n```\n\n装完（或更新 / 卸载后）重启 DSH，输入框工具行出现 ✨ 即安装成功。需本机已装 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) **≥ 0.2.1-rc.1** 且 `pnpm` 在 PATH 中。\n\n## 能做什么\n\n**提示词优化**\n\n- ✨ **一键优化** — 改写当前草稿，可继续优化、可撤回、优化中可取消\n- **5 种模式** — 基础 / 轻量 / 标准 / 专家 / 一键发布\n- **记忆开关** — 发送前的多轮优化累积为记忆链，发送即清空（默认关）\n- **模型链** — 多个模型按序尝试，可增删改序、开关思考、行内测连通性\n\n**语音输入增强**（识别由 DSH 官方 `speechToText` 提供；插件不自带识别引擎、不下载模型）\n\n- **两种入口** — 官方 🎤 按钮，或插件热键（点按开始 / 再按停止；长按 = 按住说、松开停）\n- **静音监测** — 说完自动停，判定时长 1–5 秒可调（默认 2 秒），可整体关闭\n- **清口水词** — 本地规则清理语气词 / 重复 / 拖音，不改写、不新增（默认开）\n- **语音纠错** — 识别完成后做字词层订正，仅作用于语音路径（默认关）\n- **自动增强** — 识别结果填入草稿后自动触发增强（默认关）\n\n按钮与文案跟随 DSH 界面语言（中文 / English）。\n\n## 设置项速查\n\n设置 →「提示词增强」，改动即时保存：\n\n| 位置 | 内容 |\n|---|---|\n| 模型配置 | 模型链；语音识别：热键、静音监测（1–5 秒）、清口水词、语音纠错、自动增强 |\n| 优化参数 | 优化模式、模板、记忆开关、上下文预算、超时 / 回复长度 / 输出上限 |\n\n录音采集、识别与写回都由 DSH 官方语音控件完成，插件只叠加上述增值。录音不落盘。\n\n![语音输入](docs/screenshots/voice-main.png)\n\n[Releases](https://github.com/Fishsb/dsh-voice-prompt-enhancer/releases) · [CHANGELOG](CHANGELOG.md) · [兼容性说明](docs/compatibility-matrix.md) · Licensed under [Apache-2.0](LICENSE)\n\n> 隐私：插件不记录、不上报任何数据；增强结果来自外部 LLM，发送前请自行核对。\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-4bc8e12e17039df4","name":"dsh-multica-runtime","description":"A private runtime bridge that connects Multica to DeepSeek Harness through a versioned JSONL stdio protocol.","description_zh":"为 Multica 提供连接 DeepSeek Harness 的私有、进程外运行时桥接，通过版本化 JSONL 标准输入输出协议通信。","description_en":"Bridges Multica to DeepSeek Harness through a private out-of-tree runtime using a versioned JSONL protocol over standard input and output.","author":"multica-ai","repo":"https://github.com/multica-ai/dsh-multica-runtime","github_repo_id":1331025830,"category":"devtools","tags":["runtime-bridge","jsonl-protocol","multica-integration","private-package"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.398Z","evidence_url":"https://dshplugin.app/plugins/dsh-multica-runtime","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","fetched_at":"2026-11-05T00:22:55.341Z","evidence_url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","attribution":"multica-ai upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-deja/latest","fetched_at":"2026-11-05T00:22:55.341Z","evidence_url":"https://registry.npmjs.org/dsh-deja/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","fetched_at":"2026-11-05T22:10:55.397Z","evidence_url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","attribution":"multica-ai upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-deja/latest","fetched_at":"2026-11-05T22:10:55.397Z","evidence_url":"https://registry.npmjs.org/dsh-deja/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","fetched_at":"2026-11-05T22:20:40.469Z","evidence_url":"https://raw.githubusercontent.com/multica-ai/dsh-multica-runtime/main/package.json","attribution":"multica-ai upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-deja/latest","fetched_at":"2026-11-05T22:20:40.469Z","evidence_url":"https://registry.npmjs.org/dsh-deja/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.398Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.469Z","reason":"README not available in candidate"}},{"slug":"registry-4c1c21e3369e3702","name":"dsh-usage-plugin","description":"DeepSeek Harness plugin that tracks per-call token usage, cache activity, and estimated costs in the web UI.","description_zh":"在 DSH 界面记录每次模型调用的 token 与缓存命中用量、估算费用和余额，并提供热度日历及 CSV、JSON、PNG 导出。","description_en":"Tracks per-call token and cache usage and estimated costs in DSH, with balance lookup, a calendar view, and CSV, JSON, or PNG exports.","author":"feiyang-dev","install_spec":"@feiyang666/dsh-usage-plugin","repo":"https://github.com/feiyang-dev/dsh-usage-plugin","github_repo_id":1334268109,"category":"devtools","tags":["usage-tracking","token-metrics","cost-estimates","data-export"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.401Z","evidence_url":"https://dshplugin.app/plugins/dsh-usage-plugin","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","attribution":"feiyang-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","fetched_at":"2026-11-05T22:10:44.271Z","evidence_url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","attribution":"feiyang-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","fetched_at":"2026-11-05T22:10:44.271Z","evidence_url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","fetched_at":"2026-11-05T22:20:28.154Z","evidence_url":"https://raw.githubusercontent.com/feiyang-dev/dsh-usage-plugin/main/package.json","attribution":"feiyang-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","fetched_at":"2026-11-05T22:20:28.154Z","evidence_url":"https://registry.npmjs.org/%40feiyang666%2Fdsh-usage-plugin/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.401Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:28.154Z","reason":"README not available in candidate"}},{"slug":"registry-53e4c67232781625","name":"dsh-gui-customization","description":"A DeepSeek Harness Web UI customization plugin for themes, ambient lighting, image/video backgrounds, and persistent bilingual settings.","description_zh":"为 DSH Web 界面更换主题与外观，支持氛围灯、图片或视频背景及中英双语设置持久化。","description_en":"Customizes the DSH Web interface with themes, ambient lighting, image or video backgrounds, and persistent bilingual settings.","author":"LAN-TINA-WS","install_spec":"dsh-gui-customization","repo":"https://github.com/LAN-TINA-WS/dsh-gui-customization","github_repo_id":1333966638,"category":"ui-theme","tags":["themes","backgrounds","ambient-lighting","bilingual-settings"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.406Z","evidence_url":"https://dshplugin.app/plugins/dsh-gui-customization","attribution":"DSH Plugin Registry (independent directory)"}],"data_as_of":"2026-11-05T00:15:41.406Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:36.776Z","reason":"README not available in candidate"}},{"slug":"registry-54b8ddf1dd1a9f19","name":"dsh-market","description":"An in-DeepSeek Harness visual plugin marketplace for browsing, searching, installing, updating, and removing community plugins.","description_zh":"在 DeepSeek Harness 内浏览、搜索并安装社区插件，同时支持更新、移除和已安装插件管理；部分功能取决于宿主版本。","description_en":"Browses, searches, installs, updates, and removes community plugins inside DSH, with host-version-specific market entry points.","author":"dsh-market","install_spec":"dshmarket","repo":"https://github.com/dsh-market/dsh-market","github_repo_id":1333807290,"category":"devtools","tags":["plugin-market","plugin-manager","catalog-search","community-plugins"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.390Z","evidence_url":"https://dshplugin.app/plugins/dsh-market","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","fetched_at":"2026-11-05T00:22:52.093Z","evidence_url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","attribution":"dsh-market upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dshmarket/latest","fetched_at":"2026-11-05T00:22:52.093Z","evidence_url":"https://registry.npmjs.org/dshmarket/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","fetched_at":"2026-11-05T22:10:54.043Z","evidence_url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","attribution":"dsh-market upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dshmarket/latest","fetched_at":"2026-11-05T22:10:54.043Z","evidence_url":"https://registry.npmjs.org/dshmarket/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","fetched_at":"2026-11-05T22:20:39.090Z","evidence_url":"https://raw.githubusercontent.com/dsh-market/dsh-market/main/package.json","attribution":"dsh-market upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dshmarket/latest","fetched_at":"2026-11-05T22:20:39.090Z","evidence_url":"https://registry.npmjs.org/dshmarket/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.390Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:39.090Z","reason":"README not available in candidate"}},{"slug":"registry-57901b92bc275e80","name":"dsh-pocket","description":"A DeepSeek Harness web plugin that lets you access and control a running desktop DSH web interface from a phone via QR code.","description_zh":"通过二维码从手机访问并操作运行中的桌面 DSH Web 界面，提供移动端远程访问入口。","description_en":"Provides QR-code-based phone access to a running desktop DSH Web interface for remote viewing and control.","author":"shaobeichen","install_spec":"dsh-pocket","repo":"https://github.com/shaobeichen/dsh-pocket","github_repo_id":1334962266,"category":"im-bots","tags":["mobile-access","qr-pairing","remote-control","web-interface"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.405Z","evidence_url":"https://dshplugin.app/plugins/dsh-pocket","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","fetched_at":"2026-11-05T00:23:01.402Z","evidence_url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","attribution":"shaobeichen upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-pocket/latest","fetched_at":"2026-11-05T00:23:01.402Z","evidence_url":"https://registry.npmjs.org/dsh-pocket/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","fetched_at":"2026-11-05T22:10:57.413Z","evidence_url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","attribution":"shaobeichen upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-pocket/latest","fetched_at":"2026-11-05T22:10:57.413Z","evidence_url":"https://registry.npmjs.org/dsh-pocket/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","fetched_at":"2026-11-05T22:20:42.773Z","evidence_url":"https://raw.githubusercontent.com/shaobeichen/dsh-pocket/main/package.json","attribution":"shaobeichen upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-pocket/latest","fetched_at":"2026-11-05T22:20:42.773Z","evidence_url":"https://registry.npmjs.org/dsh-pocket/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.405Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:42.773Z","reason":"README not available in candidate"}},{"slug":"registry-5b33168aa0b8da67","name":"dsh-git-graph","description":"An embedded Git repository graph and workspace-change visualizer for the DeepSeek Harness Web GUI.","description_zh":"在 DSH Web GUI 中查看 Git 提交图、分支、文件差异与工作区改动，并执行界面内 Git 操作。","description_en":"Visualizes Git commit history, branches, diffs, and working-tree changes inside the DSH Web GUI, with in-interface Git operations.","author":"1841220388zzzcccxxx-star","install_spec":"dsh-git-graph","repo":"https://github.com/1841220388zzzcccxxx-star/dsh-git-graph","github_repo_id":1333924678,"category":"devtools","tags":["git-visualization","commit-history","branch-management","diff-viewer"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.407Z","evidence_url":"https://dshplugin.app/plugins/dsh-git-graph-1841220388zzzcccxxx-star","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","fetched_at":"2026-11-05T00:23:08.368Z","evidence_url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","attribution":"1841220388zzzcccxxx-star upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","fetched_at":"2026-11-05T22:10:58.872Z","evidence_url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","attribution":"1841220388zzzcccxxx-star upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","fetched_at":"2026-11-05T22:20:44.452Z","evidence_url":"https://raw.githubusercontent.com/1841220388zzzcccxxx-star/dsh-git-graph/main/package.json","attribution":"1841220388zzzcccxxx-star upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.407Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:44.452Z","reason":"README not available in candidate"}},{"slug":"registry-61b474e70c8ca341","name":"dsh-smooth-stream","description":"A DeepSeek Harness Web UI plugin that smooths streamed response rendering and follow behavior.","description_zh":"平滑呈现 DSH 流式回复并跟随内容滚动，README 声称覆盖 Markdown、代码块、表格和工具结果的渐进渲染。","description_en":"Smooths incremental DSH reply rendering and scrolling; the manifest says it covers Markdown, code blocks, tables, and tool results.","author":"Laplace-bit","install_spec":"dsh-smooth-stream","repo":"https://github.com/Laplace-bit/dsh-smooth-stream","github_repo_id":1334813049,"category":"ui-theme","tags":["streaming-rendering","smooth-scrolling","markdown-display","chat-ui"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.411Z","evidence_url":"https://dshplugin.app/plugins/dsh-smooth-stream","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","fetched_at":"2026-11-05T00:22:46.028Z","evidence_url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","attribution":"Laplace-bit upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-smooth-stream/latest","fetched_at":"2026-11-05T00:22:46.028Z","evidence_url":"https://registry.npmjs.org/dsh-smooth-stream/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","fetched_at":"2026-11-05T22:10:51.977Z","evidence_url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","attribution":"Laplace-bit upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-smooth-stream/latest","fetched_at":"2026-11-05T22:10:51.977Z","evidence_url":"https://registry.npmjs.org/dsh-smooth-stream/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","fetched_at":"2026-11-05T22:20:36.875Z","evidence_url":"https://raw.githubusercontent.com/Laplace-bit/dsh-smooth-stream/main/package.json","attribution":"Laplace-bit upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-smooth-stream/latest","fetched_at":"2026-11-05T22:20:36.875Z","evidence_url":"https://registry.npmjs.org/dsh-smooth-stream/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.411Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:36.875Z","reason":"README not available in candidate"}},{"slug":"registry-6733a1b98bf83d52","name":"dsh-cc-tui","description":"Claude Code-style full-screen terminal UI plugin for DeepSeek Harness agents.","description_zh":"提供 DeepSeek Harness 会话、工具与代理交互的全屏终端界面，含会话管理、模型切换和终端面板；需 Node.js 与 DSH。","description_en":"Provides a full-screen terminal interface for DeepSeek Harness sessions, tools, and agents, with session management and model controls; requires Node.js and DSH.","author":"ccch1mneyyy","install_spec":"@deepseek-harness-tui/dsh-tui","repo":"https://github.com/ccch1mneyyy/dsh-TUI","github_repo_id":1333111893,"category":"editors","tags":["terminal-ui","session-management","agent-tools"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.388Z","evidence_url":"https://dshplugin.app/plugins/dsh-cc-tui","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","fetched_at":"2026-11-05T00:22:59.488Z","evidence_url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","attribution":"ccch1mneyyy upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","fetched_at":"2026-11-05T22:10:56.595Z","evidence_url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","attribution":"ccch1mneyyy upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","fetched_at":"2026-11-05T22:20:41.951Z","evidence_url":"https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/main/package.json","attribution":"ccch1mneyyy upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.388Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:41.951Z","reason":"README not available in candidate"}},{"slug":"registry-68536ebb744ee1bf","name":"dsh-better-sidebar","description":"A DSH web plugin that adds a VS Code-like, session-isolated sidebar and bottom-panel workspace with extensibility APIs.","description_zh":"为 DSH 增加原生侧栏与底部工作台，提供文件浏览编辑、Git、终端、任务和独立侧聊；需 DSH 0.2.2-rc.1+，旧版须选配套版本。","description_en":"Adds a DSH right sidebar and bottom workbench for files, Git, terminals, tasks, and side chats; requires DSH 0.2.2-rc.1+ or a matching older release.","author":"omdsh-dev","install_spec":"dsh-better-sidebar@latest","repo":"https://github.com/omdsh-dev/DSH-better-sidebar","github_repo_id":1326893710,"category":"ui-theme","tags":["sidebar","workbench","file-management","git"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.387Z","evidence_url":"https://dshplugin.app/plugins/dsh-better-sidebar","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-better-sidebar/latest","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://registry.npmjs.org/dsh-better-sidebar/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","fetched_at":"2026-11-05T22:10:44.271Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-better-sidebar/latest","fetched_at":"2026-11-05T22:10:44.271Z","evidence_url":"https://registry.npmjs.org/dsh-better-sidebar/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","fetched_at":"2026-11-05T22:20:28.154Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-better-sidebar/latest","fetched_at":"2026-11-05T22:20:28.154Z","evidence_url":"https://registry.npmjs.org/dsh-better-sidebar/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.387Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:28.154Z","reason":"README not available in candidate"}},{"slug":"registry-6b9f74adf9f112d1","name":"dsh-undo-plugin","description":"Crash-rescue undo and rollback plugin for DeepSeek Harness, with snapshots, Safe Mode, and offline recovery tools.","description_zh":"为 DSH 配置与插件代码建立快照，支持撤销、重做、指定版本回退及崩溃时的离线恢复；需 Node.js，版本范围不符会拒绝加载。","description_en":"Snapshots DSH configuration and plugin files for undo, redo, version restore, and offline crash recovery; requires Node.js and rejects unsupported host versions.","author":"lire1131","install_spec":"dsh-undo-savepoint","repo":"https://github.com/lire1131/dsh-undo-plugin","github_repo_id":1333816810,"category":"security","tags":["rollback","snapshots","recovery","configuration"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.395Z","evidence_url":"https://dshplugin.app/plugins/dsh-undo-plugin","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","fetched_at":"2026-11-05T00:22:40.504Z","evidence_url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","attribution":"lire1131 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","fetched_at":"2026-11-05T22:10:50.346Z","evidence_url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","attribution":"lire1131 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","fetched_at":"2026-11-05T22:20:34.985Z","evidence_url":"https://raw.githubusercontent.com/lire1131/dsh-undo-plugin/master/package.json","attribution":"lire1131 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.395Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:34.985Z","reason":"README not available in candidate"}},{"slug":"registry-745f8960799a486b","name":"dsh-openbiliclaw","description":"A DeepSeek Harness client plugin that embeds OpenBiliClaw recommendations, saved content, profile, dialogue, settings, and agent tools in the DSH web UI.","description_zh":"在 DSH Web GUI 中展示 OpenBiliClaw 推荐、收藏、画像与对话，并注册 Agent 工具；需要运行中的 OpenBiliClaw 后端及 Agent Bridge v2，爬取仍由主项目负责。","description_en":"Brings OpenBiliClaw recommendations, saved items, profiles, and dialogue into DSH Web and exposes agent tools; requires its running backend with Agent Bridge v2. Crawling stays in the main project.","author":"whiteguo233","install_spec":"@openbiliclaw/dsh-plugin","repo":"https://github.com/whiteguo233/dsh-openbiliclaw","github_repo_id":1332396549,"category":"tools-mcp","tags":["content-recommendations","agent-tools","web-ui","external-backend"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.399Z","evidence_url":"https://dshplugin.app/plugins/dsh-openbiliclaw","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","fetched_at":"2026-11-05T00:22:52.080Z","evidence_url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","attribution":"whiteguo233 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","fetched_at":"2026-11-05T22:10:53.773Z","evidence_url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","attribution":"whiteguo233 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","fetched_at":"2026-11-05T22:20:38.937Z","evidence_url":"https://raw.githubusercontent.com/whiteguo233/dsh-openbiliclaw/main/package.json","attribution":"whiteguo233 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.399Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:38.937Z","reason":"README not available in candidate"}},{"slug":"registry-78cb83657a23f388","name":"dsh-mneme","description":"Persistent structured-memory plugin for DeepSeek Harness with Markdown mirrors, semantic search, and optional background consolidation.","description_zh":"为 DSH 提供跨会话结构化记忆，支持语义检索、后台整理与 Markdown 镜像；记忆保存在本机，离线语义检索需配置本地嵌入。","description_en":"Adds cross-session structured memory to DSH with retrieval, background consolidation, and Markdown mirrors; data stays local, while offline semantic search requires local embeddings.","author":"modusensus","install_spec":"@modusensus/dsh-mneme","repo":"https://github.com/modusensus/dsh-mneme","github_repo_id":1333254657,"category":"memory-rag","tags":["persistent-memory","semantic-search","markdown","local-first"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.404Z","evidence_url":"https://dshplugin.app/plugins/dsh-mneme","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"npm","url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","fetched_at":"2026-11-05T00:22:55.015Z","evidence_url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","attribution":"npm registry package metadata"},{"kind":"npm","url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","fetched_at":"2026-11-05T22:10:54.590Z","evidence_url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","attribution":"npm registry package metadata"},{"kind":"npm","url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","fetched_at":"2026-11-05T22:20:40.177Z","evidence_url":"https://registry.npmjs.org/%40modusensus%2Fdsh-mneme/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.404Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.177Z","reason":"README not available in candidate"}},{"slug":"dsh-user-experience-2445d2","name":"dsh-user-experience","description":"DeepSeek Harness UX walkthrough plugin: persona-driven source-code UX review for React (TypeScript/JavaScript) and Vue 3 projects, with change-triggered automatic walkthroughs","description_zh":"按目标用户画像检查 React、Vue 3 前端流程与界面，结合静态代码及可用的浏览器证据生成可复核问题；Svelte、Vue 2 不在支持范围。","description_en":"Reviews React and Vue 3 user flows against target personas using source and optional browser evidence; Svelte and Vue 2 are explicitly unsupported.","author":"DietCokewithSugar","install_spec":"dsh-user-experience@0.4.2","repo":"https://github.com/DietCokewithSugar/dsh-user-experience","github_repo_id":1333732751,"category":"devtools","tags":["ux-review","react","vue3","personas"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.404Z","evidence_url":"https://dshplugin.app/plugins/dsh-user-experience","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","fetched_at":"2026-11-05T00:18:45.355Z","evidence_url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","attribution":"DietCokewithSugar upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","fetched_at":"2026-11-05T22:11:52.945Z","evidence_url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","attribution":"DietCokewithSugar upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","fetched_at":"2026-11-05T22:24:10.372Z","evidence_url":"https://raw.githubusercontent.com/DietCokewithSugar/dsh-user-experience/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/package.json","attribution":"DietCokewithSugar upstream package manifest"}],"data_as_of":"2026-11-05T22:24:10.372Z","readme":{"status":"fetch_failed","source_url":"https://github.com/DietCokewithSugar/dsh-user-experience/blob/bba21e6a634844b448b34aae4e7c8af1d8bbd9d4/README.md","source_sha":"80979e9906255a66e0c5855af00d98db2e648730","fetched_at":"2026-11-05T00:18:45.072Z","checked_at":"2026-11-05T22:24:10.030Z","excerpt":"[English](README.md) · [简体中文](README.zh.md)\n\n# dsh-user-experience\n\n[![awesome · DSH plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com)\n\n> A UX walkthrough plugin for DeepSeek Harness (DSH): **AI simulates target users to uncover UX problems during development—before they reach production—and provides concrete optimization suggestions.**\n>\n> Scope: React + TypeScript / React + JavaScript / Vue 3, CSS/layout analysis, and optional browser evidence when the current Harness session can open the application.\n\n🎉 Listed in [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin).\n\nExisting automated checks (axe, Lighthouse) can only verify absolute rules — contrast ratio, missing alt text. But UX issues are inherently **relative**: a confirmation dialog before deleting protects an occasional user but wastes the time of an operator who processes hundreds of records a day. Without knowing *who it's for*, a \"UX issue\" cannot be defined.\n\nThis plugin makes **target user personas** the basis of every finding. If the project has no personas yet, the plugin infers a short draft from the README and routes—there is no setup command. By having AI walk through the product as those users, it surfaces experience problems **during development** and gives concrete, locatable, reviewable optimization suggestions—not post-launch user feedback.\n\n**It is a pipeline, not a CLI.** Speak in plain language, or just edit a front-end file. There is no `/ux` command to learn. The report card leads with plain language (which page, what happened, how bad), and folds file paths and rule IDs into a \"technical details\" block you can copy straight to an AI in one click. Verdicts need no IDs either: click a button, or just say \"the second one isn't a problem\" or \"ignore everything below level three\".\n\n## Install in Harness\n\nIn DeepSeek Harness, enter:\n\n> Install the UX plugin in DeepSeek Harness: `dsh plugin --profile web add dsh-user-experience@0.4.2`\n\nOr run the command directly:\n\n```sh\ndsh plugin --profile web add dsh-user-experience@0.4.2\n```\n\nName an exact version rather than `@latest`: pnpm 11 holds back releases published in the last 24 hours, so `@latest` can resolve to nothing on a fresh profile. Check the [npm version list](https://www.npmjs.com/package/dsh-user-experience?activeTab=versions) for newer releases.\n\nAfter a successful install, refresh the page. A restart is not required — restart or reload the `web` profile only if the market says it could not hot-load the plugin. Before installing, please read the [security note](#installation).\n\n### Upgrading from a `github:` install\n\n`dsh plugin add github:DietCokewithSugar/dsh-user-experience` **no longer works**. This repository stopped committing `lib/`, so a Git checkout carries no build artifacts, and pnpm blocks the build step by default. The market reports:\n\n```\n安装失败: dsh-user-experience — nothing installable: the plugin(s) need a build step\n(blocked by default, see allowBuilds) or ship no prebuilt artifacts\n```\n\nand the exported log names the Git spec:\n\n```\n[warn]  install: github:DietCokewithSugar/dsh-user-experience: removed uninstallable pieces\n        (no dsh manifest or missing build artifacts): dsh-user-experience\n[error] install: github:DietCokewithSugar/dsh-user-experience: nothing installable survived validation\n```\n\nInstall by package name instead — note there is **no `github:` prefix**:\n\n```sh\ndsh plugin --profile web add dsh-user-experience@0.4.2\n```\n\nIf the market still resolves the Git ref, the profile is reusing its old entry. Clean it out:\n\n1. Delete the `\"dsh-user-experience\": \"github:DietCokewithSugar/…\"` line from the profile's `package.json`.\n2. Delete that profile's `node_modules` **and** `pnpm-lock.yaml`. The lockfile pins the old Git resolution, so removing the dependency line alone is not enough.\n3. Run the install command again.\n\nOn Windows, this locates the profile manifest:\n\n```powershell\nGet-ChildItem -Path $env:APPDATA,$env:LOCALAPPDATA,$env:USERPROFILE -Recurse -Filter package.json -Depth 6 -ErrorAction SilentlyContinue | Where-Object { (Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue) -match 'dsh-user-experience' } | Select-Object FullName\n```\n\n## Screenshots\n\nThe walkthrough report explains the observed behavior and user impact in plain language:\n\n![UX report card shown in Harness after installation](docs/images/ux-report-card.png)\n\nSpeak in plain language to start a walkthrough. If personas are missing, the plugin drafts 1–3 users and asks once before continuing:\n\n![Start a walkthrough in natural language and confirm target personas](docs/images/ux-natural-language.png)\n\nOnce you confirm that a finding is real, the card provides a task Prompt you can copy to another AI. It describes the observed phenomenon rather than prescribing code changes, tells the AI to inspect the complete project context, and explicitly allows copy changes:\n\n![Confirmed UX finding with a copy-to-AI Prompt action](docs/images/ux-confirmed-prompt.png)\n\nAfter you edit front-end code, the walkthrough runs itself—no persona questions, no interruption. It speaks up only for level-one / level-two issues:\n\n![Automatic walkthrough after a code change, without interrupting coding](docs/images/ux-auto-scan.png)\n\nMulti-level evidence appears in the technical details so every visual or interaction conclusion can be reviewed:\n\n![UX report with rendered and static evidence levels](docs/images/ux-multi-evidence.png)\n\nThe report card and confirmation workflow can use the developer’s language (English interface below):\n\n![English UX report card with interactive evidence](docs/images/ux-english-report.png)\n\n---\n\n## Supported inputs and evidence\n\n| Supported | Parsing engine |\n|---|---|\n| React + TypeScript (.ts / .tsx) | TypeScript compiler API (TSX) |\n| React + JavaScript (.js / .jsx) | Same engine; .js may contain JSX, always parsed as TSX |\n| Vue 3 (.vue SFC) | `@vue/compiler-sfc` block splitting + `@vue/compiler-dom` template AST; `<script>` / `<script setup>` blocks reuse the TypeScript engine, with line numbers remapped to the whole .vue file |\n| CSS / SCSS / Sass / Less / PostCSS | Conservative spacing, compact-layout, and decorative-content candidates; visual conclusions still require a rendered page |\n| Rendered page (optional) | When browser/screenshot tools and a runnable app are available, the agent inspects relevant routes and viewports |\n| Persona task simulation (optional) | When the task can be executed in a browser, the agent records the steps and evaluates flow redundancy |\n\n**Explicitly unsupported** (reported as-is, no low-quality guesses): Svelte, Vue 2 (SFC syntax is incompatible with @vue/compiler-sfc), mini-programs (.wxml), etc. See the [current implementation specification](dsh-user-experience-v0.3-spec.md) for evidence, product-type, and language behavior.\n\n- Every finding is marked **`static`**, **`rendered`**, or **`interactive`**. Browser capability is optional: without it the walkthrough continues with static evidence and never pretends to have seen the page\n- Layout-density, visual-language, and primary-action findings require rendered evidence; redundant-flow findings require an interactive persona walkthrough\n- No automatic code changes: the plugin gives optimization suggestions; after you confirm a finding, it generates an observation-led task Prompt for a coding AI\n- This is still evidence-bounded: CSS can identify inspection leads, but actual whitespace, hierarchy, and visual quality are not asserted without a real rendered route\n\n## Features\n\n| Capability | Entry point | Description |\n|---|---|---|\n| Natural-language walkthrough | just talk | Say “check the checkout flow” or “is this page usable?”. If personas are missing, the model drafts 1–3 from the README, asks “look through these users’ eyes?”, then walks immediately after you confirm |\n| Persona context injection | automatic | Injects the active personas and walkthrough protocol into every request for the current project (aligned with the AGENTS.md section-provider pattern) |\n| Source and CSS walkthrough | automatic | After scope is clear, walks each persona independently and merges one report; 27 rules based on Nielsen’s heuristics, with model judgment and AST/CSS verification |\n| Product-specific focus | automatic | Infers `consumer`, `enterprise`, `ecommerce`, `content`, `finance`, `healthcare`, `developer-tool`, `internal-tool`, or `other` from project docs and the scoped flow, then applies the corresponding UX priorities |\n| Multi-level evidence | automatic | `static` for source/CSS, `rendered` for real screenshots/DOM/measurements, and `interactive` for a recorded persona task. Missing browser capability degrades gracefully to static |\n| Output language | automatic / config | Uses an explicit `outputLanguage` override first; in `auto`, follows the current user's language when supplied by the agent, then the project's primary README. Report cards and AI handoff Prompts support Chinese and English |\n| **Change-triggered walkthrough** | automatic | After you edit a front-end file, the turn wraps up by walking **the whole component / page that file belongs to** — not the changed lines. Never asks about personas or scope. Missing personas are inferred as drafts. Speaks up only for level-one / level-two issues |\n| Report card | automatic | The first screen is plain language only: `[Level one] Admin page` + one sentence on what happened + what the user runs into. File paths, rule IDs and internal numbering live behind \"technical details\", which expands to structured YAML you can copy to an AI in one click |\n| Finding confirmation loop | card buttons / plain speech | Click Confirmed / Not an issue, or just say \"the second one isn't a problem\", \"those are all right\", \"ignore everything below level three\" — **no ID is ever needed**; verdicts go to the session log and fully restore on replay |\n| AI task Prompt after confirmation | card button | Once a user confirms a finding, copy a ready-to-use Prompt that describes the observed behavior, affected scenario, user impact, and acceptance goal. It does **not** prescribe code changes, warns that the plugin saw only part of the codebase, and allows UI copy edits |\n| Implicit confirmation | automatic | If a finding disappears in a later walkthrough **and that location was actually re-scanned**, the user fixed it — so the finding was real. Nobody clicks anything, and the signal is harder than a button press |\n| Report output | automatic | Markdown sorted by severity (**level one–four on screen; P0–P3 demoted to internal identifiers**), common issues (hit by ≥2 personas) first |\n| Glossary | automatic | R-02 term verdicts persist incrementally to `.ux/glossary.yml`; later rounds only compare deltas |\n\n### Three run modes, picked by context\n\n| Mode | Behavior | When it applies |\n|---|---|---|\n| `auto` | Runs to completion, reports, never interrupts or asks for confirmation | CI / headless; **change-triggered walkthroughs** (the agent started it, so the agent digests it) |\n| `review` | Reports, then offers one batch confirmation (tick several, submit together) | A user-initiated walkthrough in plain language |\n| `interactive` | Confirms one finding at a time | Opt in manually when tuning rules |\n\nResolution order: `mode` in `.ux/rules.local.yml` → plugin config → context detection.\n\n### The five-state finding machine\n\n| State | Meaning |\n|---|---|\n| `pending` | Not judged yet |\n| `confirmed_explicit` | The user clicked \"Confirmed\" |\n| `confirmed_implicit` | Gone in a later walkthrough, and that location was genuinely re-scanned |\n| `rejected` | The user clicked \"Not an issue\" |\n| `stale` | That location was not scanned this round (or the code was deleted outright) — undecidable |\n\nBoth confirmed states count as effective findings in the metrics; `stale` is **excluded from the denominator** — \"scanned and found nothing\" must be distinguished from \"never scanned","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-88700bd941402a81","name":"dsh-recommend","description":"An installable DSH plugin that provides plugin rankings, search, recommendations, trend queries, and a settings-page leaderboard.","description_zh":"在 DSH 中查询、搜索并推荐插件，展示透明评分、趋势和分类；排行数据由 GitHub 话题仓库定时同步，覆盖受公开查询范围限制。","description_en":"Queries, searches, and recommends DSH plugins with published scoring and trend data; its rankings periodically sync GitHub topic repositories and depend on that collection coverage.","author":"zp-home","install_spec":"dsh-recommend","repo":"https://github.com/zp-home/dsh-recommend","github_repo_id":1333568633,"category":"tools-mcp","tags":["plugin-discovery","rankings","recommendations","trend-analysis"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.405Z","evidence_url":"https://dshplugin.app/plugins/dsh-recommend","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","fetched_at":"2026-11-05T00:23:09.474Z","evidence_url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","attribution":"zp-home upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-recommend/latest","fetched_at":"2026-11-05T00:23:09.474Z","evidence_url":"https://registry.npmjs.org/dsh-recommend/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","fetched_at":"2026-11-05T22:10:59.586Z","evidence_url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","attribution":"zp-home upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-recommend/latest","fetched_at":"2026-11-05T22:10:59.586Z","evidence_url":"https://registry.npmjs.org/dsh-recommend/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","fetched_at":"2026-11-05T22:20:45.667Z","evidence_url":"https://raw.githubusercontent.com/zp-home/dsh-recommend/main/package.json","attribution":"zp-home upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-recommend/latest","fetched_at":"2026-11-05T22:20:45.667Z","evidence_url":"https://registry.npmjs.org/dsh-recommend/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.405Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:45.667Z","reason":"README not available in candidate"}},{"slug":"registry-8b48845ed98d4d3b","name":"ikanban","description":"A DSH bundle providing iKanban, a keyboard-oriented browser workspace for coordinating parallel coding agents across projects.","description_zh":"iKanban 是面向 OpenCode V2 的独立浏览器工作区，可管理项目与会话、查看 Git 差异并使用终端；仓库 manifest 标为 private 且没有 DSH 声明，未证实可作为 DSH 插件安装。","description_en":"iKanban is a standalone browser workspace for OpenCode V2, with project and session management, Git review, and terminals; its manifest is private and has no DSH declaration, so DSH plugin support is unconfirmed.","author":"isomoes","repo":"https://github.com/isomoes/ikanban","github_repo_id":1137545389,"category":"misc","tags":["opencode","session-management","git-review","web-ui"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.409Z","evidence_url":"https://dshplugin.app/plugins/ikanban","attribution":"DSH Plugin Registry (independent directory)"}],"data_as_of":"2026-11-05T00:15:41.409Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:28.154Z","reason":"README not available in candidate"}},{"slug":"registry-8bb97e8657107bcb","name":"dsh-docs","description":"Local document parsing and offline OCR tools for DeepSeek Harness.","description_zh":"在本机解析 PDF、Office、Markdown、HTML、CSV 与文本文件，并提供离线 OCR；仅读取会话工作区或显式授权目录，Windows x64 可使用随附 OCR 运行时。","description_en":"Parses local PDF, Office, Markdown, HTML, CSV, and text files, with offline OCR; reads only the session workspace or allowed roots, with a bundled OCR runtime for Windows x64.","author":"Sqhao-O","install_spec":"dsh-doc","repo":"https://github.com/Sqhao-O/dsh-docs","github_repo_id":1334003760,"category":"tools-mcp","tags":["document-parsing","ocr","offline","local-files"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.406Z","evidence_url":"https://dshplugin.app/plugins/dsh-docling","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","fetched_at":"2026-11-05T00:22:43.194Z","evidence_url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","attribution":"Sqhao-O upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-doc/latest","fetched_at":"2026-11-05T00:22:43.194Z","evidence_url":"https://registry.npmjs.org/dsh-doc/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","fetched_at":"2026-11-05T22:10:50.884Z","evidence_url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","attribution":"Sqhao-O upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-doc/latest","fetched_at":"2026-11-05T22:10:50.884Z","evidence_url":"https://registry.npmjs.org/dsh-doc/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","fetched_at":"2026-11-05T22:20:35.531Z","evidence_url":"https://raw.githubusercontent.com/Sqhao-O/dsh-docs/main/package.json","attribution":"Sqhao-O upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-doc/latest","fetched_at":"2026-11-05T22:20:35.531Z","evidence_url":"https://registry.npmjs.org/dsh-doc/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.406Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:35.531Z","reason":"README not available in candidate"}},{"slug":"registry-947d83d90582aff4","name":"dsh-web-plugin-manager","description":"A web UI and CLI plugin for managing DeepSeek Harness plugins, profiles, health checks, and marketplace discovery.","description_zh":"在 DSH Web 管理插件的安装、启停、更新和 profile 环境，提供依赖/冲突健康检查及插件市场；仓库明确停止维护，且仅适用于 DSH ≤0.1.5-rc.2，0.1.6-alpha.2+ 会导致 profile 启动冲突。","description_en":"Manages DSH Web plugins, profiles, updates, health checks, and marketplace discovery. The repository is unmaintained: its 0.6.x line is for DSH ≤0.1.5-rc.2 and causes startup conflicts on DSH 0.1.6-alpha.2+.","author":"LX2000WASD","install_spec":"dsh-web-plugin-manager@latest","repo":"https://github.com/LX2000WASD/dsh-web-plugin-manager","github_repo_id":1333491534,"category":"devtools","tags":["plugin-management","profile-management","health-checks","marketplace"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.396Z","evidence_url":"https://dshplugin.app/plugins/dsh-web-plugin-manager","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","fetched_at":"2026-11-05T00:22:54.485Z","evidence_url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","attribution":"LX2000WASD upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","fetched_at":"2026-11-05T22:10:54.383Z","evidence_url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","attribution":"LX2000WASD upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","fetched_at":"2026-11-05T22:20:40.157Z","evidence_url":"https://raw.githubusercontent.com/LX2000WASD/dsh-web-plugin-manager/master/package.json","attribution":"LX2000WASD upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.396Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.157Z","reason":"README not available in candidate"}},{"slug":"registry-9c1272b6c0bdf346","name":"Aegis","description":"A multi-host method pack for architecture-aware, evidence-driven AI coding workflows, including DeepSeek Harness.","description_zh":"为多种 AI 编码宿主提供工程方法包：先按项目基线规划，再以新鲜证据验证完成；附有面向 DeepSeek Harness 的 profile 插件安装路径，但该宿主当前版本级实机验证仍待完成。","description_en":"Provides an engineering method pack for coding agents, grounding plans in project baselines and completion in fresh evidence; it has a DSH profile-plugin path, though release-level host smoke remains pending.","author":"GanyuanRan","install_spec":"git+https://github.com/GanyuanRan/Aegis.git","repo":"https://github.com/GanyuanRan/Aegis","github_repo_id":1225840521,"category":"devtools","tags":["coding-workflows","evidence-based","project-planning","verification"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.388Z","evidence_url":"https://dshplugin.app/plugins/aegis","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","fetched_at":"2026-11-05T00:23:03.040Z","evidence_url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","attribution":"GanyuanRan upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","fetched_at":"2026-11-05T22:10:57.471Z","evidence_url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","attribution":"GanyuanRan upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","fetched_at":"2026-11-05T22:20:43.008Z","evidence_url":"https://raw.githubusercontent.com/GanyuanRan/Aegis/main/package.json","attribution":"GanyuanRan upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.388Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:43.008Z","reason":"README not available in candidate"}},{"slug":"registry-a245ba1ba6650abb","name":"dsh-web-mobile","description":"Mobile-responsive UI plugin for the DeepSeek Harness Web profile.","description_zh":"为 DSH Web 提供手机与触屏平板布局：将设置和文件树改为底部抽屉、适配安全区与输入交互；最新版本面向 DSH 0.2.2-rc.1+，旧宿主须使用匹配版本。","description_en":"Adapts DSH Web for phones and touch tablets with mobile settings, drawers, and input layouts; the latest release targets DSH 0.2.2-rc.1+, while older hosts need a matching release.","author":"mexiaosqwq","install_spec":"dsh-web-mobile","repo":"https://github.com/mexiaosqwq/dsh-web-mobile","github_repo_id":1334674836,"category":"ui-theme","tags":["mobile-ui","responsive-layout","touch-interface","web-profile"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.402Z","evidence_url":"https://dshplugin.app/plugins/dsh-web-mobile","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","fetched_at":"2026-11-05T00:23:00.847Z","evidence_url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","attribution":"mexiaosqwq upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-web-mobile/latest","fetched_at":"2026-11-05T00:23:00.847Z","evidence_url":"https://registry.npmjs.org/dsh-web-mobile/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","fetched_at":"2026-11-05T22:10:57.071Z","evidence_url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","attribution":"mexiaosqwq upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-web-mobile/latest","fetched_at":"2026-11-05T22:10:57.071Z","evidence_url":"https://registry.npmjs.org/dsh-web-mobile/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","fetched_at":"2026-11-05T22:20:42.067Z","evidence_url":"https://raw.githubusercontent.com/mexiaosqwq/dsh-web-mobile/main/package.json","attribution":"mexiaosqwq upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-web-mobile/latest","fetched_at":"2026-11-05T22:20:42.067Z","evidence_url":"https://registry.npmjs.org/dsh-web-mobile/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.402Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:42.067Z","reason":"README not available in candidate"}},{"slug":"registry-af8f5f0158a5e144","name":"dsh-sentinel","description":"Condition-driven DeepSeek Harness wakeup plugin with durable watches for files, commands, HTTP, processes, ports, and webhooks.","description_zh":"让 DSH agent 注册文件、命令、HTTP、进程、端口、会话结束或 Webhook 监视条件，条件触发后唤醒会话；探测与唤醒需要常驻 DSH 进程运行。","description_en":"Registers file, command, HTTP, process, port, session-end, and webhook watches that wake DSH agents; probing and wake delivery require a resident DSH process.","author":"fuhefei","install_spec":"dsh-sentinel","repo":"https://github.com/fuhefei/dsh-sentinel","github_repo_id":1333122965,"category":"workflow","tags":["event-triggers","watchers","webhooks","automation"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.410Z","evidence_url":"https://dshplugin.app/plugins/dsh-sentinel","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","fetched_at":"2026-11-05T00:22:43.564Z","evidence_url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","attribution":"fuhefei upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-sentinel/latest","fetched_at":"2026-11-05T00:22:43.564Z","evidence_url":"https://registry.npmjs.org/dsh-sentinel/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","fetched_at":"2026-11-05T22:10:51.428Z","evidence_url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","attribution":"fuhefei upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-sentinel/latest","fetched_at":"2026-11-05T22:10:51.428Z","evidence_url":"https://registry.npmjs.org/dsh-sentinel/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","fetched_at":"2026-11-05T22:20:36.775Z","evidence_url":"https://raw.githubusercontent.com/fuhefei/dsh-sentinel/main/package.json","attribution":"fuhefei upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-sentinel/latest","fetched_at":"2026-11-05T22:20:36.775Z","evidence_url":"https://registry.npmjs.org/dsh-sentinel/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.410Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:36.775Z","reason":"README not available in candidate"}},{"slug":"registry-b157b593e5e5cdc5","name":"dsh-vision-router","description":"Vision routing and pixel-level image tools for DeepSeek Harness Web.","description_zh":"为 DSH 文本模型提供视觉路由及图像问答、OCR、定位、裁剪和像素差异工具；默认云端视觉链会发送图像，需本地处理时显式启用 Local-only vision。","description_en":"Adds vision routing and image tools for text-only DSH agents, including OCR, grounding, cropping, and pixel comparison; the default cloud chain sends images remotely unless Local-only vision is enabled.","author":"ysr666","install_spec":"dsh-vision-router","repo":"https://github.com/ysr666/dsh-vision-router","github_repo_id":1333446374,"category":"tools-mcp","tags":["vision","image-tools","ocr","pixel-analysis"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.391Z","evidence_url":"https://dshplugin.app/plugins/dsh-vision-router","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","fetched_at":"2026-11-05T00:22:40.834Z","evidence_url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","attribution":"ysr666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-vision-router/latest","fetched_at":"2026-11-05T00:22:40.834Z","evidence_url":"https://registry.npmjs.org/dsh-vision-router/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","fetched_at":"2026-11-05T22:10:50.598Z","evidence_url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","attribution":"ysr666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-vision-router/latest","fetched_at":"2026-11-05T22:10:50.598Z","evidence_url":"https://registry.npmjs.org/dsh-vision-router/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","fetched_at":"2026-11-05T22:20:35.097Z","evidence_url":"https://raw.githubusercontent.com/ysr666/dsh-vision-router/main/package.json","attribution":"ysr666 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-vision-router/latest","fetched_at":"2026-11-05T22:20:35.097Z","evidence_url":"https://registry.npmjs.org/dsh-vision-router/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.391Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:35.097Z","reason":"README not available in candidate"}},{"slug":"registry-b2514380f6f9096f","name":"dsh-mnemon","description":"Local-first persistent memory plugin for DeepSeek Harness, powered by Mnemon.","description_zh":"为 DSH 组合运行时记忆、项目文档与长期记忆空间，并按需检索上下文；随附可选技能管理与回测，默认策略为分层记忆，数据位置可配置。","description_en":"Composes DSH runtime memory, project documents, and long-term memory spaces, retrieving context as needed; it also offers optional skill management and backtesting with configurable storage.","author":"omdsh-dev","install_spec":"dsh-mnemon","repo":"https://github.com/omdsh-dev/dsh-mnemon","github_repo_id":1329424520,"category":"memory-rag","tags":["persistent-memory","context-management","document-search","skills"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.394Z","evidence_url":"https://dshplugin.app/plugins/dsh-mnemon","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","fetched_at":"2026-11-05T00:23:09.286Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","fetched_at":"2026-11-05T22:10:59.397Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","fetched_at":"2026-11-05T22:20:44.904Z","evidence_url":"https://raw.githubusercontent.com/omdsh-dev/dsh-mnemon/main/package.json","attribution":"omdsh-dev upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.394Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:44.904Z","reason":"README not available in candidate"}},{"slug":"registry-b42822cc388aa9dd","name":"dsh-plugin-marketplace","description":"An installable DSH Web plugin that provides a verified plugin marketplace, discovery, guided installation, and installed-plugin management.","description_zh":"在 DSH Web 设置中浏览社区插件并提供引导安装、发现和已安装插件管理；README 声称由维护者运营的中心 Registry，不能等同官方审核。","description_en":"Browses community plugins in DSH Web and provides guided installation, discovery, and installed-plugin management; its maintainer-operated registry is not evidence of official review.","author":"YELEBAI","install_spec":"github:YELEBAI/dsh-plugin-marketplace#v0.9.5","repo":"https://github.com/YELEBAI/dsh-plugin-marketplace","github_repo_id":1333586713,"category":"tools-mcp","tags":["plugin-marketplace","discovery","guided-install","management"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.403Z","evidence_url":"https://dshplugin.app/plugins/dsh-plugin-marketplace","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","fetched_at":"2026-11-05T00:22:40.145Z","evidence_url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","attribution":"YELEBAI upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","fetched_at":"2026-11-05T22:10:49.591Z","evidence_url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","attribution":"YELEBAI upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","fetched_at":"2026-11-05T22:20:34.035Z","evidence_url":"https://raw.githubusercontent.com/YELEBAI/dsh-plugin-marketplace/main/package.json","attribution":"YELEBAI upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.403Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:34.035Z","reason":"README not available in candidate"}},{"slug":"registry-b8e9e07d2e59bef7","name":"ModLens","description":"A DeepSeek Harness vision plugin that turns pasted images into structured OCR, layout, and semantic evidence for supported text-only models.","description_zh":"为文本模型读取聊天中粘贴的图片，并返回 OCR、版面与语义证据；需配置可用视觉引擎。","description_en":"Reads pasted images for text-only models and returns OCR, layout, and semantic evidence; a vision engine must be available.","author":"liustack","install_spec":"@liustack/modlens","repo":"https://github.com/liustack/modlens","github_repo_id":1163808211,"category":"devtools","tags":["vision","ocr","image-analysis"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.387Z","evidence_url":"https://dshplugin.app/plugins/modlens","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","fetched_at":"2026-11-05T00:22:53.245Z","evidence_url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","attribution":"liustack upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","fetched_at":"2026-11-05T22:10:54.130Z","evidence_url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","attribution":"liustack upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","fetched_at":"2026-11-05T22:20:39.709Z","evidence_url":"https://raw.githubusercontent.com/liustack/modlens/main/package.json","attribution":"liustack upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.387Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:39.709Z","reason":"README not available in candidate"}},{"slug":"dsh-web-ccfe9a","name":"dsh-web","description":"DeepSeek Harness Web GUI 插件全家桶。皮肤、宠物与社区插件索引已拆分为独立仓库（dsh-skins / dsh-pet / dsh-community-plugins），本仓通过 npm 包内置它们。","description_zh":"为 DSH Web 与桌面客户端提供聚合式插件工作台，整合 Agent 自动化、浏览器交互、远程访问、SSH 运维、会话管理、用量监控和主题功能。","description_en":"A plugin suite for DSH Web and desktop, combining agent automation, browser interaction, remote access, SSH operations, session management, usage monitoring, and themes.","author":"zhu1090093659","install_spec":"@linxin666/dsh-web-all@latest","repo":"https://github.com/zhu1090093659/dsh-web-ui","github_repo_id":1331636953,"category":"workflow","tags":["automation","agent-teams","web-ui","session-management"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.384Z","evidence_url":"https://dshplugin.app/plugins/dsh-web-ui","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/e8cc1955bab16cd6acecdefd5259d8b2531a98a2/package.json","fetched_at":"2026-11-05T00:17:42.565Z","evidence_url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/e8cc1955bab16cd6acecdefd5259d8b2531a98a2/package.json","attribution":"zhu1090093659 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/5c5ab9421184f3d0f5231a21b0871e635728156a/package.json","fetched_at":"2026-11-05T22:11:18.177Z","evidence_url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/5c5ab9421184f3d0f5231a21b0871e635728156a/package.json","attribution":"zhu1090093659 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/5c5ab9421184f3d0f5231a21b0871e635728156a/package.json","fetched_at":"2026-11-05T22:23:52.669Z","evidence_url":"https://raw.githubusercontent.com/zhu1090093659/dsh-web-ui/5c5ab9421184f3d0f5231a21b0871e635728156a/package.json","attribution":"zhu1090093659 upstream package manifest"}],"data_as_of":"2026-11-05T22:23:52.669Z","readme":{"status":"fetch_failed","source_url":"https://github.com/zhu1090093659/dsh-web-ui/blob/5c5ab9421184f3d0f5231a21b0871e635728156a/README.md","source_sha":"897eb3d2f26b0d927f5a0570d0fc24344994ca66","fetched_at":"2026-11-05T22:11:17.626Z","checked_at":"2026-11-05T22:23:52.013Z","excerpt":"# dsh-web · DeepSeek Harness (DSH) Web GUI 插件与主题全家桶\n\n中文 | [English](README.en.md)\n\ndsh-web 是面向 DeepSeek Harness（DSH）Web GUI、DeepSeek 网页版与官方桌面客户端（DeepSeek Desktop）的模块化插件生态与 AI 智能体开发工作台。全面支持 DeepSeek-V3 与 DeepSeek-R1 等前沿推理模型，为开发者与重度用户提供自主任务自动化看板（Cron 定时后台执行）、手机 App 远程访问、Web SSH 终端与 Linux 集群运维、全量会话检索与归档管理、Token 用量与成本监控（含 Token 银行），以及一站式主题皮肤与桌面宠物工坊。用户既可以通过官方 profile 机制将插件全家桶一键挂载至已有的 `dsh web` 实例，也可以直接在官方 DeepSeek Harness 桌面客户端中开箱即用。\n\n<p align=\"center\">\n  <img src=\"docs/dsh-web-banner.zh.jpg\" alt=\"dsh-web — DeepSeek Harness (DSH) Web GUI 插件全家桶与 AI 智能体工作台架构图（任务看板、手机远程、SSH 运维、Token 统计、主题皮肤）\" width=\"100%\">\n</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/github/v/release/zhu1090093659/dsh-web?style=flat-square\" alt=\"Version\">\n  &nbsp;\n  <img src=\"https://img.shields.io/github/stars/zhu1090093659/dsh-web?style=flat-square\" alt=\"Stars\">\n  &nbsp;\n  <img src=\"https://img.shields.io/github/forks/zhu1090093659/dsh-web?style=flat-square\" alt=\"Forks\">\n  &nbsp;\n  <a href=\"https://www.npmjs.com/package/@linxin666/dsh-web-all\"><img src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fdsh-market.com%2Fapi%2Fnpm-badge%2Fversion&style=flat-square&label=npm\" alt=\"npm\"></a>\n  &nbsp;\n  <a href=\"https://www.npmjs.com/package/@linxin666/dsh-web-all\"><img src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fdsh-market.com%2Fapi%2Fnpm-badge%2Ftotal&style=flat-square\" alt=\"downloads\"></a>\n  &nbsp;\n  <a href=\"https://dshfind.com/zh/plugins/zhu1090093659/dsh-web?ref=badge\"><img src=\"https://dshfind.com/api/badge/zhu1090093659/dsh-web?metric=downloads&amp;lang=zh\" alt=\"dshfind\"></a>\n  &nbsp;\n  <a href=\"https://dsh-market.com\"><img src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fdsh-market.com%2Fapi%2Ftelemetry%2Fbadge%2Fusers&style=flat-square&label=users\" alt=\"users\"></a>\n  &nbsp;\n  <a href=\"https://www.npmjs.com/package/@deepseek-ai/dsh\"><img src=\"https://img.shields.io/badge/DSH-%3E%3D0.2.2--rc.1-4c6ef5?style=flat-square&amp;labelColor=454a54\" alt=\"DSH\"></a>\n  &nbsp;\n  <img src=\"https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square\" alt=\"License\">\n</p>\n\n<p align=\"center\">\n  <strong>DeepSeek Harness（DSH）Web 插件生态 · 模块化智能体工作台</strong><br>\n  <em>全功能 Web UI · 任务自动化看板 · 手机 App 远程访问 · Web SSH 运维 · Token 成本统计 · 视觉工坊</em>\n</p>\n\n<div align=\"center\">\n\n[是什么](#是什么) · [官方桌面客户端](#官方桌面客户端) · [创意工坊](#创意工坊dsh-marketcom) · [功能插件](#功能插件) · [皮肤](#皮肤) · [快速上手](#快速上手) · [兼容性与运行环境](#兼容性与运行环境) · [常见问题](#常见问题) · [已知限制](#已知限制) · [社区](#社区) · [商务合作](#商务合作)\n\n</div>\n\n## 是什么\n\n原生 DeepSeek Harness Web 提供了核心的对话交互与工具调用能力，但在多任务并发调度、长程后台执行、移动端协同以及工程化开发运维方面仍有扩展空间。\n\ndsh-web 通过官方 profile 机制挂载到 `dsh web`，零修改侵入官方源码，为用户提供完整的模块化扩展体系：\n- **工程运维与协同插件**：涵盖长程自动化任务看板（多 Agent 级联/Teams 编排、对抗验收质检与定时调度）、梁神模式（极简 Persona、PTC 代码运行传输与敏捷调度纪律）、手机 App 远程访问、SSH 终端传输、全量会话归档管理以及模型能力声明编辑器；\n- **视觉主题与资产解耦**：功能插件与样式资产完全分离。皮肤插件负责底层渲染，多样化的主题皮肤（含样式、贴图与动态特效）以及桌面宠物可通过 [DSH 创意工坊](#创意工坊dsh-marketcom)自由安装；\n- **全家桶聚合与按需组合**：既支持通过 `@linxin666/dsh-web-all` 聚合包一键安装完整功能，也支持按需单独安装特定插件。聚合包预集成家族全部功能插件，详见[插件全家桶使用指南](packages/dsh-web-all/README.zh.md)。\n\n![DeepSeek Harness Web GUI 配合 dsh-web 插件全家桶的工作台主界面展示（支持 DeepSeek-V3 与 DeepSeek-R1 模型）](docs/screenshots/13-hero-main.png)\n\n| 核心能力与场景 | 原生 dsh web | dsh-web 全家桶优势 |\n| --- | --- | --- |\n| Agent 预设与执行纪律 | 仅官方标准预设（Standard / Minimal 等），静态上下文开销大 | 官方预设 + 创意工坊社区预设 + 梁神模式（极简 Persona 约束、PTC 程序化工具传输、MCP 温和分页、关键事实登记簿与老虎机拨杆） |\n| 自定义模型能力 | 无法可视化修改模型属性 | 逐模型可视化声明 Vision 图片多模态支持与 DeepSeek-R1 推理思考强度档位，支持供应商快速启闭 |\n| 自动化任务看板 | 无 | Host 权威 5 列看板 + 多 Agent 树状级联/原生 Teams 编排 + 裁判模型双盲验收门控 + 离线 Cron 定时与防休眠电源保护 + GitHub Issue 自动提 PR 闭环 + 8 项模型原生工具面 |\n| 手机 App 远程访问 | 仅限本机浏览器 | 手机 App 扫码直连、协议 v1 WebSocket 实时流式交互、公网中继/隧道与局域网接入 |\n| 远程服务器运维 | 无 | 网页版 SSH 终端 (xterm.js)、SFTP 文件传输、端口转发隧道与集群批量命令 |\n| Token 用量与成本监控 | 无 | 每日 Token 消耗明细、多供应商余额查询预警、套餐使用进度与 Token 银行鲸元券 |\n| 会话检索与生命周期归档 | 会话列表简单堆积 | 全量会话多维检索与过滤、批量归档导出、级联物理删除与自动化生命周期清理策略 |\n| 主题皮肤与个性化视觉 | 仅单一默认主题 | 内置经典 Blue Fantasy 暗黑护眼沉浸皮肤，创意工坊提供 Wallpaper Engine 动态壁纸与互动桌面宠物 |\n\n### 按使用场景快速选择扩展方案\n\n| 核心使用场景与用户需求 | 推荐解决方案与能力 | 快速入口 |\n| --- | --- | --- |\n| 打造 24/7 无人值守 AI 研发流水线，通过 Cron 定时巡检、多 Agent 团队级联协作、Issue 自动修复提 PR 或长程目标闭环 | 任务看板：Host 权威后台调度、多 Agent 级联/Teams 编排、对抗式裁判验收质检、GitHub Issue-to-PR 闭环、防休眠电源守护 | [任务看板与 cron 定时执行](packages/dsh-task-board/README.zh.md) |\n| 追求极致编码推理效率与超低上下文开销，需要极简 Prompt、程序化工具调用（PTC）与严苛 Agent 调度/工作纪律 | 梁神模式：极简 Persona、run_code 程序化传输、MCP 温和分页、关键事实登记簿与老虎机拨杆开关 | [梁神模式预设与 PTC 传输](packages/dsh-liangshen/README.zh.md) |\n| 在手机上通过协议 v1 远程访问与控制 DeepSeek Harness | 手机 App 远程访问：协议 v1 WebSocket、会话流式响应、入站网关与公网/局域网接入 | [手机 App 远程访问](packages/dsh-remote-bridge/README.zh.md) |\n| 委派 AI 智能体执行远程 Linux 服务器运维、SFTP 文件传输、SSH 终端交互或排查线上服务 | SSH 运维面板：Web 终端 (xterm.js)、可视化 SFTP 传输、端口转发隧道、集群批量命令 | [SSH 终端、文件传输与隧道](packages/dsh-ssh/README.zh.md) |\n| 监控 DeepSeek API 及主流大模型 Token 消耗明细、查询供应商账户余额预警或套餐进度 | 使用统计：每日消耗明细、余额查询、账单估算、套餐追踪与 Token 银行鲸元券 | [用量统计与 Token 银行](packages/dsh-usage/README.zh.md) |\n| 历史会话堆积难以快速定位，需要全量多维搜索过滤、批量归档、级联清理或数据备份 | 会话归档管理器：多维搜索过滤、批量归档与级联清理、自动化生命周期策略 | [全量会话归档管理](packages/dsh-session-archive/README.zh.md) |\n| 打造个性化界面外观，更换深色护眼主题、Wallpaper Engine 动态壁纸或互动桌面宠物 | 创意工坊与皮肤中心：Blue Fantasy 经典暗色内置，海量皮肤、动态壁纸与桌宠 | [浏览 DSH 创意工坊](https://dsh-market.com) |\n| 在官方桌面客户端（DeepSeek Harness Desktop）中开箱即用本扩展生态 | 官方桌面客户端：支持直接通过客户端内置插件管理一键安装本全家桶 | [官方桌面客户端安装说明](#官方桌面客户端) |\n| 为已有的 DeepSeek Harness CLI / Web 环境一键安装插件全家桶 | 快速上手：一行命令通过 npm 或 GitHub 仓库地址直接安装 | [插件安装快速上手](#快速上手) |\n\n## 官方桌面客户端\n\n对于希望直接使用独立桌面应用的用户，推荐下载并使用官方发布的 DeepSeek Harness 桌面客户端（DeepSeek Harness Desktop）。\n\n官方桌面客户端与 `dsh web` 共用 `~/.dsh` 数据目录，其 profile 为 `desktop`。由于官方桌面客户端对 `desktop` profile 实行应用内专管（外部 CLI 会限制对 `desktop` profile 的修改），安装本插件全家桶时请直接在桌面客户端内进行：\n\n1. 打开官方桌面客户端，进入“设置”中的“插件”页面（或左侧导航栏的插件入口）；\n2. 在插件管理界面的安装输入框中，输入插件全家桶包名 `@linxin666/dsh-web-all`（或 `@linxin666/dsh-web-all@latest`），点击安装；\n3. 安装完成后重启客户端，即可在客户端中使用任务看板、主题皮肤、远程控制等全套插件能力。\n\n## 创意工坊（dsh-market.com）\n\n[创意工坊](https://dsh-market.com) 是 DSH 生态的一站式资产分发平台，统一提供主题皮肤、桌面宠物、功能插件与社区 Agent 预设。所有项目按照真实设备点赞热度排序，皮肤支持即时试穿预览，插件提供一键安装命令。经典的 Blue Fantasy 蓝色幻想随皮肤插件内置，其余主题皮肤与宠物资产均可在工坊浏览、查看源代码并按需安装。在 Web GUI 的“创意工坊”设置卡中可直接浏览线上清单，皮肤与宠物可一键下载至 DSH 主目录并在对应设置页选用；社区预设下载至本地预设库，启用后即可在“设置 → Agent 预设”中用于新建会话。\n\n![DeepSeek Harness 创意工坊 dsh-market.com — 主题皮肤、桌面宠物与社区插件市场](docs/screenshots/31-market-home.png)\n\n创意工坊站点为本仓库的组成部分：前端为纯静态构建，由构建脚本 `scripts/market-build` 依据 `skin.json`、`pet.json` 与 `community.json` 等数据源自动生成；点赞等动态能力由 Cloudflare Workers 边缘函数与 D1 数据库提供支持（遵循单设备单票限制），代码合入 `main` 分支后自动触发持续集成部署。\n\n创意工坊旨在建立开放透明的社区生态，方便开发者分享作品并让用户自由选择所需扩展。\n\n## 功能插件\n\n### 任务看板（Task Board · 企业级后台长程执行引擎与多 Agent 自动化流水线）\n\n通过侧边栏“任务看板”进入。任务看板不仅仅是一个可视化卡片界面，更是 DeepSeek Harness 官方 Web GUI 与桌面客户端中的**宿主权威后台长程执行与多 Agent 自动化调度引擎**。任务按“待规划、待办、进行中、已完成、已失败”五列进行全生命周期管理，以 Schema v6 事务账本为权威持久化核心，真正实现了长程任务从拆解、分发、团队协作、对抗质检到外部成果闭环的全流程自动化：\n\n- **宿主权威后台驱动与 7x24 小时离线无人值守**：区别于传统仅在前端网页轮询的脆弱看板，所有卡片流转、调度触发与执行监控完全由 DSH 后端 Host 进程作为唯一权威驱动。浏览器仅为异步视图，关闭网页标签页、熄灭屏幕或断开网络，后台智能体会话照常并发执行与原子落盘结算。内置跨平台防休眠电源管理（macOS `caffeinate`、Windows `ES_SYSTEM_REQUIRED`、带有 systemd-logind 的 Linux `systemd-inhibit`），允许显示器正常关闭的同时阻止整机因闲置休眠，确保夜间无人值守巡检与流水线准时打卡。\n- **多 Agent 树状级联并发与原生 Agent Teams 团队编排**：复杂工程目标可自由拆解为多层树状子任务（支持 1~3 层深度，内置环路与深度护栏）。**级联执行模式**通过受控准入队列（runLaunchWidth）并发派生多个独立智能体会话，自动跳过已在完成列的子任务，任一子任务失败自适应收拢整树状态；**原生 Agent Teams 模式**深度对接官方团队服务，启动专属 Team Lead 会话并在其内部为每个子任务动态孵化专属 Teammate，协同工具跨智能体联动，实现真正意义上的多智能体团队协同作战。\n- **对抗式双盲质量验收门禁（No False Completion）**：彻底终结 AI 编程中“自述已完成、实则未改动或改崩溃”的虚假交付顽疾。以 goal 形式执行的任务在 Agent 试图调用 `update_goal(complete)` 宣告完工的瞬间被 Host 强制拦截，必须由独立的裁判模型（可自选模型与思考档位）进行真实验收。验收机制沿用严苛的 Coding 质量判据、0.65 绝对通过阈值，每项判据双轮交换 A/B 位置打分消偏，并严格结合会话执行轨迹与宿主工作区真实磁盘文件的 Diff 行级变更审查。首轮未达标精准下发具象结构化问题引导 Agent 自我修复，两次仍不通过才判负，杜绝敷衍糊弄。\n- **全自动 GitHub Issue-to-PR 闭环研发流**：搭配官方扩展（`dsh-client-ui-task-board-github`），实现任务看板与 GitHub Issues / PR 状态的实时双向深度同步。远端 Issue 自动进入看板流水线驱动 Agent 读取需求、定位代码、修复 Bug 并运行测试，验收交付后全自动创建 GitHub Pull Request 并绑定 Issue 关联，PR 合并后自动关闭 Issue，打造全天候无人值守的开源与企业 Issue 自动化修复交付管线。\n- **长程目标驱动、会话持久化与冻结交接包（Freeze Handover）**：任务支持武装内置 `/goal` 引擎进行多轮自主续跑；周期性任务可开启会话复用，保留完整上下文记忆；支持通过 `<<<FREEZE` 协议将会话上下文一键冻结为包含“目标/进度/下一步”的结构化快照，并绑定工作区、预设与权限三元组，接手 Agent 瞬间无缝继承前序成果，同时内置提示词注入防御与来源审计。\n- **企业级权限基线、安全确认门与消费熔断保护**：任务可细粒度钉住工作区、Agent 预设、沙箱权限、执行模型与推理思考强度，钉子校验失败即 Fail-Closed；超出安全基线的高权限操作设有「人工确认门（Permission Gate）」，未在 Web 界面显式放行前坚决拒绝执行与调度，杜绝 Agent 越权危害宿主系统；支持配置看板级每日 Token 消费预算上限（`spendBudgetTokens`），防止后台死循环产生意外费用。\n- **面向智能体的双向工具面与外部成果统一**：向大模型完整暴露 8 个原生工具（`task_board_list`、`task_board_get`、`task_board_create`、`task_board_update`、`task_board_set_parent`、`task_board_run`、`task_board_manage`、`task_board_schedule`），赋予对话中的 Agent 自身查看看板、分解子任务、编排流水线与自动化调度的全套能力；同时支持通过 `record-external-outcome` 统一登记在 Claude Code、Codex 等外部工具中完成的工作，让异构开发流统一汇总至一张看板。\n\n| 多列看板与智能体协作 | 后台定时调度与参数配置 |\n| --- | --- |\n| ![DeepSeek Harness 任务看板界面 — AI 智能体多列任务状态流转与并发执行](docs/screenshots/09-task-board.png) | ![DeepSeek 任务详情与后台定时执行设置 — 智能体参数配置、Cron 调度与执行历史](docs/screenshots/10-task-board-detail-cron.png) |\n\n### 梁神模式（LiangShen Mode · 极简 Persona、PTC 运行时与高效调度引擎）\n\n在新建会话输入框左侧通过专属老虎机拨杆切换，或在“设置 > Agent 预设”中选用。梁神模式（`dsh-liangshen`）是专为追求**极致推理效率、超低静态上下文开销与严苛工程执行纪律**而深度重构的杀手级预设与运行时插件。针对主流大模型在长程编程任务中容易出现的系统提示词冗长膨胀、工具 Schema 挤占上下文、思维链无效空转（如“流水账推理”）以及多轮遗忘退化等痛点，梁神模式通过原生极简提示词、程序化代码工具调用（PTC）、MCP 温和分页与关键事实局部就近投射，提供纯粹而强悍的编程作战体验：\n\n- **极简 Persona 与严苛行动导向纪律（Zero Prompt Waste）**：彻底剥离官方 Standard 预设中冗长繁琐的系统级条文，将提示词极致收敛为单行 Persona 与经过实战千锤百炼的高效工程纪律。内置反思熔断（同一假设推演不超过两轮，缺少事实立即闭合思考并调用原生工具探测，杜绝凭空揣测）、行动导向（思考过程仅用于决定下一步具体操作，严禁在思考中预演完整代码）、并发探索（单轮内并发派发多个独立检测或搜索工具）、YAGNI 与 PDCA 循环（单步验证单一假设，不写冗余注水注释）、以及有界收敛纪律（前置检查最多 2-3 轮即刻收敛，迅速转入实际作答或编辑）。大幅降低静态 Token 占用，让模型注意力百分之百倾注于业务与代码本身。\n- **程序化工具调用传输（PTC · Programmatic Tool Calling）**：彻底终结在每次请求中平铺上百个 JSON Schema 工具参数的低效模式。默认将网络线协议（wire）极致收拢为唯一的 `run_code`（运行 TypeScript 脚本），其余所有工具均通过自动生成的强类型 SDK 在独立的沙箱线程中以代码形式调用。无论系统注册了多少复杂工具，静态传输面始终保持极小体积；模型可原生利用 `Promise.all` 编写并发工具调用，并在程序内预先过滤、聚合、提取关键数据，只将精炼结论回传至对话上下文，从根本上解决大文本输出打爆 Token 的问题。对于习惯原生工具面的场景，亦可在插件设置中一键无缝切换为组装好的原生工具清单（Native）。\n- **MCP 工具温和分页与 LRU 动态激活（Gentle Tool Paging）**：针对海量 MCP 工具或第三方插件扩展，出厂默认启用温和分页（默认匹配 `mcp__*`）。外部工具在初始状态下仅以命名空间摘要形式登记在目录消息中，既不占 wire 协议也不进 SDK 声明；当大模型判定需要使用对应工具时，可自主调用 `tool_activate({ namespace })` 按需挂载。内置 LRU 策略（上限 3 个活跃命名空间），自动淘汰最久未用的命名空间，激活状态在会话压缩与恢复后完整重建，兼具海量工具接入能力与极致小巧的静态 Schema 面。\n- **关键事实登记簿与就近状态投射（Fact Register & Working Context）**：长程多轮对话中大模型极易遗忘早期的关键业务约束或踩过的坑。插件向模型提供专属 `fact_register` 工具，可将用户硬性约束、已确认的架构决策或失败路径登记为单行事实（每条不超过 160 字符，最多保留 12 条）。关键事实随 `[Working Context: ...]` 状态行在每一轮交互中就近投射至最新消息尾部的局部注意力窗口内，从物理机制上彻底解决长上下文“中间遗忘”与重复踩坑顽疾。\n- **原生调度者架构与敏捷访谈纪律（Dispatcher Identity & Triage）**：预设出厂深度集成调度者（Dispatcher）架构规范，赋能模型以团队指挥官身份统领工程任务。内置复杂度分诊机制（L0/L1 单点任务直接敏捷执行，L2 复杂任务严格遵循“澄清访谈 -> 架构规划 -> 并发子代理派发 -> 双层严格验收”标准流）；设定严格的提问预算控制（单轮最多 4 问、总计最多 3 轮、影响面排序、假设先行），杜绝无效拉扯；任务状态权威沉淀于 `todo_write`，杜绝浮躁的敷衍式交付。\n- **新建会话老虎机拨杆与炫酷中奖特效（Composer Slot Lever）**：在新建会话输入框工具行、模型选择器左侧，精心打造了一台复古老虎机拨杆控件。下拉拨杆（支持鼠标拖拽、单击或键盘快捷操作）即可一键为当前新建会话装配梁神模式，拉下命中即触发绚丽的中奖粒子特效（闪光、冲击环、火花粒子与专属彩蛋横幅）；上推即可平滑切回默认模式。拨杆自适应全局主题色彩，且在会话开始后自动隐藏，丝滑灵动，极具极客趣味。\n\n详细机制、评测数据与高级配置参数见 [dsh-liangshen README](packages/dsh-liangshen/README.zh.md)。\n\n### 手机 App 远程访问（Mobile Remote · 原生手机 App 接入）\n\n在 profile 中安装 `@linxin666/dsh-remote-bridge` 插件并重启服务后，点击侧边栏底部的二维码图标（aria-label 为「配对 iPhone」）打开配对面板。使用手机 App 扫码即可直接开始使用。\n\n配对面板具备本地安全保护，令牌路由（`/remote-bridge/pair/token`）带有回环门控，仅允许在本机浏览器中访问（非本机访问返回 403）。面板生成的配对码为一次性凭据，有效期为 30 秒，点击「重新取码」将作废上一张配对码。二维码编码包含服务地址与令牌的文档（URL 形如 `wss://<origin>/ios/v1?token=...`），手机 App 扫码后即可同时获取服务地址与鉴权令牌。\n\n网络接入协议面仅暴露 `/ios/v1` 一个 WebSocket 端点，隧道与局域网转发均指向仅放行该路径的入站闸门，公网无法直接访问 Web GUI 路由。服务地址按实时状态（中继租约或运行中的隧道）、环境变量 `DSH_REMOTE_PUBLIC_BASE_URL` 以及局域网转发器实际监听地址的顺序解析。默认配置下公网可用（中继默认开启、隧道默认关闭、局域网转发默认关闭）；若需在局域网内直连，需在插件配置中开启局域网转发。原浏览器远程控制插件 `dsh-remote-web-ui` 已退役，接入栈能力已迁入本包。\n\n[iOS App 还在内测，欢迎来 Discord 交流](https://discord.gg/nBy28kjun)。\n\n### 远程连接（SSH Ops · Web 终端、SFTP 传输与集群运维）\n\n通过侧边栏“SSH”入口打开远程运维面板。支持密钥与密码认证，可一键导入本地 `~/.ssh/config` 主机列表；配置数据安全保存在 `~/.dsh/dsh-ssh.json` 中。面板提供以下操作能力：\n\n- **Web 终端**：基于 xterm.js 的完整远程交互终端，支持实时输出与窗口自适应；\n- **文件传输**：集成 SFTP 上传与下载功能，提供进度提示并支持可视化浏览远程目录；\n- **端口转发**：支持建立本地到远程内部服务的加密隧道（如内网数据库、后端 API），默认仅监听 127.0.0.1 安全地址；\n- **集群并发执行**：支持多主机批量命令执行，并可通过别名、运行环境或标签进行过滤；\n- **Agent 直连调用**：智能体与面板共享主机配置，在会话中发出指令即可委派 Agent 执行远程巡检与运维命令。\n","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"dsh-dafeiyu-3dcba7","name":"dsh-dafeiyu","description":"A desktop-native BigFish companion driven by DeepSeek Harness session events.","description_zh":"将 DSH 会话事件显示为桌面置顶原生伙伴窗口，展示项目、步骤与待办进度；Web 与 desktop profile 需分别安装。","description_en":"Shows DSH session events, project steps, and pending progress in an always-on-top native companion window; Web and desktop profiles require separate installs.","author":"QCYTSN","install_spec":"dsh-dafeiyu@0.1.23","repo":"https://github.com/QCYTSN/dsh-dafeiyu","github_repo_id":1333755311,"category":"ui-theme","tags":["desktop-companion","session-events","status-panel"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.394Z","evidence_url":"https://dshplugin.app/plugins/dsh-dafeiyu","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","fetched_at":"2026-11-05T00:18:35.106Z","evidence_url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","attribution":"QCYTSN upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","fetched_at":"2026-11-05T22:11:49.186Z","evidence_url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","attribution":"QCYTSN upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","fetched_at":"2026-11-05T22:24:07.321Z","evidence_url":"https://raw.githubusercontent.com/QCYTSN/dsh-dafeiyu/084323845ab82b68d5388d5c638bec09d8544a8a/package.json","attribution":"QCYTSN upstream package manifest"}],"data_as_of":"2026-11-05T22:24:07.321Z","readme":{"status":"fetch_failed","source_url":"https://github.com/QCYTSN/dsh-dafeiyu/blob/084323845ab82b68d5388d5c638bec09d8544a8a/README.md","source_sha":"d836fdd6e0dd1c838877c25708b39980f2b08154","fetched_at":"2026-11-05T22:11:48.891Z","checked_at":"2026-11-05T22:24:06.979Z","excerpt":"<div align=\"center\">\n\n# DSH 大肥鱼 🐋\n\n**在桌面上陪你工作的 DeepSeek Harness 伴侣。**\n\n[English](README_EN.md) · [npm](https://www.npmjs.com/package/dsh-dafeiyu) · [下载最新版](https://github.com/QCYTSN/dsh-dafeiyu/releases/latest) · [更新日志](CHANGELOG.md)\n\n[![npm](https://img.shields.io/npm/v/dsh-dafeiyu?label=npm)](https://www.npmjs.com/package/dsh-dafeiyu) [![Release](https://img.shields.io/github/v/release/QCYTSN/dsh-dafeiyu)](https://github.com/QCYTSN/dsh-dafeiyu/releases/latest)\n\n</div>\n\n大肥鱼由 DSH 插件启动，随 DSH 一起退出。透明、无边框、始终置顶的原生窗口，让你在编辑器、浏览器或其他应用中也能看到 Agent 的工作状态。\n\n> **当前稳定版：0.1.23。** 修复 Linux arm64 / 无随架构 Helper 时 Python 回退未给出 PySide6 安装指引的问题；同时包含 0.1.22 的审批提示音与场景开关、0.1.21 的跨显示器拖动与菜单设置兜底、0.1.20 的透明区域点击穿透与 0.1.19 的 Helper 冷启动诊断。安装时填写 `dsh-dafeiyu@0.1.23`，离线安装请从[最新版下载页](https://github.com/QCYTSN/dsh-dafeiyu/releases/latest)选择 **`dsh-dafeiyu-0.1.23.tgz`**；Windows、Linux 与 macOS 共用这一个包。GitHub 自动生成的 **Source code (zip / tar.gz)** 是源码，不是安装包。\n\n<img src=\"docs/images/balance-preview.png\" width=\"460\" alt=\"大肥鱼在任务状态卡底部显示 API 余额\">\n\n*原生 Windows 窗口实拍；余额为演示数据。当前角色素材来自 [PC2005-cloud/dsh-pet](https://github.com/PC2005-cloud/dsh-pet)。*\n\n## 能做什么\n\n- 显示真实任务状态：思考、查找、修改、执行、验证、等待确认、完成和错误。\n- 展示项目、步骤、多任务和 DSH 提供的待办进度；没有真实进度时显示阶段。\n- 在状态气泡和设置页显示 DeepSeek 余额，区分 API Key 与已登录账户。\n- 兼容 WebUI 与官方桌面端的共享客户端；两个客户端使用各自的插件配置。\n- 支持拖动、摸头、戳身体、碰尾巴，以及大小、气泡、声音和减少动态设置。\n- 可选在 DSH 页面右下角显示轻量角色，默认关闭。\n\n状态来自 DSH 会话事件。大肥鱼不会读取屏幕；推理强度与进度只显示上游实际提供的信息。\n\n## 先选你的 DSH 客户端\n\n| 使用方式 | 安装位置 | 设置入口（DSH 0.2） | 角色右键菜单的打开目标 |\n| --- | --- | --- | --- |\n| 浏览器 WebUI | `web` profile | 左侧插件 → dsh-dafeiyu | WebUI，默认 `http://127.0.0.1:3080/` |\n| 官方桌面端 | `desktop` profile | 左侧插件 → dsh-dafeiyu | 通过 `dsh://open` 唤起桌面应用 |\n\n**WebUI 中安装的插件不会自动出现在桌面端。** 两边都启用会各自启动原生角色，可以在其中一个 profile 关闭“大肥鱼”。第三方桌面包装器可能仍使用 `web` profile，请以它的实际启动方式为准。\n\n客户端包中的 `platform: web` 也适用于官方桌面端：官方 Electron 应用使用同一套 Web 客户端。原生角色由对应 Host 启动。\n\n## 安装\n\n使用命令行安装、升级或移除前，先**完全退出对应 DSH Host**；操作后重新启动。通过桌面应用内的插件管理操作时，按应用提示重启。\n\n### 浏览器 WebUI\n\n已全局安装 DSH：\n\n```powershell\ndsh plugin --profile web add dsh-dafeiyu@0.1.23\ndsh web\n```\n\n使用 `npx`，无需全局安装 DSH：\n\n```powershell\nnpx -y @deepseek-ai/dsh plugin --profile web add dsh-dafeiyu@0.1.23\nnpx -y @deepseek-ai/dsh web\n```\n\n从 DeepSeek Harness 源码运行的用户，在 Harness 仓库中执行：\n\n```powershell\npnpm dsh plugin --profile web add dsh-dafeiyu@0.1.23\npnpm dsh web\n```\n\n### 官方桌面端\n\n推荐直接在应用内安装：\n\n1. 打开官方 DeepSeek Harness 桌面应用，点击左侧 **插件**。\n2. 点击 **添加插件**，输入 `dsh-dafeiyu@0.1.23`，点击 **安装**。\n3. 安装成功后点击 **立即启用**，大肥鱼会出现在桌面上。\n4. 在插件列表打开 **dsh-dafeiyu**，调整角色、气泡和余额设置，修改实时生效。\n\n这套流程使用桌面应用自带的安装环境，用户无需安装 Node.js 或执行 npm 命令。若应用提示刷新或重启，按提示操作；失败时展开 **查看安装详情** 并保留日志。\n\n也可以只填 `dsh-dafeiyu` 获取安装源中的最新版。新版本刚发布时，默认安装源可能仍返回旧版；指定版本可以避免装错。安装后核对详情页中的版本号。\n\n使用命令安装时：\n\n1. 先启动一次官方桌面应用，让它初始化 `desktop` profile，然后完全退出。\n2. 使用桌面应用**自带的 `dsh` 命令**。支持命令注册的版本可从应用菜单的 **Manage dsh command… / 管理 dsh 命令**入口配置；也可直接调用安装目录的 `resources/runtime/cli/bin/dsh`（Windows 为 `dsh.cmd`）。\n3. 执行：\n\n   ```powershell\n   dsh plugin --profile desktop add dsh-dafeiyu@0.1.23\n   ```\n\n4. 重新打开桌面应用，在左侧插件 → dsh-dafeiyu 调整角色。\n\n**这里的 `dsh` 必须来自桌面应用。** 独立安装的 npm / `npx @deepseek-ai/dsh` CLI 不能修改官方桌面端的 profile。请参考 [DSH 官方桌面端说明](https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/desktop/README.zh.md#bundled-command-runtime)。\n\n### 使用 Release 安装包\n\n打开[最新版下载页](https://github.com/QCYTSN/dsh-dafeiyu/releases/latest)，在 **Assets** 中下载 **`dsh-dafeiyu-0.1.23.tgz`**，用对应客户端的命令安装；**无需解压**。不要选择历史版本，也不要下载 **Source code** 作为安装包：\n\n```powershell\n# WebUI；文件路径替换为实际下载路径\nnpx -y @deepseek-ai/dsh plugin --profile web add \"C:\\Downloads\\dsh-dafeiyu-0.1.23.tgz\"\n\n# 官方桌面端；必须使用应用自带的 dsh\ndsh plugin --profile desktop add \"C:\\Downloads\\dsh-dafeiyu-0.1.23.tgz\"\n```\n\n桌面端也可在 **添加插件** 的输入框填写 `.tgz` 的完整路径。\n\n## 余额显示\n\n余额默认出现在**大肥鱼状态气泡底部和设置页**，查询逻辑由两个客户端共用。设置页可查看总余额、赠送和充值，并手动刷新。\n\n| 来源 | 凭据来自哪里 | 查询内容 |\n| --- | --- | --- |\n| 自动（默认） | 优先使用 DSH 模型设置中的 DeepSeek API Key；未配置时尝试已登录账户 | 对应来源的余额 |\n| API Key | DSH 的凭据服务；旧 Host 无该服务时读取启动环境 | DeepSeek `/user/balance` |\n| 已登录账户 | DSH 的 DeepSeek 账户服务 | 账户充值与赠送钱包 |\n\n- 在 **DSH 模型／账户设置**中配置凭据；大肥鱼设置页不需要再填写 API Key。\n- API 余额与账户余额分别标明来源；CNY / USD 分别显示。\n- 每分钟自动刷新，同一 Host 内共享缓存；手动刷新最快每 5 秒一次。\n- 服务失败时保留上次成功结果，并标明“上次查询”；未配置、授权失败和网络失败分别提示。\n- 自定义网关需要实现相同的 `/user/balance` 接口；不支持时显示查询失败。\n- API Key、登录凭据和上游原始错误不会进入余额页面、角色消息或事件流。\n- 没有余额凭据也能正常显示任务状态；可关闭“显示 DeepSeek 余额”。\n\n账户余额和 API 余额的查询方式参考了 [keshing/balance-display](https://github.com/keshing/balance-display) 与 DSH 的公开账户服务。插件不会发起模型调用。\n\n## 常用设置\n\n| 设置 | 作用 |\n| --- | --- |\n| 启用大肥鱼 | 开关当前 profile 的原生角色 |\n| 角色大小 / 气泡大小 | 独立调整；小气泡保留基本字号 |\n| 安静 / 标准 / 活泼 | 每次待机动作结束后，分别休息 45～90 / 25～45 / 12～22 秒 |\n| 减少动态 | 固定角色姿势，停止待机与点击动画；状态和提示仍实时更新 |\n| 提示音 | 所有提示的总开关（只影响声音） |\n| 提示音与通知场景 | 分别开启“对话完成”“工具出错”“等待审批”提示。取消后该场景不再播放声音；macOS 同时不再弹系统通知横幅，Windows / Linux 只播放声音 |\n| 气泡显示 | 常驻、隐藏，或仅在指定状态显示 |\n| 子 Agent | 允许子 Agent 状态参与显示 |\n| 页面内角色 | 在 DSH 页面右下角显示轻量角色 |\n| 打开目标 | 自动、WebUI 或官方桌面端 |\n| 显示余额 / 余额来源 | 开关与选择余额查询来源 |\n\n设置页修改实时生效。右键菜单可调整大小、减少动态、打开对应 DSH 客户端，或仅在本次运行隐藏／关闭角色。\n\n点击动作会完整播完，再回到当前任务状态；新任务可立即打断装饰动作。拖拽期间只播放悬空姿势，松手后完整落地。具体触发、频率和衔接规则见 [动作说明](docs/animation-behavior.md)。\n\n若 WebUI 使用自定义地址，可在启动 Host 时设置 `DSH_DAFEIYU_WEBUI_URL`；它优先于自动推断的默认地址。\n\n## 平台与运行环境\n\n| 平台 | 原生角色 |\n| --- | --- |\n| Windows 10 / 11 x64 | 随包提供 Helper；WSL2 可通过 Windows 互操作启动 |\n| Linux x64 | 随包提供 Qt Helper，需要图形桌面；glibc 2.35+，Ubuntu 24.04 有验收记录 |\n| Linux arm64 | 包里**没有**随架构 Helper，会自动回退到 Python Helper，需要 `python3` 与 `PySide6>=6.7,<7`；缺失时会写明确日志 |\n| macOS 12+ | 原生 Swift / AppKit Helper，Universal 构建；实验性支持 |\n\n标准安装包已包含 Helper，**不需要自己安装 Python 或运行 Helper**。从源码使用时需自行构建。macOS 小字号与拖动边缘已修复并通过 CI，仍需真实机器验证视觉效果与多屏操作。\n\n原生角色显示在 **Host 所在的桌面**：远程服务器、无图形环境和浏览器客户端不在同一台机器时，请先确认 Host 的运行位置。页面内角色可在浏览器中显示。\n\n## 更新与排错\n\nWebUI 用户完全退出 DSH 后执行：\n\n```powershell\nnpx -y @deepseek-ai/dsh plugin --profile web update dsh-dafeiyu\n```\n\n官方桌面端 **0.2.0-rc.2 暂不支持应用内自动更新**。在插件页面卸载大肥鱼，再添加 `dsh-dafeiyu@0.1.23` 并立即启用；也可以完全退出应用后使用自带的命令：\n\n```powershell\ndsh plugin --profile desktop update dsh-dafeiyu\n```\n\n然后重新启动对应客户端。回退、移除、DSH 迁移后恢复大小，以及 Windows `EPERM` 的处理见 [更新与回退](docs/UPDATING.md)。\n\n- DSH 0.2 设置页变化：安装当前稳定版，通过左侧插件 → dsh-dafeiyu 打开设置；较旧 Host 保留原设置入口。\n- 桌面端安装只显示 `[exit 1]`：该信息不足以确定原因，请附上插件安装详细日志（如 `hub.log`）、DSH 版本、系统和安装方式。\n- 余额查询失败：检查 DSH 中的凭据及所用网关是否支持余额接口。\n- 角色不出现：检查 profile、插件是否启用，以及 Host 是否有可用图形桌面。Helper 的启动原因现在会写入日志：\n  - Windows：`%LOCALAPPDATA%\\dsh-dafeiyu\\logs\\helper.log`\n  - macOS：`~/Library/Logs/dsh-dafeiyu/helper.log`\n  - Linux：`${XDG_STATE_HOME:-~/.local/state}/dsh-dafeiyu/helper.log`\n\n  首次启动需要把约 100 MB 的 Qt 运行库解压到临时目录，杀毒软件实时扫描可能让冷启动明显变慢；首次就绪等待上限已放宽到 180 秒（之后 60 秒）。解压临时目录在 Windows 位于 `%LOCALAPPDATA%\\dsh-dafeiyu\\tmp`、Linux 位于 `~/.cache/dsh-dafeiyu/tmp`，其中超过一天的陈旧 `_MEI*` 目录会在下次启动时清理。需要更详细输出时可用 `DSH_DAFEIYU_LOG_FILE=<路径>` 改日志位置，或设为 `off` 关闭；报告问题时可以附上该日志（只含本地路径与启动错误，不含凭据）。\n\n[GitHub issue / PR 处理清单](https://github.com/QCYTSN/dsh-dafeiyu/blob/main/docs/GITHUB_TRIAGE.md)记录已处理和仍需补充证据的问题；[验收记录](https://github.com/QCYTSN/dsh-dafeiyu/blob/main/docs/ACCEPTANCE.md)保留实际测试结果。这些记录中的旧版本号用于追溯，不是安装建议。\n\n## 源码开发\n\n```powershell\npnpm install --frozen-lockfile\nnpm test\nnpm run test:python\nnpm run build:helper\nnpm run test:helper:packaged\n```\n\n开发 Python Helper 需要 `requirements.txt` 中的依赖；macOS Helper 需要 Xcode Command Line Tools。纯 Swift 核心测试运行 `swift test`。修改原生代码后应重新构建 Helper，再安装本地打包产物。\n\nCI 还会隔离安装 DSH 0.2.0-rc.2 并运行 `scripts/test-dsh-settings.mjs`，验证新设置接口。该检查不读取用户 profile 或凭据，文件写入使用测试适配器。\n\n项目通过 GitHub Actions 构建三个平台的 Helper 并发布；维护者操作见 [发布说明](https://github.com/QCYTSN/dsh-dafeiyu/blob/main/docs/RELEASING.md)。\n\n## 素材与授权\n\n当前动态素材来自 [PC2005-cloud/dsh-pet](https://github.com/PC2005-cloud/dsh-pet)，以来源的 **24 fps** 转成透明 WebP 帧。当前清单含 16 组动作、3,444 帧，帧画布为 412 × 344；清单记录了上游版本、视频校验值和取帧范围。\n\n软件代码与角色素材适用不同授权，请完整阅读 [ASSET_LICENSE.md](ASSET_LICENSE.md)、[素材来源许可证](assets/dsh-pet-LICENSE.txt)和 [LICENSE](LICENSE)。旧版素材及社区拖拽图片保留于 `legacy/`，不随当前 npm 包分发。\n\n感谢社区在动画、macOS、WSL 和兼容性方面的贡献。想接收更新通知，请订阅仓库 **Watch → Custom → Releases**；Star 只收藏项目。\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-bf2aaf9f8fb1cdcc","name":"dsh-automation","description":"Schedule self-contained coding tasks to run in fresh DeepSeek Harness Agent sessions.","description_zh":"按计划在新的根 Agent 与会话中运行自包含编码任务，并从 DSH Web 或 Agent 管理规则与运行历史。","description_en":"Schedules self-contained coding tasks in fresh root-agent sessions and manages rules and run history from DSH Web or an agent.","author":"titanwings","install_spec":"github:titanwings/dsh-automation#v0.1.7","repo":"https://github.com/titanwings/dsh-automation","github_repo_id":1333150357,"category":"workflow","tags":["scheduling","automation","agent-sessions"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.398Z","evidence_url":"https://dshplugin.app/plugins/dsh-automation","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","fetched_at":"2026-11-05T00:22:33.792Z","evidence_url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","attribution":"titanwings upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","fetched_at":"2026-11-05T22:10:44.272Z","evidence_url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","attribution":"titanwings upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","fetched_at":"2026-11-05T22:20:33.123Z","evidence_url":"https://raw.githubusercontent.com/titanwings/dsh-automation/main/package.json","attribution":"titanwings upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.398Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:33.123Z","reason":"README not available in candidate"}},{"slug":"registry-c5cd4d4c5a446767","name":"dsh-plugin-marketplace","description":"An installable DeepSeek Harness marketplace plugin with searchable GitHub topic discovery, web-profile installation controls, and agent tools.","description_zh":"在 DSH Web 设置页浏览和搜索 GitHub 插件，并管理插件安装与更新。","description_en":"Browses and searches GitHub plugins in DSH Web settings, with plugin installation and updates.","author":"AwesomeHou","install_spec":"https://github.com/AwesomeHou/dsh-plugin-marketplace","repo":"https://github.com/AwesomeHou/dsh-plugin-marketplace","github_repo_id":1334156126,"category":"devtools","tags":["marketplace","plugin-discovery","plugin-management"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.401Z","evidence_url":"https://dshplugin.app/plugins/dsh-plugin-marketplace-awesomehou","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","fetched_at":"2026-11-05T00:22:47.685Z","evidence_url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","attribution":"AwesomeHou upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","fetched_at":"2026-11-05T22:10:52.225Z","evidence_url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","attribution":"AwesomeHou upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","fetched_at":"2026-11-05T22:20:37.073Z","evidence_url":"https://raw.githubusercontent.com/AwesomeHou/dsh-plugin-marketplace/master/package.json","attribution":"AwesomeHou upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.401Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:37.073Z","reason":"README not available in candidate"}},{"slug":"dsh-provider-model-configurator-4e8076","name":"dsh-provider-model-configurator","description":"Provider Model Configurator for DeepSeek Harness: view, create, edit, copy and delete model entries (context window, max output, modalities, reasoning efforts) across your configured providers, with quick-fill from the pi-ai preset catalog.","description_zh":"在配置的服务商间查看、创建、编辑、复制和删除模型条目，包括上下文窗口、输出上限、模态与推理选项。","description_en":"Manages model entries across configured providers, including context limits, output limits, modalities, and reasoning options.","author":"LiangYin233","install_spec":"github:LiangYin233/dsh-provider-model-configurator#v0.3.9","repo":"https://github.com/LiangYin233/dsh-provider-model-configurator","github_repo_id":1333290303,"category":"models-providers","tags":["model-configuration","provider-settings","reasoning-effort"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.409Z","evidence_url":"https://dshplugin.app/plugins/dsh-provider-model-configurator","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","fetched_at":"2026-11-05T00:18:10.050Z","evidence_url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","attribution":"LiangYin233 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","fetched_at":"2026-11-05T22:11:35.702Z","evidence_url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","attribution":"LiangYin233 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","fetched_at":"2026-11-05T22:24:01.435Z","evidence_url":"https://raw.githubusercontent.com/LiangYin233/dsh-provider-model-configurator/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/package.json","attribution":"LiangYin233 upstream package manifest"}],"data_as_of":"2026-11-05T22:24:01.435Z","readme":{"status":"fetch_failed","source_url":"https://github.com/LiangYin233/dsh-provider-model-configurator/blob/70f88112c7d92fadeb93e46f5dcb8b1f3ae6eba3/README.md","source_sha":"63d2f1e3e4eaf4c0e806a8d59e41732c09636ea0","fetched_at":"2026-11-05T22:11:35.334Z","checked_at":"2026-11-05T22:24:01.115Z","excerpt":"# dsh-provider-model-configurator\n\n一个 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/dsh) **插件**:在独立设置页「模型 Pro / Model Pro」中集中**查看、新建、编辑、复制与删除**已配置提供商下的模型条目——上下文窗口、最大输出、输入模态、推理档位与推理兼容开关。还可以从内置的 `llm-pi-ai` 模型列表读取您所需要配置的模型的上下文参数、最大Token，无需自行填写、手动查询。\n\n## 界面预览\n\n| 模型 Pro 设置页 | 复制来源选择器 |\n| --- | --- |\n| ![ui-1](docs/ui-1.png) | ![ui-2](docs/ui-2.png) |\n\n## 安装\n\n```sh\n# 从 GitHub 安装\ndsh plugin --profile web add github:LiangYin233/dsh-provider-model-configurator#v0.3.9\n\n# 或从 GitHub tarball 安装\ndsh plugin --profile web add https://github.com/LiangYin233/dsh-provider-model-configurator/archive/refs/tags/v0.3.9.tar.gz\n\n# 或从本地打包安装\nnpm pack\ndsh plugin --profile web add ./dsh-provider-model-configurator-0.3.9.tgz\n```\n\n安装后**重启 Web 服务器并刷新页面**,打开设置 → 左侧导航「模型 Pro」(Models 页之后)。\n\n## 功能\n\n- 选择**目标提供商**,列出其显式模型条目与配置摘要,可**编辑 / 删除**;\n- **新建**:输入模型 ID,手动填写显示名、上下文窗口、最大输出、输入模态(text/image)、推理档位(档位 → wire 值,`off` 留空 = 不发送);推理档位与输入模态均支持「未设置(继承目录)」,避免把未配置的字段写成显式默认值;\n- **复制填充**:「使用模型预设」打开来源选择器,从预设目录或其他提供商挑一个模型快速填充表单;\n- **兼容开关 (compat)**:编辑 `thinkingFormat`(openai / deepseek / openrouter / together / zai / qwen / string-thinking / ant-ling)与 `supportsReasoningEffort`(true / false / 未设置),供 openai-completions 推理分发读取;\n\n> **目录快照行为**:在尚未显式配置模型列表的目录提供商上新建/应用模型时,插件会把内置目录的当前模型列表整体写入为该提供商的显式条目(目录中已有的 ID 原地更新,新 ID 追加),之后再编辑均基于这份显式列表;目录后续更新不会自动合并进已快照的列表。目录提供商若删到零个显式条目,则回退为内置目录(未快照)状态。\n\n## 仓库结构\n\n```\n├── package.json        bundle 清单(dsh.bundle.patch / dsh.client / exports)\n├── cordis.patch.yml    bundle patch:挂载 dsh-provider-model-configurator\n├── dsh.plugin.json     插件元数据(id / version / main)\n├── docs/               界面截图(README 预览用)\n├── lib/                构建产物(随包发布,由 build.mjs 生成)\n│   ├── index.js        ← src/host/index.js\n│   ├── contract.js     ← src/host/contract.js\n│   └── client.js       ← src/client/static.tsx\n├── shared/             构建产物:src/shared/thinking.js(共享常量;lib/contract.js\n│                       运行时按 ../shared/thinking.js 解析到包根目录)\n├── src/\n│   ├── host/           Host 半区源码(index.js 静态 / dynamic.js 动态插件)\n│   ├── client/         Client 半区源码(page.tsx / model.ts / page.css / locales/)\n│   └── shared/         thinking.js — 推理档位 / 推理格式常量的单一来源\n├── scripts/\n│   └── check-dynamic.mjs  动态半区语法校验 + 常量同步校验(npm run check 执行)\n├── build.mjs           esbuild 构建(lib/ 与 dist/dynamic-client-body.js)\n└── tsconfig.json\n```\n\n## License\n\nMIT\n\n## 鸣谢\n\n[LINUX DO](https://linux.do/)\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-d5b947b8427b050e","name":"dsh-stock-watch","description":"A DeepSeek Harness Web plugin that provides a collapsible, draggable watchlist panel for real-time A-share quotes.","description_zh":"在 DSH Web 右上角显示可折叠 A 股自选行情面板，支持分组、分时与 K 线查看及目标价设置。","description_en":"Adds a collapsible A-share watchlist panel to DSH Web for groups, intraday and candlestick charts, and target prices.","author":"Awu12277","install_spec":"dsh-stock-watch","repo":"https://github.com/Awu12277/dsh-stock-watch","github_repo_id":1334063554,"category":"devtools","tags":["stock-watchlist","market-quotes","a-shares"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.400Z","evidence_url":"https://dshplugin.app/plugins/dsh-stock-watch","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","fetched_at":"2026-11-05T00:23:04.198Z","evidence_url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","attribution":"Awu12277 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-stock-watch/latest","fetched_at":"2026-11-05T00:23:04.198Z","evidence_url":"https://registry.npmjs.org/dsh-stock-watch/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","fetched_at":"2026-11-05T22:10:57.836Z","evidence_url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","attribution":"Awu12277 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-stock-watch/latest","fetched_at":"2026-11-05T22:10:57.836Z","evidence_url":"https://registry.npmjs.org/dsh-stock-watch/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","fetched_at":"2026-11-05T22:20:43.008Z","evidence_url":"https://raw.githubusercontent.com/Awu12277/dsh-stock-watch/main/package.json","attribution":"Awu12277 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-stock-watch/latest","fetched_at":"2026-11-05T22:20:43.008Z","evidence_url":"https://registry.npmjs.org/dsh-stock-watch/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.400Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:43.008Z","reason":"README not available in candidate"}},{"slug":"managed-agents-028d28","name":"managed-agents","description":"Local-first, self-hosted AI agent runtime with Claude Managed Agents-style APIs, sandboxed sessions, memory, tools, audit, replay, and a local Console.","description_zh":"通过 stdio MCP 将 DSH 接入运行中的 SandBase Harness，访问 Agent、会话、流式任务、产物与取消操作；需要 Node.js 22+、stdio MCP 支持及可达的运行时。","description_en":"Connects DSH over stdio MCP to a running SandBase Harness for agents, sessions, streamed turns, artifacts, and cancellation; requires Node.js 22+, stdio MCP support, and a reachable runtime.","author":"sandbaseai","install_spec":"git+https://github.com/sandbaseai/sandbase-harness.git","repo":"https://github.com/sandbaseai/sandbase-harness","github_repo_id":1297278222,"category":"devtools","tags":["agent-runtime","sandbox","self-hosted","audit"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.389Z","evidence_url":"https://dshplugin.app/plugins/sandbase-harness","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","fetched_at":"2026-11-05T00:18:50.450Z","evidence_url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","attribution":"sandbaseai upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","fetched_at":"2026-11-05T22:11:54.549Z","evidence_url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","attribution":"sandbaseai upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","fetched_at":"2026-11-05T22:24:12.003Z","evidence_url":"https://raw.githubusercontent.com/sandbaseai/sandbase-harness/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/package.json","attribution":"sandbaseai upstream package manifest"}],"data_as_of":"2026-11-05T22:24:12.003Z","readme":{"status":"fetch_failed","source_url":"https://github.com/sandbaseai/sandbase-harness/blob/1c1b64155f24b92cda4e9c0c38f3c974b56fa073/README.md","source_sha":"178285d6a4e6d55c08da49627e7b545828860369","fetched_at":"2026-11-05T00:18:50.160Z","checked_at":"2026-11-05T22:24:11.680Z","excerpt":"# SandBase Harness\n\n[English](./README.md) | [中文](./README.zh-CN.md)\n\n[![GitHub stars](https://img.shields.io/github/stars/sandbaseai/sandbase-harness?style=social)](https://github.com/sandbaseai/sandbase-harness/stargazers)\n[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/sandbaseai/sandbase-harness)\n[![Release](https://img.shields.io/github/v/release/sandbaseai/sandbase-harness)](https://github.com/sandbaseai/sandbase-harness/releases/latest)\n[![Official MCP Registry](https://img.shields.io/badge/Official_MCP_Registry-active-2ea44f)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sandbaseai%2Fsandbase-harness)\n[![Discussions](https://img.shields.io/github/discussions/sandbaseai/sandbase-harness)](https://github.com/sandbaseai/sandbase-harness/discussions)\n[![CodeQL](https://github.com/sandbaseai/sandbase-harness/actions/workflows/codeql.yml/badge.svg)](https://github.com/sandbaseai/sandbase-harness/actions/workflows/codeql.yml)\n[![License](https://img.shields.io/github/license/sandbaseai/sandbase-harness)](LICENSE)\n\nAI-readable project metadata: [llms.txt](./llms.txt) · [installation guide](./llms-install.md)\n\nA local-first runtime for AI agents. Sessions, sandboxed tools, memory,\ncredentials, audit trails, and a built-in Console — all running on your\nmachine or in your own infrastructure.\n\n![SandBase Harness architecture](docs/assets/sandbase-harness-architecture.svg)\n\n## Why\n\nAgent SDKs handle the model loop. Production agents need more: persistent\nsessions, tool governance, sandbox boundaries, credential handling, memory,\nauditability, and a UI for humans to inspect what happened. `managed-agents`\nis that runtime layer — not a visual workflow builder and not another model SDK.\n\n| Need | What Harness provides |\n| --- | --- |\n| Run generated code safely | Local, Docker, Kubernetes, and self-hosted worker sandboxes |\n| Inspect long-running agents | Persistent sessions, resumable event streams, audit, and replay |\n| Control tool access | MCP toolsets, credential vaults, permission policies, and approvals |\n| Operate any model | OpenAI, Anthropic, MiniMax, and OpenAI-compatible providers, including DeepSeek V4 |\n| Keep infrastructure yours | Local-first SQLite and file storage with no required hosted control plane |\n\n## Features\n\n- Claude Managed Agents-style `/v1` API and local Console\n- SQLite metadata by default for agents, sessions, environments, credential\n  vaults, memory stores, files, skills, and API keys — local file/skill bytes\n  in the workspace state directory\n- Resumable Server-Sent Events for session replay and debugging\n- One active model provider boundary configured through Settings V2\n- Sandbox backends: local process, Docker (per-session containers), Kubernetes\n  (kubectl exec/cp), self-hosted worker queue\n- MCP toolsets, permission policies, built-in tools, and skill packages\n- TypeScript SDK at `managed-agents/sdk`\n- Release gate: `npm run release:check`\n\n## Quick Start\n\nRequirements: Node.js 22+, npm 10+, and a model provider API key (OpenAI,\nAnthropic, MiniMax, or any OpenAI-compatible endpoint). Docker is optional and\nonly needed for Docker-backed sandboxes.\n\n```bash\ngit clone --branch v0.3.8 --depth 1 https://github.com/sandbaseai/sandbase-harness.git\ncd sandbase-harness\nnpm ci\nnpm run build\nmkdir ../my-agents && cd ../my-agents\nnode ../sandbase-harness/dist/index.js init\nnode ../sandbase-harness/dist/index.js start\n```\n\n`init` writes a workspace into the directory you run it from: an agent, a skills\nfolder, and `config.yaml`, whose provider reference is the `${OPENAI_API_KEY}`\nenvironment variable. `start` serves the API and the Console on\n<http://127.0.0.1:3000>.\n\nTwo steps finish the setup, both on **Settings > Setup** at\n<http://127.0.0.1:3000/dashboard>:\n\n1. **The provider.** Paste your API key into the provider form and save. The page\n   then reports that the saved configuration is not active yet, so restart the\n   runtime — stop it with Ctrl+C and run the `start` command again, or use the\n   restart button. A saved setting only takes effect at startup. If your provider\n   is not in the list, choose the OpenAI-compatible vendor and set its base URL.\n2. **The model.** In the **Agent models** panel, set the model ID your provider\n   actually serves — `deepseek-chat` for DeepSeek, for example. An agent carries\n   its own model ID, so the `gpt-4o` that `init` writes is not valid for every\n   provider, and a wrong ID fails the turn with `model_not_found`.\n\nSend the first message from the Console: open **Sessions**, create a session for\nthe agent, and type into the composer. From a terminal it is one command:\n\n```bash\nnode ../sandbase-harness/dist/index.js chat agent_assistant --message \"hello\" --tool-approval allow\n```\n\n`chat` sends that one message and exits once the turn settles; without\n`--message` it keeps the session open and streams until you interrupt it.\n`--tool-approval allow`\npreauthorizes the tool calls the agent may make, which the `init` template\notherwise parks for approval and waits for a person to answer; see [CLI](#cli).\n\nThe unscoped `managed-agents` name on npm is not this project. Until an\nofficial scoped package is announced in this repository, install only from the\ntagged GitHub source release shown above. Do not run `npx managed-agents` or\n`npm install managed-agents`.\n\n### Try it in Codespaces\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/sandbaseai/sandbase-harness?quickstart=1)\n\nThe included development container installs dependencies and builds the runtime.\nWhen the terminal is ready, start the server on the forwarded port:\n\n```bash\nnode dist/index.js start --host 0.0.0.0\n```\n\nOpen the forwarded **SandBase Harness Console** port, then configure a model in\n**Settings > Setup**. Codespaces usage may be billed by GitHub; the local\nquick start above remains free and keeps all runtime data on your machine.\n\n## Screenshots\n\n| Console overview | Settings | API reference |\n| --- | --- | --- |\n| ![overview](docs/assets/dashboard-overview.png) | ![settings](docs/assets/dashboard-settings-models.png) | ![api-ref](docs/assets/dashboard-api-reference.png) |\n\n## Use the Official SDK\n\nThe runtime answers its own `/v1` API on that same port, and an official\nAnthropic TypeScript SDK client drives it unchanged: point the client's\n`baseURL` at the runtime, give it the runtime API key, and the quickstart in\n[`examples/official-sdk`](examples/official-sdk/README.md) runs a whole turn —\nmessage, tool call, tool result, final reply — against it. That example is\nexecuted on every pull request by\n`tests/conformance/official-sdk-quickstart.test.ts`, so the compatibility it\ndescribes is compatibility that is tested rather than claimed.\n\nThe same surface is specified in [docs/api.md](docs/api.md), and this\nrepository's own TypeScript SDK is documented under [SDK](#sdk) below.\n\n## CMA compatibility\n\nCoverage of the published Claude Managed Agents contract is declared entry by\nentry in [`src/core/capabilities/matrix.ts`](src/core/capabilities/matrix.ts):\nof the official SDK's route surface (110 method/path pairs as of SDK\n`0.132.1`), 90 routes are mounted and 20 refuse by name; no route is deferred.\n`Partial` and `Unsupported` entries always name their reason.\n\nThe table below is generated by `npm run docs:compat`, and a contract-honesty\ntest fails when it drifts from the matrix.\n\n<details>\n<summary><strong>Full compatibility table (generated)</strong></summary>\n\n<!-- compat-table:start -->\n| Area | Official capability | Status | Notes |\n| --- | --- | --- | --- |\n| headers | `compatibility-header-admission` | Partial | Version, beta, and mutual-exclusion rules are enforced for any request that carries a compatibility header. A request with no compatibility header is accepted as a local caller, which the published contract does not define; this header-free path is a deliberate local-first extension for a self-hosted single-tenant runtime, recorded as such in the headers contract §4, and it is why this entry stays partial. |\n| headers | `extension-namespace-exclusion` | Supported |  |\n| pagination | `opaque-cursors` | Partial | A collection's envelope follows the mount: the operations router serves `/v1` with `{data, prev_page, next_page}` and its `/v1/x` mirror with the local `{data, has_more, first_id, last_id}`, chosen through one pager so no handler emits both spellings, and cursors that are readable base64url JSON rather than opaque binary. Every canonical `/v1` collection serves the canonical envelope, with no exceptions: the complete-set listings carry `{data, prev_page: null, next_page: null}` and the windowed ones carry a followable cursor — `/v1/sessions` pages by number under `{order, created_at bounds, page}` and rejects a cursor replayed under another ordering or creation window, `/v1/sessions/{id}/events` carries `{order, filter, after_id}`, `/v1/skills` and the credential audit listings use `{offset, filter}` — so a cut page says so instead of looking complete. The one listing that is neither shape is `/v1/environments/{id}/work-items`, a windowed extension that adds a `counts` object and is named in the contract. |\n| pagination | `cursor-query-binding` | Supported |  |\n| errors | `structured-error-envelope` | Supported |  |\n| agents | `agent-crud` | Supported |  |\n| agents | `model-object-profile` | Partial | String and object model forms parse field by field. `effort` and `speed` are stored, returned by the read projection (the agent read, the version read, and the session snapshot), and executed on the Anthropic provider under a model capability table — `effort` becomes `output_config.effort`, `fast` becomes `speed: \"fast\"` with the fast-mode beta, and adaptive-thinking models receive `thinking: {type: \"adaptive\", display: \"omitted\"}`; a listed model refused a level or speed it cannot take fails admission, an unknown model id or non-Anthropic provider sends nothing, and a deployment's own `reasoning_effort` model setting is operator-level and separate. `inference_geo` is refused by name with `unsupported_model_field` because this runtime has no inference-geography control; and a canonical `multiagent` roster is refused by name rather than executed. |\n| agents | `multiagent-roster` | Unsupported | In scope but not implemented (decisions/0002): a canonical `multiagent` block (`multiagent_20261001` or any other shape) is refused by name on both agent create and agent update, because no thread, subagent, workflow, or advisor surface exists to honour it and the surface is a protocol of its own this runtime does not implement; accepting it would let a caller believe delegation or workflow runs are in effect. Local delegation is registered separately as an extension. |\n| agents | `local-delegation-subagent` | Supported |  |\n| sessions | `session-lifecycle` | Supported |  |\n| sessions | `initial-events` | Supported |  |\n| sessions | `prompt-caching` | Supported |  |\n| sessions | `session-update` | Supported |  |\n| budget | `session-budget` | Partial | Consumption is priced in integer microcents from the append-only log, and a session may declare a max_list_cost ceiling at creation. The builtin loop checks the ceiling inside a turn: the step that crossed the cap is the last one, the session idles with stop_reason budget_reached and a session.usage immediately before it, and an accepted budget update or removal resumes the session on its own — a tool call the ceiling stranded is settled so the resumed turn sees a paired transcript. At the ceiling the next work-starting event is refused with budget_reached while events that settle work already in flight are still accepted, so the next model request does not start; a declared outcome's revision loop reads the same spend and stops at the ceiling too, closing the outcome with result budget_reached rather than starting another grading p","truncated":true,"reason":"GitHub metadata HTTP 403"}},{"slug":"gal-view-5821ff","name":"gal-view","description":"DSH Web GUI 会话页的 GAL 视窗：Galgame 风格对话视图 + 场景元素可视化编辑器","description_zh":"为 DSH Web 会话页增加 Galgame 风格对话视图与场景元素可视化编辑器；需安装 DSH 并可在终端运行 dsh，安装后重启 web。","description_en":"Adds a Galgame-style conversation view and visual scene-element editor to DSH Web sessions; requires the DSH CLI and a Web restart.","author":"Ayase34","install_spec":"github:Ayase34/gal-view#main","repo":"https://github.com/Ayase34/gal-view","github_repo_id":1333708305,"category":"ui-theme","tags":["conversation-view","scene-editor","web-ui"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.393Z","evidence_url":"https://dshplugin.app/plugins/gal-view","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","fetched_at":"2026-11-05T00:18:13.758Z","evidence_url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","attribution":"Ayase34 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","fetched_at":"2026-11-05T22:11:38.594Z","evidence_url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","attribution":"Ayase34 upstream package manifest"},{"kind":"github","url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","fetched_at":"2026-11-05T22:24:02.937Z","evidence_url":"https://raw.githubusercontent.com/Ayase34/gal-view/d002fe0e7051c618a2665af3c653f9838cd6aa8a/package.json","attribution":"Ayase34 upstream package manifest"}],"data_as_of":"2026-11-05T22:24:02.937Z","readme":{"status":"fetch_failed","source_url":"https://github.com/Ayase34/gal-view/blob/d002fe0e7051c618a2665af3c653f9838cd6aa8a/README.md","source_sha":"b676bccd280ece9a1a083c4a32c4bd5ae71fbb6a","fetched_at":"2026-11-05T22:11:38.321Z","checked_at":"2026-11-05T22:24:02.617Z","excerpt":"# gal-view · GAL 视窗\n\n[English](README.en.md) | 中文\n\nDSH Web GUI 会话页的 **Galgame 风格对话视图 + 场景元素可视化编辑器**（官方 bundle 插件格式）。\n\n在会话标签页栏（「对话」/「轨迹」）中间加入 **「GAL视窗」** 标签，点开之后会话视窗变成\n16:9 Galgame 舞台：占位立绘、大对话框、打字机台词、玩家输入；内置「编辑模式」可像场景\n编辑器一样拖拽/改属性/换图层，编辑结果实时同步回游戏模式。\n\n![image.png](image.png)\n\n\n## 默认预设\n\n仓库根 [`gal-scene.json`](gal-scene.json) 是随包分发的**默认预设场景**（编辑器导出的格式，内嵌被引用的图片/字体）：首次打开「GAL视窗」且本地没有存档场景时自动加载，编辑模式的「重置」也回到该预设。更新预设：编辑场景 → `Ctrl+S` 导出 → 用导出的 `gal-scene.json` 替换仓库根同名文件 → `npm run build:client` 并提交。\n\n\n## 安装\n\n本插件以官方 bundle 格式分发，用一条 dsh plugin 命令安装到 web profile，装完**重启 web** 即可生效。\n\n### 前置条件\n\n- 已安装 DeepSeek Harness，并且能在终端执行 dsh 命令\n- 如果你是从源码 checkout 运行 Harness（日常命令是 pnpm dsh）：先 cd 到 Harness 仓库根目录，再把下面的 dsh 全部替换为 pnpm dsh\n\n### 从 GitHub 安装（一行命令）\n\n```sh\ndsh plugin --profile web add github:Ayase34/gal-view#main\n```\n\n#main 表示使用仓库的 main 分支；想锁定某个具体版本，可以换成提交哈希，例如 #ae73dca。\n\n### 完成安装\n\n安装后**重启 web**（bundle 层在启动时合成，必须重启才会加载插件）。重启后打开 Web GUI 的会话页，标签栏应出现 **「GAL视窗」** 标签（位于「对话」和「轨迹」之间）。\n\n> 可选验证：执行 dsh --profile web --dump-config，输出中应能看到 # == gal-view 这一层，说明插件层已进入组合。\n\n### 更新到新版本\n\n```sh\ndsh plugin --profile web update gal-view\n# 更新后同样要重启 web\n```\n\n### 卸载\n\n```sh\ndsh plugin --profile web remove gal-view\n# 卸载后同样要重启 web\n```\n\n> 说明：场景布局、素材图片、字体与阅读进度都保存在你的**浏览器**里（localStorage / IndexedDB），重装或卸载插件不会丢失；清除浏览器站点数据才会重置它们。\n\n\n## 开发\n\n```sh\npnpm install            # 安装 esbuild devDependency\nnpm test                # 纯逻辑单测（node:test，同进程运行）\nnpm run build:client    # 生成 .dsh-plugin/client.js（生成物勿手改）\nnpm run check:client    # 校验 client.js 新鲜度\nnpm run smoke           # Playwright 冒烟（需 DSH_CHECKOUT 指向 dsh checkout）\n```\n\n## 结构\n\n```\n.dsh-plugin/index.mjs     Node half（极简，无宿主行为）\n.dsh-plugin/client/       client 源码：场景模型/打字机/转录映射/组件/样式\n.dsh-plugin/client.js     构建产物（scripts/build-client.mjs 生成）\nscripts/build-client.mjs  esbuild 构建器（--check 守护新鲜度）\ntests/                    纯逻辑单测（node:test）\n```\n","truncated":false,"reason":"GitHub metadata HTTP 403"}},{"slug":"registry-e4fbfc90f049c9b1","name":"dsh-opencode-go-usage","description":"A DeepSeek Harness floating dashboard for OpenCode Go usage, costs, quotas, and session analysis.","description_zh":"以可拖动、缩放的悬浮面板展示 OpenCode Go 账户用量、配额、费用及 DSH 会话分析；项目自 2026-09-01 起无限期停更。","description_en":"Displays OpenCode Go account usage, quotas, costs, and DSH session analysis in a draggable panel; maintenance has been suspended indefinitely since 2026-09-01.","author":"Xenia0922","install_spec":"dsh-opencode-go-usage","repo":"https://github.com/Xenia0922/dsh-opencode-go-usage","github_repo_id":1333920704,"category":"devtools","tags":["usage-dashboard","cost-tracking","quota-monitoring"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.410Z","evidence_url":"https://dshplugin.app/plugins/dsh-opencode-go-usage","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","fetched_at":"2026-11-05T00:23:09.253Z","evidence_url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","attribution":"Xenia0922 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","fetched_at":"2026-11-05T22:10:58.962Z","evidence_url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","attribution":"Xenia0922 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","fetched_at":"2026-11-05T22:20:44.610Z","evidence_url":"https://raw.githubusercontent.com/Xenia0922/dsh-opencode-go-usage/main/package.json","attribution":"Xenia0922 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.410Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:44.610Z","reason":"README not available in candidate"}},{"slug":"registry-e62857c22fcc705f","name":"dsh-tianshu-tui","description":"An installable DeepSeek Harness terminal UI plugin that provides an interactive TUI profile over dsh-base.","description_zh":"为 DeepSeek Harness 提供交互式终端界面，含流式 Markdown、工具卡、会话恢复、LSP 诊断与主题；需 pnpm 和 DSH 0.2.1-rc.4（next）。","description_en":"An interactive DeepSeek Harness terminal UI with streaming Markdown, tool cards, session recovery, LSP diagnostics, and themes; requires pnpm and DSH 0.2.1-rc.4 next.","author":"huiliyi37","install_spec":"@huiliyi37/dsh-tianshu-tui","repo":"https://github.com/huiliyi37/dsh-tianshu-tui","github_repo_id":1332692519,"category":"editors","tags":["terminal-ui","session-management","lsp","themes"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.392Z","evidence_url":"https://dshplugin.app/plugins/dsh-tianshu-tui","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","fetched_at":"2026-11-05T00:22:48.922Z","evidence_url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","attribution":"huiliyi37 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","fetched_at":"2026-11-05T22:10:52.870Z","evidence_url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","attribution":"huiliyi37 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","fetched_at":"2026-11-05T22:20:38.367Z","evidence_url":"https://raw.githubusercontent.com/huiliyi37/dsh-tianshu-tui/main/package.json","attribution":"huiliyi37 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.392Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:38.367Z","reason":"README not available in candidate"}},{"slug":"registry-ec7d0f0da4bae317","name":"dsh-lark-bot","description":"Connects a local DeepSeek Harness agent to Feishu/Lark with streaming cards, workspaces, parallel runs, and chat-based controls.","description_zh":"将本地 DSH Agent 接入飞书/Lark，支持流式卡片、工作区、并行任务和聊天控制；需 Node.js 22.19+、DEEPSEEK_API_KEY 与飞书账号。","description_en":"Connects a local DSH agent to Feishu/Lark with streaming cards, workspaces, parallel tasks, and chat controls; requires Node.js 22.19+, a DeepSeek API key, and a Feishu account.","author":"PlutoKeating","install_spec":"dsh-lark-bot","repo":"https://github.com/PlutoKeating/dsh-lark-bot","github_repo_id":1333496313,"category":"im-bots","tags":["feishu","lark","chat-bridge","parallel-tasks"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.405Z","evidence_url":"https://dshplugin.app/plugins/dsh-lark-bot","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","fetched_at":"2026-11-05T00:22:50.946Z","evidence_url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","attribution":"PlutoKeating upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","fetched_at":"2026-11-05T22:10:53.242Z","evidence_url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","attribution":"PlutoKeating upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","fetched_at":"2026-11-05T22:20:38.471Z","evidence_url":"https://raw.githubusercontent.com/PlutoKeating/dsh-lark-bot/main/package.json","attribution":"PlutoKeating upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.405Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:38.471Z","reason":"README not available in candidate"}},{"slug":"registry-ef29a604f19e3888","name":"dsh-cost-meter","description":"Bilingual DeepSeek Harness cost-tracking plugin with session costs, budgets, balance checks, history, and pricing sync.","description_zh":"统计 DSH 会话成本、预算与历史，并展示用量、配额和余额信息；最低宿主为 DSH 0.2.0，0.1.x 不再支持。","description_en":"Tracks DSH session costs, budgets, and history while displaying usage, quotas, and balances; requires DSH 0.2.0 or newer, not the 0.1.x line.","author":"Han-1413141","install_spec":"dsh-cost-meter","repo":"https://github.com/Han-1413141/dsh-cost-meter","github_repo_id":1333235870,"category":"devtools","tags":["cost-tracking","usage-dashboard","budgets","quotas"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.395Z","evidence_url":"https://dshplugin.app/plugins/dsh-cost-meter-han-1413141","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","fetched_at":"2026-11-05T00:22:58.034Z","evidence_url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","attribution":"Han-1413141 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-cost-meter/latest","fetched_at":"2026-11-05T00:22:58.034Z","evidence_url":"https://registry.npmjs.org/dsh-cost-meter/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","fetched_at":"2026-11-05T22:10:55.411Z","evidence_url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","attribution":"Han-1413141 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-cost-meter/latest","fetched_at":"2026-11-05T22:10:55.411Z","evidence_url":"https://registry.npmjs.org/dsh-cost-meter/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","fetched_at":"2026-11-05T22:20:40.497Z","evidence_url":"https://raw.githubusercontent.com/Han-1413141/dsh-cost-meter/master/package.json","attribution":"Han-1413141 upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-cost-meter/latest","fetched_at":"2026-11-05T22:20:40.497Z","evidence_url":"https://registry.npmjs.org/dsh-cost-meter/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.395Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:40.497Z","reason":"README not available in candidate"}},{"slug":"registry-fc37fd1fe2510f89","name":"dsh-chat-import","description":"Imports agent conversation histories into resumable DeepSeek Harness sessions, with Claude Code export and incremental sync.","description_zh":"将其他 Agent 的对话历史导入 DSH，转换为可继续对话的会话，并支持反向导出；需 DSH 0.1.5-rc.1+ 与兼容版本的 dsh-tools。","description_en":"Imports conversation histories from other agents as resumable DSH sessions and supports reverse export; requires DSH 0.1.5-rc.1+ and a compatible dsh-tools range.","author":"Nwflower","install_spec":"dsh-chat-import","repo":"https://github.com/Nwflower/dsh-chat-import","github_repo_id":1333200468,"category":"devtools","tags":["conversation-import","agent-history","session-migration","session-export"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.397Z","evidence_url":"https://dshplugin.app/plugins/dsh-chat-import","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","fetched_at":"2026-11-05T00:23:06.136Z","evidence_url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","attribution":"Nwflower upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-chat-import/latest","fetched_at":"2026-11-05T00:23:06.136Z","evidence_url":"https://registry.npmjs.org/dsh-chat-import/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","fetched_at":"2026-11-05T22:10:58.728Z","evidence_url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","attribution":"Nwflower upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-chat-import/latest","fetched_at":"2026-11-05T22:10:58.728Z","evidence_url":"https://registry.npmjs.org/dsh-chat-import/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","fetched_at":"2026-11-05T22:20:44.197Z","evidence_url":"https://raw.githubusercontent.com/Nwflower/dsh-chat-import/main/package.json","attribution":"Nwflower upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/dsh-chat-import/latest","fetched_at":"2026-11-05T22:20:44.197Z","evidence_url":"https://registry.npmjs.org/dsh-chat-import/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.397Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:44.197Z","reason":"README not available in candidate"}},{"slug":"registry-fce3792fb3426ed8","name":"dsh-auto-memory","description":"DeepSeek Harness Web GUI auto-memory plugin with layered Markdown memory, automatic injection and consolidation, search, calendar, and settings UI.","description_zh":"为 DSH 会话提供跨会话记忆召回、自动整理、技能沉淀与上下文管理；语义检索层有额外模型组件要求。","description_en":"Adds cross-session memory recall, consolidation, skill crystallization, and context management to DSH; semantic retrieval tiers have additional model-component requirements.","author":"Aik358","install_spec":"@a9i5k4/dsh-auto-memory","repo":"https://github.com/Aik358/dsh-auto-memory","github_repo_id":1333928744,"category":"memory-rag","tags":["persistent-memory","semantic-retrieval","context-management","session-recall"],"trust":"community","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.406Z","evidence_url":"https://dshplugin.app/plugins/dsh-auto-memory","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","fetched_at":"2026-11-05T00:23:05.408Z","evidence_url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","attribution":"Aik358 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","fetched_at":"2026-11-05T22:10:58.525Z","evidence_url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","attribution":"Aik358 upstream package manifest (branch, not pinned)"},{"kind":"github","url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","fetched_at":"2026-11-05T22:20:44.172Z","evidence_url":"https://raw.githubusercontent.com/Aik358/dsh-auto-memory/main/package.json","attribution":"Aik358 upstream package manifest (branch, not pinned)"}],"data_as_of":"2026-11-05T00:15:41.406Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:44.172Z","reason":"README not available in candidate"}},{"slug":"registry-ff041b45536c6466","name":"DSH-Plugins-Marketplace","description":"An installable DeepSeek Harness Web GUI marketplace plugin for discovering, installing, and updating GitHub repositories tagged `dsh-plugin`.","description_zh":"在 DSH Web GUI 浏览 GitHub dsh-plugin 主题项目，提供搜索、安装、版本检测与更新。","description_en":"Browses GitHub dsh-plugin topic projects in DSH Web GUI, with search, installation, version checks, and updates.","author":"bradeGithub","install_spec":"bradeGithub/DSH-Plugins-Marketplace","repo":"https://github.com/bradeGithub/DSH-Plugins-Marketplace","github_repo_id":1333295863,"category":"devtools","tags":["marketplace","plugin-discovery","plugin-updates","github-topic"],"trust":"unverified","source":[{"kind":"registry","url":"https://raw.githubusercontent.com/dshplugin-app/deepseek-harness-plugins/main/README.md","fetched_at":"2026-11-05T00:15:41.393Z","evidence_url":"https://dshplugin.app/plugins/dsh-plugins-marketplace","attribution":"DSH Plugin Registry (independent directory)"},{"kind":"github","url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","fetched_at":"2026-11-05T00:22:48.017Z","evidence_url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","attribution":"bradeGithub upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","fetched_at":"2026-11-05T00:22:48.017Z","evidence_url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","fetched_at":"2026-11-05T22:10:52.334Z","evidence_url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","attribution":"bradeGithub upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","fetched_at":"2026-11-05T22:10:52.334Z","evidence_url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","attribution":"npm registry package metadata"},{"kind":"github","url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","fetched_at":"2026-11-05T22:20:37.157Z","evidence_url":"https://raw.githubusercontent.com/bradeGithub/DSH-Plugins-Marketplace/main/package.json","attribution":"bradeGithub upstream package manifest (branch, not pinned)"},{"kind":"npm","url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","fetched_at":"2026-11-05T22:20:37.157Z","evidence_url":"https://registry.npmjs.org/%40michengai%2Fdsh-skills-manager/latest","attribution":"npm registry package metadata"}],"data_as_of":"2026-11-05T00:15:41.393Z","readme":{"status":"unavailable","checked_at":"2026-11-05T22:20:37.157Z","reason":"README not available in candidate"}}]}