dsh-auto-approval: An Auto-Approval Permission Tier for DeepSeek Harness

styxnether/dsh-auto-approval

Workflow & AutomationVerified
Listed on 2026-08-20
Page last updated 2026-08-20

Adds an auto-approval middle permission tier to DeepSeek Harness, auto-approving harmless commands and trusted-area targets while deferring the rest to human.

Adds an auto-approval preset to DeepSeek Harness, auto-approving harmless commands and trusted-area operations to reduce manual approval overhead.

install
dsh plugin --profile web add github:styxnether/dsh-auto-approval
Category
Workflow & Automation
Platform
DSH-Plugin
Author
styxnether
Distribution
Plugin

dsh-auto-approval Key Features

Auto-approve harmless commandsAllow trusted-area targetsReal-argument decision coreLive config & audit log

dsh-auto-approval Repository

styxnether
Publisher
styxnether
Repository
styxnether/dsh-auto-approval
3
Stars
1
Forks
0
Watchers
0
Open issues
LanguageJavaScript
LicenseMIT License
Website
Repo last push2026-08-15 01:41:26
Repo created2026-08-14 17:31:49
Topics
deepseek-harnessdsh-plugin
Default branchmain

dsh-auto-approval Repo Summary

dsh-auto-approval is a middle permission tier plugin for DeepSeek Harness (DSH), maintained by StyxNether under the MIT license. It fills the gap between Workspace Write and Full access (danger-full-access) by adding an auto-approval preset to the permission settings, backed by an automated approval answerer that approves harmless commands and operations targeting configured trusted areas (including paths outside the workspace), while deferring everything else to the user. The plugin aims to reduce manual approval overhead but explicitly states it is scope control, not a security boundary—the DSH sandbox still confines all non-escalated calls, and an auto-approved call runs with the wider mode for exactly that one call.

What permission presets and approval policies does the dsh-auto-approval DSH plugin provide?

The plugin adds an auto-approval preset with sandbox mode workspace-write and approval policy ask, but auto-approves two categories: harmless commands (per rule table) and operations whose targets lie inside configured trusted areas (including outside the workspace). All other requests still ask the user. After installation, the preset appears in two permission surfaces: General settings → Permission (sets as default for future sessions) and the /permission picker (switches current session immediately, e.g., /permission auto-approval).

How does dsh-auto-approval implement auto-approval without compromising security?

DSH routes every operation needing approval through the approval/request waterfall. This plugin registers a listener with prepend, running before the web approval prompt. It looks up the recorded tool/call event by callId in the session log and reads the real tool arguments (command text, file_path, workdir)—never trusting the model-written justification string. The pure decision core (lib/decide.js) classifies requests as allow or defer. Path containment is evaluated on real identity: the deepest existing ancestor of every candidate path is resolved through realpath (the same mechanism the DSH filesystem sandbox uses), so symlinks and junctions cannot smuggle an auto-approval to a target outside a trusted area. allow returns allowed-once—the request never reaches the human UI, but the audit pair approval/asked + approval/decided: allowed-once is still written to the session log. defer calls next(), letting the deployment's human answerer decide as usual. The plugin never denies anything.

How to install dsh-auto-approval?

You can install from the npm registry or GitHub, pinning a commit for reproducibility:

bash
dsh plugin --profile web add github:styxnether/dsh-auto-approval

Or from npm:

bash
dsh plugin --profile <profile> add dsh-auto-approval-plugin

Note: the bundle patch restates the complete permission preset table (DSH patches replace a row's whole config), so keep it in sync with @deepseek-ai/dsh-base's table when upgrading DSH—the patch warns and is skipped if the target row is missing.

How to configure trusted areas and rule tables for dsh-auto-approval?

Configuration is two-layered, both live (no restart needed):

  1. Web settings page (easiest): Settings → Auto Approval (a dedicated page in the settings sidebar, like the Vision Toolkit page). Edit trusted areas (one absolute path per line), the harmless/dangerous pattern tables, and the switches there. Changes are written to the auto-approval section of settings.yaml and apply immediately. The page also shows the last few auto-approval decisions.
  2. Composition config (the default base): set the relevant environment variables or options in the configuration file, as per the README example.

Which DeepSeek Harness versions and platforms does dsh-auto-approval support?

The plugin is built on DSH's approval seam (approval/request waterfall) and depends on @deepseek-ai/dsh-settings, @deepseek-ai/dsh-app-boot, and @deepseek-ai/dsh-permission-presets. It works with any DSH session using the approval mechanism, including web UI and CLI. Due to the patch mechanism, keep the permission preset table in sync when upgrading DSH. The plugin was last updated in 2026-08, with 2 stars, 1 fork, and 0 open issues, indicating an early but stable state.

See more DSH plugins at dsh-plugin.org

DSH-Plugin FAQ