Supported agents
The Watcher client integrates with two coding agents: Claude Code and Codex. This page covers what the client's hooks do in each agent: how they record sessions, the consent involved, and how blocking review coverage differs between the two.
What the agent hooks do
watcher hooks install (run by the installer, and idempotent to re-run)
registers Watcher with every supported agent on the machine. The hooks record
the session as it happens and give blocking review its gate:
- Claude Code: hook entries are written into
~/.claude/settings.json. They observe the session lifecycle (session start, each prompt, each tool call and its result, end of turn, session end), and the tool-call hooks are where blocking review evaluates a call before it runs. - Codex: hook entries are written into
hooks.jsonin the Codex home directory (~/.codexby default). Watcher also manages two settings in Codex'sconfig.toml; the installer previews those changes and asks for confirmation before applying them. Codex adds its own check on top: the next time it starts, Codex asks you to confirm the new hooks, and it runs without them until you accept, so sessions are not recorded. The approval policy is set so that Codex asks before it runs the commands it considers dangerous, and whenever the model needs to act outside its sandbox; Watcher reviews each of those requests, and answers or escalates it. What the sandbox itself is set to follows the machine's enforcement mode: in enforce mode Watcher keeps Codex's workspace sandbox on, so that an action reaching the network or a path outside the workspace has to be requested as an escalation, and Watcher reviews that request; in observe and paused modes Watcher does not manage the sandbox at all and leaves whatever you set (it never tightens one you did not ask for, and never weakens one you did). Actions that stay inside the workspace and are not on Codex's dangerous list run without a pre-execution decision, but are still recorded and graded.
With both agents, the hooks record from the agent's own transcript files
(for example Claude Code's ~/.claude/projects), which belong to the agent
and exist with or without Watcher.
The differences between the two integrations, and what blocking review does at each stage, are covered in blocking and trailing review.
Installing, removing, repairing, and diagnosing the hooks is covered on the Client page.