Skip to content

dsh-pouch

Verified

@moon16u/dsh-pouch Β· v0.2.0 Β· MIT Β· Web UI

A collection of small, beautiful, and practical plugins for DeepSeek Harness (DSH)

Install

dsh plugin add @moon16u/dsh-pouch

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Readme

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

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.

πŸš€ 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 5 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
    
  2. 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.

πŸ§ͺ 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