DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

@agentvalet/dsh — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
@

@agentvalet/dsh

@agentvalet/dsh

Governed platform access for DeepSeek Harness — no credential on the machine

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @agentvalet/dsh@0.1.1
READMECompatibilityVersions

Compatibility and provenance

@agentvalet/dsh is published as @agentvalet/dsh and currently resolves to version 0.1.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
9/20/2026

Versions

0.1.1stable
8/21/2026
0.1.0stable
8/21/2026

Related plugins

Loading related plugins…

Latest
0.1.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
55.3 kB
Files
26
Surface
any
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
114
Security scan
✓ v0.1.1 scan passed
Last push
8/21/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in security-access.

Doctor@linxin666/dsh-doctorTransactional rescue mode for DSH profiles with a supervised launcher, isolated recovery capsule, deterministic repairs, health monitoring, and a local Web recovery consolePocketdsh-pocketPut DeepSeek Harness in your pocket: one package, one settings page, and scan a QR code on your phone to access DSH on your computer in sync (LAN + public network, real-time screen mirroring).DSCODE@toddzheng024/dscode-bundleA complete DeepSeek coding agent with persistent shell, Ultra collaboration and automatic permission review.Auto Reviewdsh-auto-reviewSecond-model AI auto-review for DeepSeek Harness approval requests: a read-only reviewer subagent decides allow/deny on the approval answerer chain, with fail-closed fallback and full session-log audit.

README

@agentvalet/dsh

Governed platform access for DeepSeek Harness agents: an agent calls Slack, GitHub, Gmail, Stripe, or any other AgentValet-connected SaaS platform through a broker that enforces the owner's grants and approval flow, with no API key stored on the machine the agent runs on.

Install

dsh plugin --profile web add @agentvalet/dsh

This installs both plugins the bundle ships: av-identity (the agentvalet service) and av-tools (the four tools below). Restart or reload the profile after installing.

Connect

An installed but unconnected profile has no identity yet — calls report "not connected" rather than failing obscurely. To connect it:

  1. In the AgentValet dashboard, generate a single-use bootstrap token for a new agent.
  2. Run the bundle's connect command:
AGENTVALET_BOOTSTRAP_TOKEN=<token> npx agentvalet-dsh-connect --profile web

--token <token> works too; the environment variable just keeps the token out of your shell history. The command prints the new agent id and nothing else — never the token, never the key. --help lists the rest of the flags.

Connecting is a command you run, not a tool the agent can call. An enrolment tool would let an agent bootstrap its own identity with no human in the loop, and the identity would stop attesting to a person's decision to create it.

The command generates an RS256 keypair locally and sends only the public key to AgentValet's /v1/agents/bind endpoint. The private key never leaves the machine. It is written to $DSH_HOME/agentvalet/<profile>.json (~/.dsh/agentvalet/... when DSH_HOME is unset) at mode 0600, and the store refuses outright to write anywhere inside a git working tree.

Once bound, the agent shows up in the dashboard deny-by-default — it can call nothing until the owner grants it specific platforms and scopes.

A bootstrap token is single-use. Re-running connect on an already-connected profile is refused rather than silently replacing the identity, so one agent's audit history can never be laundered into another's.

The routing instructions it writes

Connecting also writes a short routing block into $DSH_HOME/AGENTS.md — the rule that platform calls go through AgentValet rather than around it. The block sits between <!-- agentvalet:start --> and <!-- agentvalet:end --> fences: anything else in that file is yours and is left untouched, and re-running connect refreshes the region in place instead of appending a second copy.

It is written there because that is where dsh reads. The instruction loader (@deepseek-ai/dsh-agent-instructions) reads $DSH_HOME/AGENTS.md and then each directory from the project root down to the session cwd — it never scans node_modules, so the AGENTS.md shipped inside this package reaches no model. That copy is documentation for you to read or paste into a project root.

Note it follows $DSH_HOME, not --home: --home only relocates where the identity is stored, and following it would put the file somewhere nothing reads. If the write fails, connect says so and still reports the enrolment — by then the single-use token is spent and the agent exists, so failing the whole command over a markdown file would strand a real identity.

The block deliberately contains no agent id, owner id, or scope list. This file lands in a home directory and gets copied into project roots and pasted into issues; identity in it would leak through ordinary use.

Tools

ToolMethodNotes
agentvalet_list_platforms—Lists platforms and scopes the owner has approved for this agent. Call this before any platform call — grants can change at any time.
agentvalet_read_platformAlways GETRead from an approved platform.
agentvalet_write_platformPOST (default), PUT or PATCHCreate or update. May require owner approval.
agentvalet_delete_platformAlways DELETEUsually requires owner approval.

Every tool takes the platform id and scope string exactly as returned by agentvalet_list_platforms, plus an endpoint. All four resolve to { ok: true, data } on success or { ok: false, error } on failure — a denial, a pending approval, or a suspended agent all come back as a plain result the model can read and explain rather than as a thrown error. (That is a guarantee about our own tool bodies. Argument validation happens in the harness before our code runs, so a malformed call comes back in dsh's own isError result shape instead.)

What this does NOT do

  • No local policy engine. Every grant, scope, and approval decision is evaluated by AgentValet's proxy, not by anything running on this machine.
  • No vault on disk beyond the agent's own signing key. There is no platform credential to steal locally — API keys for Slack, GitHub, and the rest live only at the broker, never on the agent's host.
  • No sandboxing. This plugin governs which platform calls succeed; it is not a substitute for running the harness in a sandbox and pairs with one rather than replacing it.
  • No sub-agent delegation and no attenuated scope re-issue. This bundle implements neither. It enforces the owner's grants for this one agent, and that is all it does.

Compatibility

Declared harness range: >=0.1.0-rc.5 <0.2.0. Verified against @deepseek-ai/dsh@0.1.0-rc.7, @deepseek-ai/cordis@4.0.1, and @deepseek-ai/dsh-tools@0.1.0-rc.7 — see VERIFICATION.md for what was and was not confirmed against a real harness run.