Want the raw config snippets?View on GitHub
Claude Code
Claude Code command hooks can pipe JSON into notatechbro. The older change-preview alias remains supported for existing configs. Human text goes to stderr by default so stdout stays available for host protocols.
{
"tool_name": "Bash",
"tool_input": { "command": "npm install" },
"cwd": "/path/to/project"
}
Hermes
Hermes can call the CLI from a pre-tool hook. The tool stays observer-only and does not block.
{
"hook_event_name": "pre_tool_call",
"tool_name": "terminal",
"tool_input": { "command": "git push" }
}
Codex CLI
Codex CLI 0.134+ supports Claude-style lifecycle hooks from ~/.codex/config.toml. Keep NotATechBro observer-only: default mode writes human text to stderr and leaves stdout empty.
[features]
hooks = true
[[hooks.PreToolUse]]
matcher = "Bash"
hooks = [{ type = "command", command = "notatechbro", timeout = 5 }]
Do not use notatechbro --json for Codex yet; Codex has its own structured hook response schema for blocking or mutating calls.