dshbase

Plugin directory / Developer / dshp

dshp

Unverified asdf17128

✓ Actively maintained Builds on 1 official DSH packages

View on GitHub ↗ ← Back to plugin directory

1Stars
0Forks
0Open issues
JavaScriptLanguage
2026-08-16Last push
Cross-platformPlatform

What it does

Manage DeepSeek Harness profiles — list, create, clone, diff, and share a whole dsh setup as one portable file.

Our take
Unverified — not yet verified

Manage DeepSeek Harness profiles — list, create, clone, diff, and share a whole dsh setup as one portable file. Not yet verified — install and test it yourself.

“Unverified” means our automated CI has not yet installed this plugin. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

Plugin author? Get the “Verified” label — submit your own evidence (screenshots, logs, or a short demo) and we'll review and flip the badge.

Submit verification evidence ↗

README

dshp

Share a whole DeepSeek Harness setup as one file.

English | 锟斤拷锟斤拷

npx dshp ls

Why

dsh boots profiles and forwards installs to pnpm. It cannot create an empty profile, list the ones you have, copy a working setup before you experiment on it, or hand a setup to someone else 锟斤拷 that is all manual work under ~/.dsh/profiles today.

Which matters, because "everything is a plugin" means your setup is a stack of layers, and the useful unit to share is the whole stack, not one plugin at a time.

Share a setup

dshp export web -o my-setup.dshp
# dsh profile 锟斤拷 reproduce with: dshp import <this-file>
dshp: 1
name: web
bundles:
  - @deepseek-ai/dsh-base
  - @deepseek-ai/dsh-web-app
  - dsh-cloudflare-browser-run
plugins:
  dsh-cloudflare-browser-run: "^0.1.1"
patch: |
  - id: session-title
    config:
      fallbackMaxWords: 12

Short enough to paste into a forum post. On the other machine:

dshp import my-setup.dshp

That writes the profile, installs the plugins through dsh's own pnpm, and you boot it with dsh --profile web. Verified end-to-end: a fresh $DSH_HOME reproduced a 132-entry tree identical to the original, patch included.

Experiment safely

dshp clone web web-锟斤拷锟斤拷锟斤拷      # instant, keeps node_modules
dsh plugin --profile web-锟斤拷锟斤拷锟斤拷 add some-experimental-plugin
dshp diff web web-锟斤拷锟斤拷锟斤拷
web -> web-锟斤拷锟斤拷锟斤拷

plugins
  + some-experimental-plugin@^0.2.0

If it goes wrong, dshp rm web-锟斤拷锟斤拷锟斤拷 --yes. Your working profile was never touched.

Commands

dshp ls profiles, with bundle/plugin counts and disk size
dshp show <name> bundles in load order, plugins, patch
dshp new <name> [--web|--headless] create a profile 锟斤拷 dsh itself cannot make an empty one
dshp clone <from> <to> copy a working setup, node_modules and all
dshp export <name> [-o FILE] portable file (stdout by default)
dshp import <file> [--as NAME] [--no-install] recreate a profile
dshp diff <a> <b> what differs
dshp rm <name> --yes delete

What a profile actually is

Under $DSH_HOME/profiles/<name>:

  • package.json 锟斤拷 dependencies are the plugins, dsh.profile.bundles is the ordered layer stack
  • cordis.patch.yml 锟斤拷 your own id-targeted overrides
  • cordis.yml, pnpm-workspace.yaml 锟斤拷 boilerplate, regenerated

So three things reproduce a setup: plugin versions, bundle order, and the patch. That is exactly what the portable file carries.

Bundle order is part of the format: it decides which layer patches which, so a reordering is reported by diff as a real difference.

The patch block is copied byte-for-byte rather than re-serialised, because it may hold !!js expressions (root: !!js dshHomePath('sessions')) that a YAML round-trip would mangle or evaluate. Nothing here ever evaluates your config.

Install and uninstall

As a CLI: npx dshp ls 锟斤拷 nothing to install.

As a plugin:

dsh plugin --profile web add github:asdf17128/dshp   # install
dsh plugin --profile web remove dshp                 # uninstall

Removing it drops the list_profiles and export_profile tools. Your profiles
are untouched 锟斤拷 the plugin only reads.

Compatibility

Verified against @deepseek-ai/dsh 0.1.0-rc.5. The profile layout it reads
(package.json with dsh.profile.bundles, cordis.patch.yml) is dsh's own; a
change there is what would break it first.

Requirements

Node 18+. import needs a working dsh (local node_modules/.bin/dsh preferred, otherwise on PATH) because it installs through dsh's own pnpm; every other command is pure filesystem work.

See also

dsh-doctor 锟斤拷 checks a profile for patches that silently stopped applying.

License

MIT

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dshp for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:asdf17128/dshp

Headless (CLI) profile:

dsh plugin --profile headless add github:asdf17128/dshp

Test report

Not yet L3-verified — see failure note below if we already ran it.

Status: pending
Note: 验证: runtime-fail (0.1.0-rc.6) Browse all pending failures →

When to use it

Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.

Who it's for

Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.

For developers — extending it

The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7795 plugins →