Files
oh-my-opencode/src/hooks/claude-code-hooks/AGENTS.md
T
YeonGyu-Kim 9f6d0d2281 docs(agents-md): refresh hierarchical knowledge base for v4.1.2
- Bump root AGENTS.md header: 2026-05-14 → 2026-05-15, commit 5ffbe0e2453a740636, release v4.1.1 → v4.1.2
- Update file counts: 2034 (1337+697) → 2041 (1340+701), LOC ~292k → ~294k
- Fix STRUCTURE: openclaw lives at src/openclaw/ (not src/features/); list more accurate feature modules in the parenthetical
- Clarify interactive_bash gate: tmux binary on PATH via isInteractiveBashEnabled() (not 'tmux enabled')
- Fix docs/reference/features.md hook counts: Tool Guard 14→16, Total base 52→54, total with team-mode 59→61
- Bump 'Generated' date on all 43 subdir AGENTS.md files to 2026-05-15
- Preserve promptAsync injection cautions verbatim (per request)
2026-05-15 13:48:11 +09:00

1.1 KiB

src/hooks/claude-code-hooks/ — Claude Code Compatibility

Generated: 2026-05-15

OVERVIEW

~2110 LOC across 19 files. Provides Claude Code settings.json compatibility layer. Parses CC permission rules and maps CC hooks (PreToolUse, PostToolUse) to OpenCode hooks.

WHAT IT DOES

  1. Parses Claude Code settings.json permission format
  2. Maps CC hook types to OpenCode event types
  3. Enforces CC permission rules (allow/deny per tool)
  4. Supports CC .claude/settings.json and .claude/settings.local.json

CC → OPENCODE HOOK MAPPING

CC Hook OpenCode Event
PreToolUse tool.execute.before
PostToolUse tool.execute.after
Notification event (session.idle)
Stop event (session.idle)

PERMISSION SYSTEM

CC permissions format:

{
  "permissions": {
    "allow": ["Edit", "Write"],
    "deny": ["Bash(rm:*)"]
  }
}

Translated to OpenCode tool restrictions via permission-compat in shared/.

FILES

Key files: settings-loader.ts (parse CC settings), hook-mapper.ts (CC→OC mapping), permission-handler.ts (rule enforcement), types.ts (CC type definitions).