2026-02-17 11:17:01 +09:00
# src/hooks/claude-code-hooks/ — Claude Code Compatibility
2026-04-18 01:21:20 +09:00
**Generated: ** 2026-04-18
2026-01-19 20:18:26 +09:00
## OVERVIEW
2026-02-01 19:26:57 +09:00
2026-02-17 11:17:01 +09:00
~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.
2026-02-01 19:26:57 +09:00
2026-02-17 11:17:01 +09:00
## WHAT IT DOES
2026-01-19 20:18:26 +09:00
2026-02-17 11:17:01 +09:00
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`
2026-01-19 20:18:26 +09:00
2026-02-17 11:17:01 +09:00
## CC → OPENCODE HOOK MAPPING
2026-02-10 14:53:39 +09:00
2026-02-17 11:17:01 +09:00
| CC Hook | OpenCode Event |
|---------|---------------|
| PreToolUse | tool.execute.before |
| PostToolUse | tool.execute.after |
| Notification | event (session.idle) |
| Stop | event (session.idle) |
2026-01-19 20:18:26 +09:00
2026-02-17 11:17:01 +09:00
## PERMISSION SYSTEM
CC permissions format:
``` json
{
"permissions" : {
"allow" : [ "Edit" , "Write" ] ,
"deny" : [ "Bash(rm:*)" ]
}
}
```
2026-02-10 14:53:39 +09:00
2026-02-17 11:17:01 +09:00
Translated to OpenCode tool restrictions via permission-compat in shared/.
2026-01-19 20:18:26 +09:00
2026-02-17 11:17:01 +09:00
## FILES
2026-02-10 14:53:39 +09:00
2026-02-17 11:17:01 +09:00
Key files: `settings-loader.ts` (parse CC settings), `hook-mapper.ts` (CC→OC mapping), `permission-handler.ts` (rule enforcement), `types.ts` (CC type definitions).