Installation
August 14, 2026 ยท View on GitHub
Supported Baseline
DSRH 0.1.0 is pinned to DeepSeek Harness npm packages 0.1.0-rc.6 and the source API inspected at commit 47f943859bef60e4160492346772ded9b24f765a. Upgrade the Bundle and Harness together only after running the integration checks.
Published Packages
When DSRH packages are published, install the Python sidecar in a dedicated environment, point DSRH_PYTHON at that interpreter, then add the npm Bundle:
python -m venv .venv-dsrh
.venv-dsrh/bin/python -m pip install dsrh-mcp==0.1.0
export DSRH_PYTHON="$PWD/.venv-dsrh/bin/python"
npx @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add @dsrh/deepseek-research-harness@0.1.0
npx @deepseek-ai/dsh@0.1.0-rc.6 --profile web --dump-config
These DSRH package names are release targets; this checkout does not claim they are already present on npm or PyPI.
Local Checkout
From the repository root:
corepack pnpm install
corepack pnpm build
python -m venv .venv
.venv/bin/python -m pip install -e './python[dev]'
export DSRH_PYTHON="$PWD/.venv/bin/python"
npx @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add ./packages/plugin
PowerShell uses .venv\Scripts\python.exe and $env:DSRH_PYTHON = (Resolve-Path .venv\Scripts\python.exe).
dsh plugin forwards to pnpm, resolves relative paths from the invoking directory, and adds packages declaring dsh.bundle.patch to the profile bundle list. Run the dump command from the research workspace because process.cwd() becomes both the Harness and DSRH workspace root.
Validate
npx @deepseek-ai/dsh@0.1.0-rc.6 --profile web --dump-config
python -m dsrh_mcp doctor
python -m dsrh_mcp version
The dump must contain dsrh-runtime, dsrh-skills, and dsrh-science-mcp. doctor must report a valid workspace and SQLite FTS5. Starting the profile logs an MCP startup error when DSRH_PYTHON does not name an environment containing dsrh-mcp; the official client then follows its bounded reconnect policy.
Override Configuration
Profile patches replace whole row configs. An override of dsrh-runtime must repeat every field it keeps. Its Cordis config uses camelCase:
workspace:
root: .
experiment:
defaultDryRun: true
maxMatrixRuns: 100
security:
workspaceOnly: true
Python-side paper, citation, and experiment settings are not fields of that Cordis row. Configure them with DSRH_WORKSPACE_ROOT, DSRH_PAPER_MAX_FILE_MB, DSRH_PAPER_SEARCH_TOP_K, DSRH_CITATION_CACHE_TTL_HOURS, DSRH_NETWORK_TIMEOUT_SECONDS, DSRH_EXPERIMENT_DEFAULT_DRY_RUN, and DSRH_EXPERIMENT_MAX_MATRIX_RUNS. DSRH has no model API key setting.