DSH Hub
dsh-advisor cover

omdsh-dev/dsh-advisor

dsh-advisor

UIWeb UI22 GitHub stars· updated 2026-09-27

dsh-advisor is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-advisor

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-advisor DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-advisor.svg)](https://dshhub.dev/plugins/dsh-advisor)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from omdsh-dev/dsh-advisor, cleaned of badges and images.

dsh-advisor

English | 中文

A standalone dsh (DeepSeek Harness) plugin bundle porting the omp "advisor" subsystem: a per-session independent reviewer model that observes the primary transcript, reviews each stepped turn with an explicitly configured model (provider + model are required), and injects severity-ranked advice (nit / concern / blocker) back into the session — without polluting or recursively reviewing itself.

Advisory only. The advisor never approves or rejects the primary agent's actions, and never issues commands as if it were the primary agent. Every delivered message is self-described advisory content, and a misbehaving reviewer is bounded end to end (emission guard, immuneTurns cooldown, failure policy) so it can never stall or pollute the primary loop.

Works in both dsh front ends: the web profile (sidebar → Plugins → dsh-advisor → Advisor card) and the dsh-tui terminal profile (/advisor + /advisor config).

Quick start

Install

dsh plugin --profile web add dsh-advisor      # web profile (Settings → Advisor card)
dsh plugin --profile dsh-tui add dsh-advisor  # dsh-tui terminal profile

Same plugin, either front end — the only difference is the --profile flag. Pin a version with @<version> (e.g. [email protected]). A registry install fetches the published tarball, which ships the built artifacts (lib/ + cordis.patch.yml) — nothing builds on the target machine, and runtime dependencies (@deepseek-ai/cordis, @deepseek-ai/schemastery, @deepseek-ai/dsh-* peers) resolve through the dsh installation's flat profile module fallback — no extra install step. Registry / git / tarball / local-directory variants (local-dir from a built checkout: dsh plugin --profile web add . or dsh plugin --profile dsh-tui add .), web Settings exposure, uninstall, and --dump-config verification → docs/install.md.

Configuration

Edit the config of the advisor row in your profile's patch layer (~/.dsh/profiles/<profile>/cordis.patch.yml). All five fields are schema-volatile live fields (dsh ≥ 0.1.7-rc.1): the web card and the TUI /settings screen write this same entry config — persisted in the profile patch, committed without a remount. (A pre-0.1.7 $DSH_HOME/settings.yaml advisor: section no longer exists: dsh imports it into the active profile once and renames the file .imported.)

Breaking change (2026-09-26): the enabled config key was removed. The plugin-row enable/disable toggle in the host UI is the master switch — a running row is enabled, and there is nothing left to configure for it. A stored profile still carrying an enabled: line keeps working: the line is silently ignored (accepted, never read, never re-persisted — 2026-09-27 ruling, no manual deletion needed); the key is deprecated and the write paths no longer persist it.

# ~/.dsh/profiles/<profile>/cordis.patch.yml — the advisor row's config
- id: advisor
  config:
    provider: deepseek-official  # REQUIRED (non-empty) for the advisor to run
    model: deepseek-flash        # REQUIRED (non-empty); fallback: deepseek-v4-flash (or another V4 id) until the gateway enables the V41 route
    systemPrompt: ""             # optional; "" = built-in reviewer prompt
    immuneTurns: 3               # int ≥ 0, default 3 — cooldown after a delivered steer
    maxDeltaMessages: 60         # int ≥ 0, default 60 — delta window; 0 = unbounded

…

Related plugins