Transactional data-only configuration pack manager with integrity, ownership, preview, diff, and rollback safeguards.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
A transactional, data-only configuration pack manager for DeepSeek Harness. It previews, installs, diffs, exports, and uninstalls independently versioned resources under $DSH_HOME while tracking ownership and protecting user modifications.
Screenshot

Generated with GPT Image from the implemented Client layout and feature set; runtime appearance follows the active DSH theme and viewport.
Pack format
A source is a local directory or a ZIP-compatible .dshpack/.zip archive containing dshpack.yaml and every manifest-listed payload. The strict version-1 manifest contains an id, version, compatibility ranges, 1–10,000 files, SHA-256 for every file, create/replace/merge modes, ownership metadata, and bounded display metadata.
Pack files are data only. Accepted payload extensions are JSON/YAML/.dshskin, Markdown/text/TOML/INI, and PNG/JPEG/WebP/GIF images; executable or unknown extensions are rejected. No script, hook, shell command, JavaScript module, URL fetch, symlink, YAML alias/tag/anchor, embedded credential, traversal path, duplicate archive path, or undeclared payload executes or installs. Archives are checked against compressed, expanded, per-file, byte, and entry limits before payload use.
Transactions and ownership
Preview reports create/replace/merge actions and conflicts. Existing unowned files, files owned by another pack, create-mode collisions, and resources modified after installation require an explicit force choice. Force transfers only manifest-listed ownership; it is never implied.
Install and uninstall are serialized and guarded by an on-disk transaction lock. Each target is backed up before fixed-order atomic writes. Failed operations restore targets in reverse order and report partial rollback errors. The ledger is written atomically at $DSH_HOME/.dsh-vibe-pack/ledger.json. Uninstall protects modified resources unless force is explicit.
Every managed read and mutation resolves the real filesystem location first. A symbolic link or Windows junction that leaves the configured DSH root is rejected before preview, backup, export, directory creation, write, or removal.
Merge mode accepts JSON or YAML objects, recursively merges object keys, replaces arrays/scalars, rejects prototype keys and secrets, and emits deterministic data. Export verifies that installed resources still match the ledger and produces a portable .dshpack archive.
UI and CLI
Settings → Vibe Pack provides mandatory preview, digest-bound install, ledger history, Diff, independently confirmed Uninstall, and .dshpack download. The generated Typert namespace is vibePack. The CLI defaults --root to $DSH_HOME; pass it only to manage an explicit test root.
dsh-pack --root $env:DSH_HOME inspect ./my-pack
dsh-pack --root $env:DSH_HOME plan ./my-pack.dshpack
dsh-pack --root $env:DSH_HOME install ./my-pack.dshpack
dsh-pack --root $env:DSH_HOME history
dsh-pack --root $env:DSH_HOME diff my-pack
dsh-pack --root $env:DSH_HOME export my-pack > my-pack.dshpack
dsh-pack --root $env:DSH_HOME uninstall my-pack
Use --force only after reviewing reported ownership or modification conflicts.
Install
dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack
Restart the existing DSH Web process and refresh its page.
Model Experience
This plugin adds no model prompt, tools, messages, token usage, or KV-cache content. Pack inspection and mutation happen on the Host through explicit UI or CLI operations.
Known limitations
The transaction lock fails loud after an unclean process exit and may need manual removal after confirming no Vibe Pack process is active. Remote operations are shared with trusted clients in the same DSH Web composition. The format provides SHA-256 integrity and ownership checks, not publisher signatures or network distribution.
Development
From the repository root run corepack pnpm typecheck, corepack pnpm test, corepack pnpm build, and corepack pnpm pack:check. See TEST_PLAN.md for security acceptance cases.
Version 1.0.1 is marked compatible with the DSH 0.1.2-rc.1 web profile after Windows QA loaded its Host service, browser Client, generated Remote namespace, and Settings section in both the isolated QA instance on port 3081 and the existing local profile on port 3080. The Settings panel successfully loaded an empty ledger. Automated coverage contains 14 passing tests, including existing and missing-target junction escapes.
CI is configured to rebuild the committed lib artifacts on both Windows and Linux and reject any tracked or untracked difference.
MIT. See LICENSE.
Links
More in this category
dsh-market/dsh-market★ 10295
Browse, search and install community plugins from inside DeepSeek Harness settings, with category filters, one-click updates, enable/disable, theme switching and configuration backup.
zhu1090093659/dsh-web#packages/dsh-plugin-manager★ 9959
Plugin manager tab in DSH Settings → Plugins: install from npm or git with progress, enable/disable switches effective at next startup, conflict reconciliation with undo, and one-click hand-off to a fix session.
kingOfSoySauce/dsh-skin-market★ 295
Native skin marketplace and lifecycle manager that discovers community skins, displays previews and compatibility status, and provides verified one-click or manual installation paths.
awesome-dsh-plugin/dsh-find-plugin★ 216
Find plugins without leaving the agent: search this curated registry by keyword or category, with ready-to-run install commands.
bradeGithub/DSH-Plugins-Marketplace★ 199
GitHub-topic-driven plugin & skill marketplace: a Settings page that browses the auto-collected registry (the whole dsh-plugin topic plus the skills index, CI-refreshed every 2 hours) with one-click install, type detection, install-script and host-shadow-dependency safety confirmations, env-key management, and the STANDARD.md recognition spec.
Sanqi-normal/dsh-webui-market-plugin★ 103
In-harness plugin market for the dsh web GUI: browse the awesome-dsh-plugin.com catalog and install/uninstall plugins into a profile from Settings → Plugins → Plugin Market.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.