Leading with the conclusion, because this is where people look in the wrong place: plugin packages in 0.1.2-alpha.5 declare no permissions.
Measured: reading every package.json for the 223 @deepseek-ai/* packages under ~/.dsh/profiles/node_modules, the dsh subtree holds exactly three keys:
| Key under dsh | Purpose | Permission declaration? |
|---|---|---|
| bundle | Marks this as a loadable bundle | No |
| client | Declares a client-side entry | No |
| configTrees | Declares config trees | No |
Searching for permissions, allow, allowedTools, sandbox, and capabilities: 0 hits.
So how is permission governed
Through two session-level knobs: sandbox mode (file effects) and approval policy (whether to proceed). In other words, permission is not declared by the plugin; it is granted by your session.
What you can actually check before installing
- What bundle and client entries the
dshsubtree declares — that decides which layer it joins. - Its
dependencies. An unfamiliar dependency deserves more suspicion than an unfamiliar plugin. - Whether there is a
postinstallstyle script — those run at install time and are outside the session sandbox. - Try it against a copy of your workspace, never the one you are working in.
How to write a risk note that is not empty
Not 'grant permissions carefully'. Be specific: this plugin runs an install script, it depends on a non-official package, it writes outside the workspace (if so). If you have no evidence, say there is none.