maque2333/dsh-profile-manager--packages-cli0

dsh-profile-manager

DeepSeek Harness 配置集与实例管理器

AI 分析

核心用途是提供命令行工具和 Web 面板,将 DSH 配置集作为实例进行导入、导出、启动、停止和状态监控。适合需要管理多个 DSH 配置集和运行实例的进阶用户。

套件
dsh-profile-manager
版本
0.1.1
最近更新
2026年8月15日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:maque2333/dsh-profile-manager#fb4ab66eb32a1393e06f0f367a84e21ffe715bb5&path:packages/cli

dsh-profile-manager (dshm)

Profiles as instances — manage DeepSeek Harness profiles and their running instances.

dshm is an open-source CLI + Cordis plugin that treats DSH profiles as first-class objects: list, show, import/export, start, stop, restart, status, delete — plus a web panel and model tools for visual/agent-driven management.

中文文档

Why

The official dsh CLI gives you low-level primitives:

dsh plugin --profile  add 
   # create + install plugins
dsh --profile  web --port N       # boot

…but it has no import/export format, no registry view, and no process (instance) management. dshm fills that gap by introducing the Instance concept:

profiles/writing/            # the profile (definition) — always one copy
  ├─ writing-1  (:3082)      # running instances (0..N)
  └─ writing-2  (:3083)      # same recipe, second table

Install

npm install -g dsh-profile-manager

Requirements:

  • Node.js ≥ 20
  • a working dsh installation (0.1.0-rc.x) on PATH
  • pnpm on PATH (only for import / bootstrap)

Quick start

dshm list                  # list all profiles + their instances
dshm import writing.yaml   # install a profile from a definition file
dshm start writing         # start an instance (web shapes auto-pick a port)
dshm status                # live status
dshm stop writing          # graceful stop
dshm bootstrap             # create & start the manager (web panel) profile

Commands

CommandDescription
dshm listList every profile: shape, bundles, dependencies, instance status
dshm show One profile's manifest + patch layer + dependencies
dshm import [--name N] [--force] [--allow-builds]Install a profile and all its packages from dshm-profile.yaml
dshm export [-o file]Reverse-export a profile to the same format
dshm delete [--purge] [--yes] [--force]Delete (archive by default; --purge truly removes)
dshm start [--port N] [--foreground]Start an instance (multi-instance needs explicit --port)
dshm stop [--port N]Stop instance(s): SIGTERM → ≤8s → SIGKILL
dshm restart [--port N]Stop all + restart on the last port
dshm status [name]Instance status (web: HTTP probe; generic: process liveness)
dshm doctorConsistency diagnostics + crash residue + archive listing
dshm bootstrap [--port N]Create + start the manager profile (the web panel)

All commands respect DSH_HOME (default ~/.dsh).

Profile definition file (dshm-profile.yaml)

The import/export carrier — a declarative front-end to the official profile trio (package.json + cordis.patch.yml + pnpm-workspace.yaml). Importing produces exactly what hand-crafting would.

dshmProfile: 1                 # format version

name: writing                  # profile name (= $DSH_HOME/profiles/)

bundles:                       # ordered bundle list (= dsh.profile.bundles)
  - '@deepseek-ai/dsh-base'
  - '@deepseek-ai/dsh-web-app'

dependencies:                  # mirrors package.json dependencies (any pnpm spec)
  dsh-news-briefing: ^1.0.0
  some-bundle: github:owner/some-bundle#v0.2.0

patch: |                       # your user layer (written verbatim to cordis.patch.yml)
  - insert:
      - id: ui-topbar
        name: 'dsh-ui-topbar-compact'

meta:                           # dshm-only metadata (ignored by dsh)
  description: 写作助手实例
  port: 3082                    # suggested port

Plugin form (the manager)

dsh-profile-manager is also a Cordis bundle — one npm package, two skins:

  • CLI (bin: dshm) — scripting, CI, offline rescue.
  • Plugin (dsh.bundle.patch) — a web panel at /profile-manager, profile_* model tools, and a /profile command. The panel and tools cover the full CLI surface: list / show / import / export / start / stop / restart / status / delete / doctor.

dshm bootstrap creates and starts a plain profile named manager (dsh-base + dsh-web-app + dsh-profile-manager). It shows up in dshm list like any other row — the manager manages itself.

dshm bootstrap              # then open http://127.0.0.1:
/profile-manager

Compatibility

  • Targets dsh 0.1.0-rc.x; consumes only the stable surface (CLI syntax, $DSH_HOME layout, dsh.profile manifest, cordis.patch.yml) — no internal @deepseek-ai/dsh-* APIs.
  • Shapes are classified by bundles: web / headless / generic — new community shapes need zero changes.
  • External contract: config hot, package install cold (same as upstream).

License

MIT