DeepSHPlugins
dsh-pouch 项目预览
GITHUB / COMMUNITY PROJECT

dsh-pouch

工具与集成JavaScriptMIT

DSH 实用小插件锦囊:安全自愈重启、顶栏会话 ID 复制与 Tavily 真实搜索提供方。

1 Starsmoon16u 更新时间 2026-09-06
访问 GitHub 仓库
dsh-pouch 项目预览

项目介绍

中文

DSH 实用小插件锦囊:安全自愈重启、顶栏会话 ID 复制与 Tavily 真实搜索提供方。

English

A pouch of practical micro-plugins for DSH: safe restart, session ID header badge, and Tavily search provider.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
moon16u
仓库
moon16u/dsh-pouch
GitHub Stars
1
Forks
0
开发语言
JavaScript
许可证
MIT
最近推送
2026-09-06
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

48/ 100
维护活跃
97
文档与实用信息
50
生态关注度
9
安装便捷信号
80
项目声明信号
100

近 5 天仍在更新;关注度尚低(1)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:moon16u/dsh-pouch

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-pouch logo

dsh-pouch

English | 中文

License: MIT npm DeepSeek Harness pnpm workspace

dsh-pouch is a pocket toolkit of practical, lightweight, and beautiful plugins designed for DeepSeek Harness (DSH).
It delivers out-of-the-box micro-extensions to enhance your daily workflow, interactive experience, and development productivity.

📦 Plugins Included

PluginTypeDescription
@moon16u/dsh-plugin-restartHost / CLISafe, detached DSH process restart command (/dsh-restart) and agent tool (dsh_restart) with a 3-second grace period.
@moon16u/dsh-plugin-current-timeHost / AgentInjects the host's real date, time, and timezone into agent context at the start of every turn, so a long-running session never reasons from a stale date.
@moon16u/dsh-plugin-session-idWeb UIDisplays a native-styled Session ID badge in the web session header with one-click clipboard copy.
@moon16u/dsh-plugin-web-search-tavilyCapability SeamReal-time web search provider backed by the Tavily REST API, seamlessly integrating with DSH's ctx.web capability seam.
@moon16u/dsh-plugin-llm-headersLLM Seam + Web UIProvider routes whose request headers are yours to set from settings.yaml — including the User-Agent the harness reserves for itself: literals, ${env:NAME} interpolation, per-model overrides, null deletion, plus a visual Request Headers settings page. Wire up any of pi-ai's 37 built-in providers with headers only.
@moon16u/dsh-plugin-mcp-consoleWeb UI + HostMCP server console in the settings page: runtime add/edit/enable/disable/reconnect/delete, per-tool switches, live status over SSE, and mcpServers JSON import. Zero MCP protocol code — everything rides the official @deepseek-ai/dsh-mcp-client. Profile-YAML MCP entries are auto-migrated into dynamic management on boot/refresh (and exportable back).

🚀 Quick Start & Installation

Method 1: One-Command Installation via DSH CLI (Recommended ⭐️⭐️⭐️⭐️⭐️)

Run a single command in your terminal. DSH will automatically download, bundle-register, and mount all 6 pocket plugins (zero manual configuration):

# 1. Install the entire toolkit via npm (recommended)
dsh plugin --profile web add @moon16u/dsh-pouch

# Or install directly from GitHub
dsh plugin --profile web add https://github.com/moon16u/dsh-pouch.git

Method 2: Local Git Clone Installation

  1. Clone the repository:
   git clone https://github.com/moon16u/dsh-pouch.git ~/dsh-pouch
  1. Add the bundle to your DSH profile:
   dsh plugin --profile web add file:~/dsh-pouch

*DSH automatically detects dsh.bundle and applies the built-in cordis.patch.yml layer without manual configuration file edits.*


🛠️ Plugin Highlights

1. @moon16u/dsh-plugin-restart

  • Problem: After editing plugins or configs, restarting DSH manually in an external terminal is tedious; killing the process directly inside an agent tool causes the session to freeze.
  • Solution: Exposes /dsh-restart slash command and dsh_restart agent tool. Spawns an asynchronous detached worker process that returns the response immediately and restarts cleanly after 3 seconds.

2. @moon16u/dsh-plugin-current-time

  • Problem: A model has no clock. It infers "today" from whatever the harness injected once at startup, so a session left open across midnight keeps reasoning from yesterday's date — and nothing in the transcript contradicts it.
  • Solution: Hooks agent/pre-step and appends one wall-clock reading after the prompt on the first step of every turn. Once per turn rather than per step, so a tool-call loop does not bury the transcript in near-identical timestamps.

3. @moon16u/dsh-plugin-session-id

  • Problem: Retrieving the current session UUID for debugging or log tracking requires digging into URLs or console logs.
  • Solution: Injects a clean capsule button displaying the Session ID in the web header utility bar with instant one-click clipboard copying.

4. @moon16u/dsh-plugin-web-search-tavily

  • Problem: Built-in search engines may be restricted or lack high-quality synthesized web answers.
  • Solution: Formally implements the ctx.web.registerSearchProvider contract. Automatically resolves API keys from the TAVILY_API_KEY environment variable or DSH Credentials service.

5. @moon16u/dsh-plugin-llm-headers

  • Problem: DSH merges its own attribution User-Agent into every provider request last, and a headers map written into llm-pi-ai cannot override that reserved name. Gateways that authenticate by client identity — Tencent CodeBuddy returns 500 {"code":11128,"msg":"request illegal"} — are unreachable with configuration alone.
  • Solution: Declare routes in your own llm-headers settings section, still served by the official PiAiAdapter; only the pi-ai provider is wrapped, so the configured headers get the final word before the socket. Ships with a Request Headers settings page (independent sidebar entry) — the stock provider cards expose no slot, and headers written into llm-pi-ai are stripped anyway. Wrapping the provider rather than the protocol object keeps pi-ai's own route implementations, so such routes wire up in a couple of lines. Routes without configured headers keep sending the DSH attribution unchanged, and deleting it is refused.
  • Version span: the settings page reads the provider directory and writes settings over a dual-generation wire — DSH 0.1.1's connection.api (APIProxy) or DSH 0.1.2-rc.1's remote.llm / remote.settings namespaces — preferring whichever the host serves.

6. @moon16u/dsh-plugin-mcp-console

  • Problem: The official way to attach MCP servers is a static cordis.patch.yml entry — no GUI, no runtime changes, and every restart to apply an edit. Declared servers show up as untouchable read-only instances.
  • Solution: A full MCP servers settings section managing the official @deepseek-ai/dsh-mcp-client at runtime: one fiber per server via cordis dynamic assembly (hot edit, no DSH restart), master switches, per-tool enable/disable pills, live status + tool lists over SSE, and mcpServers JSON import. External agents writing MCP entries into cordis.patch.yml are handled by an auto-ingest engine: on boot/refresh the entries are migrated into ~/.dsh/dsh-mcp.json (fiber takeover included, YAML trimmed precisely), reversible via POST /export-yaml. Secrets stay masked in every API response.

🧪 Testing

This monorepo uses pnpm workspaces and Node.js native test runner for contract and smoke tests:

cd dsh-pouch
pnpm install
pnpm test

📄 License & Credits

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目