Plugin Sandbox Test Results

We installed 120 top plugins in an isolated sandbox to verify whether they install on the current DSH 0.2.2-rc.1 and, once installed, whether they actually load. This is the only third-party integration test data available.

Plugins tested
120
Passed
104
Failed
16
Pass rate
87%
The headline finding: 16 plugins (13%) cannot be installed on the current DSH at all. Their CI is green and their unit tests may pass — but they do not install into a real environment. That is the cost of testing only half the job.

1. Failure reasons

ReasonCountPlugins
Version incompatible8dsh-ops, dsh-prime-memory, dsh-thinking-levels, dsh-browser-cdp, dsh-find-plugin, dsh-perm-gate
Package not found5dsh-meme, dsh-mcp-connector, @anysearch/anysearch-dsh, dsh-chat-import, @kenz1117/dsh-ui-usage-billing
Other1@deepseek-harness-tui/dsh-tui
Installs but not registered1@roarpeng/graphflow
Install timed out1@a9i5k4/dsh-auto-memory

2. Failure details (first 30)

PluginVerdictFirst error line
dsh-opsVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-memePackage not founddsh: initialized profile web at /home/node/.dsh/profiles/web
@deepseek-harness-tui/dsh-tuiOther|| 0.1.5-rc.1 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.
dsh-prime-memoryVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-mcp-connectorPackage not founddsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-thinking-levelsVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-browser-cdpVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-find-pluginVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-perm-gateVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-context-compression-improvedVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
@roarpeng/graphflowInstalls but not registereddsh: initialized profile web at /home/node/.dsh/profiles/web
@anysearch/anysearch-dshPackage not founddsh: initialized profile web at /home/node/.dsh/profiles/web
dsh-chat-importPackage not founddsh: initialized profile web at /home/node/.dsh/profiles/web
@anionex/dsh-vision-toolkitVersion incompatibledsh: initialized profile web at /home/node/.dsh/profiles/web
@kenz1117/dsh-ui-usage-billingPackage not founddsh: initialized profile web at /home/node/.dsh/profiles/web
@a9i5k4/dsh-auto-memoryInstall timed outTIMEOUT

3. Dependency size (heaviest 10)

Size drives install time and disk usage. Anything over 400 MB is worth noting.

Pluginnode_modules
@linxin666/dsh-pet487.9 MB
@zaofan/dsh-qqbot479.6 MB
@linxin666/dsh-client-ui-task-board472.6 MB
@a9i5k4/dsh-auto-memory406.9 MB
dsh-better-sidebar277.1 MB
dsh-univer-office271.9 MB
@michengai/dsh-skills-manager262.0 MB
@roarpeng/graphflow175.3 MB
dsh-pet136.2 MB
dsh-mobile84.8 MB

4. Install time

PluginDuration
@a9i5k4/dsh-auto-memory180.1s
@zaofan/dsh-qqbot41.6s
@linxin666/dsh-pet19.3s
@linxin666/dsh-client-ui-task-board18.3s
@michengai/dsh-skills-manager12.7s
dsh-better-sidebar12.6s
dsh-chat-import11.1s
dsh-pet11.0s
@kenz1117/dsh-ui-usage-billing9.8s
dsh-univer-office9.6s

5. Method

This is a real sandbox test, not a static scan. We built a Docker image (Node 24 + pnpm + DSH 0.2.2-rc.1) and run three stages per plugin.
StageEnvironmentWhat happens
1. InstallNetwork on, isolated container
1 GB RAM / 1.5 CPU / 256 pids
dsh plugin --profile web add <plugin>, 180s timeout
2. VerifyNo network, non-root dsh plugin list confirms installation
3. LoadNo network, all capabilities dropped dsh --profile web --dump-config confirms the plugin is mounted
Security note: stages 2 and 3 run with --network none, so even a malicious plugin cannot exfiltrate data or reach external services. Containers are destroyed after each run, leaving no state.

6. Verdicts

VerdictMeaning
passInstalled, loads, and appears in the config tree
install_failedInstall stage failed (version mismatch, missing package, timeout)
installs_but_not_registered Installed and config loads, but the plugin never appears in the tree — likely inert

7. Limitations

LimitationDetail
npm packages onlyPlugins installed from github: or #path: are not covered yet
Install and load onlyWe do not test functionality, performance or security
Single DSH versionOnly 0.2.2-rc.1, no version matrix yet
Limited sample120 plugins (top by downloads), not all 8,559

8. Raw data

/data/plugin-tests.json — full results per plugin with install logs, duration, dependency size and config entry count.

If you maintain a plugin: take the error message and fix it. We are only recording the fact that users cannot install it — this is not a judgement on your code quality.

Related

Plugin ecosystem · Developer counts · MCP Server