Preface¶
The design philosophy of DSH (DeepSeek Harness) is “everything is a plugin”. In the existing Claude plugin ecosystem, many developers maintain plugin structures that include skills/, commands/, and hooks/. dsh-claude-plugin-loader is a compatibility-layer plugin maintained by patrick1099, designed to allow DSH to directly discover and load Claude-style plugins, thereby reusing existing Claude plugin capabilities.
Core Capabilities¶
This plugin implements core bridging functionality between Claude plugins and DSH:
-
Plugin scanning and deduplication
By default, it scans the~/.claude/plugins/cachedirectory. If multiple plugins with the same name exist under that directory, plugins are deduplicated by version, preferentially loading the latest live source and retaining the highest version found in the cache. -
Skills channel
Theskills/folder inside a plugin directory is registered as a DSH skill provider. Models can use DSH’s nativeskillorskill_searchcommands to discover and load SKILL.md files inside plugins by name. -
Commands channel
commands/*.mdfiles inside plugins are registered as DSH slash commands. It supports command registration, programmatic execution, and hot reloading. After changes to a plugin directory, commands are automatically updated or unregistered. -
Status tool
Provides a read-only toolclaude_plugin_status, used to list currently discovered plugins and their supported channel types (skills/hooks/mcp/commands/agents). -
SessionStart Hook bridge
This is a minimal bridge implementation and is disabled by default. It parsesSessionStartcommand hooks inhooks.json, executes them during theagent/session-startstage, and injects stdout into the session context. Enabling this feature requires explicitly settingsessionStartHooks: truein the configuration. -
Configuration management
Through theenabledPluginsconfiguration item, you can control that only plugins listed in the local[plugins.dsh].enabledare exposed, and require plugin manifests to declare that they aredshplugin skills.
Installation and Activation¶
Installing this plugin requires DSH’s plugin management commands.
# 装进 web 界面 profile
dsh plugin --profile web add dsh-claude-plugin-loader
# 装进 CLI/TUI profile
dsh plugin --profile cc-tui add dsh-claude-plugin-loader
# 装进一次性 headless profile
dsh plugin --profile headless add dsh-claude-plugin-loader
After installation is complete, restart the corresponding DSH process for the changes to take effect.
Configuration and Verification¶
After installation, you can configure it in the profile’s cordis.patch.yml to specify scan directories, enable specific plugins, or adjust the hot reload interval.
- id: claude-plugin-loader
name: dsh-claude-plugin-loader
config:
pluginRoots:
- "C:/path/to/shared/plugins"
- "C:/Users/<you>/.claude/plugins/cache"
enabledPlugins:
- "cjt"
- "note-workflow"
sessionStartHooks: true
reloadIntervalMs: 1500
Configuration verification:
# 查看配置是否注入
dsh --profile headless --dump-config
# 查看已加载插件状态
dsh --profile headless "Call claude_plugin_status and repeat its output."
# 测试加载技能
dsh --profile headless "Load the cjt skill."
Notes¶
- SessionStart disabled by default: For security reasons, the SessionStart hook bridge is disabled by default and must be explicitly enabled in the configuration with
sessionStartHooks: true. - TUI automation limitations: Automated PTY input for interactive TUI slash commands is not yet stably reproducible. It is recommended to manually type
/hello Aliceindsh --profile cc-tuifor final confirmation. - Unimplemented features: MCP configuration generation, the agents channel, PreToolUse deny/rewrite and other hook intents, and the full form of the external script protocol bridge are not yet implemented.
Ecosystem and Source Code¶
This plugin follows the MIT license. For more detailed documentation, usage guides, and source code, refer to the GitHub repository.