DeepSeek Harness plugin

LiuHe

LiuHe (Six Harmonies) tool suite as a DeepSeek Harness (dsh) plugin bundle — 44 MCP tools with dynamic workspace injection

Jump to install

Source facts

Repository
wulun811/LiuHe
Latest update
Aug 20, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Package path
malong/dsh/bundle
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
malong/dsh/bundle/package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/wulun811/LiuHe/tree/HEAD/malong/dsh/bundle
Plugin: LiuHe
Author: wulun811

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

@jieai/dsh-malong-bridge

Official DSH (DeepSeek Harness) plugin for LiuHe / malong. One command puts all 44 malong__* MCP tools into dsh web, and malong's workspace automatically follows the current conversation's workspace — no need to pass a path manually.

dsh plugin --profile web add @jieai/dsh-malong-bridge
pkill -f "dsh web"
dsh web --port 3456 --host 0.0.0.0

Works out of the box: the bridge locates the bundled server/mcp-server.js (complete toolset backend; the only native dependency, better-sqlite3, ships cross-platform precompiled binaries), so no extra deployment is needed.

> pnpm 10 warns Ignored build scripts: better-sqlite3: that is pnpm's > default security policy (blocks dependency postinstall scripts). Run > pnpm approve-builds and check better-sqlite3 in the list (or edit > ~/.dsh/profiles/web/pnpm-workspace.yaml and add better-sqlite3 under > onlyBuiltDependencies, then pnpm rebuild better-sqlite3). > Without this, better-sqlite3 has no native binary and tool calls will fail. > > Native build fallback: better-sqlite3 ships prebuilt binaries for common > platforms (Node 20+); if your platform lacks a prebuilt and you have no build > toolchain (Windows: Visual Studio Build Tools for node-gyp), the server > automatically falls back to the vendored sql.js WASM backend > (malong/vendor/, zero native deps) — the startup log shows which backend is > active. Both backends use SQLite with compatible data files.

Uninstall

dsh plugin --profile web remove @jieai/dsh-malong-bridge
pkill -f "dsh web"
dsh web --port 3456 --host 0.0.0.0

Configuration (optional, zero-config by default)

Env varDefaultDescription
MALONG_SERVER_PATHbundled server/mcp-server.jsOverride the mcp-server entry (e.g. point at your own LiuHe dev copy)
MALONG_STATE_DIR~/.local/state/malong-dshIndex/state storage dir (all workspaces isolated under it by hash)
MALONG_TOOL_TIMEOUT_MS300000Per tool call timeout

You can also write a config: override on the malong-dsh-bridge entry in the profile's cordis.patch.yml (user layer, applied later).

How It Works

DSH Agent → malong__read_symbol(...) (no workspace_dir)
         → dsh-bridge injects workspace_dir = current session workspace
         → malong mcp-server (spawned subprocess) → per-path-hash isolated indexes
  • Dynamic workspace follow: every tool invocation carries the session

workspace (exec.agent.session.header.cwd); the bridge injects it automatically; explicit paths from the model are respected (cross-workspace management).

  • State isolation: indexes are hash-isolated by workspace path under

MALONG_STATE_DIR, unrelated to any project directory.

  • Zero intrusion: does not touch dsh's node_modules; dsh upgrades are safe.

> Platform support (automatic): malong-parse (the Rust parsing service) > ships as esbuild-style platform subpackages — the main package declares > @jieai/malong-parse-linux-x64 / -darwin-x64 / -darwin-arm64 / > -win32-x64 in optionalDependencies, and npm/pnpm pulls only the binary for > the current os/cpu at install time. Other platforms / custom binaries can be > provided via the MALONG_PARSE_BIN env var.

Differences vs. the official dsh-mcp-client

The official dsh-mcp-client bridges a single MCP server; this plugin's bridge adds dynamic workspace injection (fills workspace_dir per invocation from the session workspace, so the model never needs to know the path) — a capability unique to LiuHe.

Troubleshooting

| Symptom | Fix | |---|---| | Log shows mcp tools/list timeout | Verify the install is complete (dsh plugin reports no node_modules errors); restart dsh | | No malong__* tools in the conversation | Confirm the bundle layer is attached (dsh web --dump-config \| grep malong); hard-refresh the browser | | Call fails with missing_parameter: workspace_dir | The conversation has no workspace (no cwd) to inject; pass a path in the prompt | | Plugin stops working after a dsh upgrade | The plugin lives at the profile layer, upgrades do not affect it; if the cordis interface changes, reinstall the plugin |

Index Rules (Transparency)

  • Default ignored: node_modules, .git, dist, build, target,

coverage, __pycache__, .venv, .malong, .ai-transactions, vendor, etc.

  • md/json not indexed: only code files are indexed; use a read tool for documents
  • .malongignore customization: a .malongignore file at the project root

excludes directories allowlist-style (one per line; * wildcards supported; max 100 entries)

License

MIT