npm.io
0.1.1 • Published 14h ago

opencode-claude-code-hooks

Licence
MIT
Version
0.1.1
Deps
0
Size
10 kB
Vulns
0
Weekly
0
Stars
7

opencode-claude-code-hooks

Run existing Claude Code command guardrails in OpenCode without copying their commands or settings.

Install

Add the package to the OpenCode plugin array.

{
  "plugin": ["opencode-claude-code-hooks"]
}

OpenCode installs the package when it starts. The plugin reads these Claude files at every tool call.

  • ~/.claude/settings.json
  • <git-root>/.claude/settings.json
  • <git-root>/.claude/settings.local.json

Preserved behavior

  • PreToolUse and PostToolUse command hooks
  • Claude matcher names such as Bash, Edit, and Write
  • exit code 2 blocking
  • structured deny results
  • full updatedInput replacement
  • post-tool feedback and additionalContext
  • the Claude default command timeout of 600 seconds
  • CLAUDE_PROJECT_DIR set to the Git project root

Settings are read at runtime, so editing a Claude hook does not require reinstalling this plugin.

Honest limits

  • Stop cannot preserve Claude timing with OpenCode's current stable plugin API
  • prompt, agent, HTTP, async, and conditional if handlers stay manual
  • allow and ask results do not bypass OpenCode permissions
  • malformed source settings are ignored so they do not break OpenCode startup

For a dry-run report before installation, use the compatibility route in dsh-movein.

npx claude-to-opencode --hooks-only
npx claude-to-opencode --hooks-only --apply

Verification

The test suite runs real hook child processes and checks blocking, input replacement, project-root discovery, and post-tool feedback on Linux, macOS, and Windows.

npm ci
npm test

License

MIT

Keywords