Development & Runtime
dsh-hooks-claude-code: the official bridge as a plugin
The official bridge translates your existing Claude Code hooks.json into dsh hook extension points — reuse, don't rewrite. Proof that everything is a plugin.
Config fragment
dsh plugin --profile web add dsh-hooks-claude-codeInstalled like any other plugin. Your existing Claude Code hooks configuration becomes dsh hooks without a rewrite.
Core code
The bridging idea: read the foreign format, map it onto dsh extension points.
export function apply(ctx, config) {
const hooks = readClaudeHooksJson(config.path);
for (const [event, commands] of Object.entries(hooks)) {
ctx.hooks.register(mapEvent(event), {
commands,
// run at the mapped agent/tool lifecycle extension point
});
}
}It proves the ecosystem claim from the top: even an official migration tool is shipped as a plugin.
Why it scores
- Official: shipped by the DeepSeek Harness team as a bridge plugin.
- Migration path: Claude Code and Codex hooks.json translate into dsh hooks — reuse, don't rewrite.
- Ecosystem proof: if the official tool is a plugin, everything is a plugin.