deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:moon16u/dsh-pouch
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
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.
| Plugin | Type | Description |
|---|---|---|
@moon16u/dsh-plugin-restart |
Host / CLI | Safe, detached DSH process restart command (/dsh-restart) and agent tool (dsh_restart) with a 3-second grace period. |
@moon16u/dsh-plugin-current-time |
Host / Agent | Injects 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-id |
Web UI | Displays a native-styled Session ID badge in the web session header with one-click clipboard copy. |
@moon16u/dsh-plugin-web-search-tavily |
Capability Seam | Real-time web search provider backed by the Tavily REST API, seamlessly integrating with DSH's ctx.web capability seam. |
@moon16u/dsh-plugin-llm-headers |
LLM Seam + Web UI | Provider 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-console |
Web UI + Host | MCP 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). |
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
Clone the repository:
git clone https://github.com/moon16u/dsh-pouch.git ~/dsh-pouch
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.
@moon16u/dsh-plugin-restart/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.@moon16u/dsh-plugin-current-timeagent/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.@moon16u/dsh-plugin-session-id@moon16u/dsh-plugin-web-search-tavilyctx.web.registerSearchProvider contract. Automatically resolves API keys from the TAVILY_API_KEY environment variable or DSH Credentials service.@moon16u/dsh-plugin-llm-headersUser-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.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.0.1.5-rc.1. The settings page reads the provider directory and writes settings over a dual-generation wire — DSH 0.1.1's connection.api (APIProxy) or the remote.llm / remote.settings namespaces — preferring whichever the host serves. Two host contracts it must honour: the provider profile is validated against a copy of the route, so the deepFreezed section a settings provider hands out stays untouched; and the resolved profile carries the modelErrors map dsh-llm-pi-ai reads in PiAiAdapter.modelOf.@moon16u/dsh-plugin-mcp-consolecordis.patch.yml entry — no GUI, no runtime changes, and every restart to apply an edit. Declared servers show up as untouchable read-only instances.@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.This monorepo uses pnpm workspaces and Node.js native test runner for contract and smoke tests:
cd dsh-pouch
pnpm install
pnpm test
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。