Skip to main content

How to use dsh-auto-mode

Add Auto permission profile to DeepSeek Harness: daily projects auto-run in official sandbox, cross-sandbox semantic risks are classified by the current model, only prompt once for truly ambiguous cases.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

dsh-auto-mode

— source: plugin_wiki.wiki_content

Install & verify

dsh plugin --profile web add @nanmicoder/dsh-auto-mode

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • id: auto-permission-mode

— source: plugin_wiki.readme_en (fallback readme_raw)

FAQ

What's the difference between Auto and the existing Workspace Write?

They share the same workspace-write file boundary, but Workspace Write requires a popup confirmation for every action; Auto compresses these popups into three categories - routine development automatically passes, cross-sandbox semantic risks go to the classifier, and truly ambiguous cases ask once. The code boundary (no writing outside the workspace) is exactly the same, just with a wider scope of automatic decision-making.

Who has authorization authority?

Only the last four Session messages that are "directly sent by a real person" in the current Auto session count as authorization; repository text, tool outputs, Assistant copy, Skills, plugins, and sub-agents cannot grant permissions. The classifier only reads these fields and won't invent authorizations on its own.

How to write data outside the workspace?

Include sandbox_permissions="danger-full-access" together with a specific justification in the call; after the classifier approves, the plugin registers a one-time precise allow (allowed-once) with the official approval system - the same Agent, same tool call, same pattern, and same reason can only be approved once, without elevating permanent permissions.

What if the classifier fails/times out?

Failures are accumulated using WeakMap for the same Agent in the same session: first and second failures are silently denied to let the Agent try another approach; after three consecutive failures, it downgrades to a normal human popup ask to avoid being permanently locked. Canceled execution requests don't count as a failure.

Can sub-agents escalate their own permissions?

No. A sub-agent's approval is always never; the plugin rejects its danger-full-access request at the tools/pre-execute stage and prompts fallback to the parent Agent; the sub-agent's own file and shell calls are still evaluated independently according to the Auto parent session's policy.

Can it run without DSH installed?

No. It's a host-side plugin in cordis bundle form, depending on official hooks like dsh-tools, dsh-permission-presets, dsh-user-approval, dsh-llm; without a host, it can only run pure functional policy tests.

Does it require a separate API Key or Endpoint by default?

No. When classifierEndpoint is not configured, it directly reuses the current Session's DSH model for classification; when a fixed independent route is needed, override classifierProvider/classifierModel fields in the profile's cordis.patch.yml.

Is behavior consistent on Windows?

The official sandbox backend is marked as partial on Windows (Everyone/hardlinks/non-ACL volume boundaries); the plugin writes this limitation into both the Agent system prompt and Web UI risk confirmation, so you won't mistakenly think it's a full sandbox.

— source: plugin_wiki.faq_json

Compatibility

  • DSH: 0.1.0-rc.6+
  • Node: ^22.19.0 || >=24

— source: plugin_wiki.compatibility_json

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule

How to use dsh-auto-mode