---
description: >-
  How Watcher records and reviews local Claude Code and Codex sessions, with remote Claude Code support through Claude Tag.
---

> Part of the Watcher docs. Index of all pages, with summaries: https://watcher-docs.apolloresearch.ai/llms.txt
> Before upgrading Watcher, read the release pages and full changelogs for every version crossed: https://watcher-docs.apolloresearch.ai/releases/index.md
> Found an issue with this page? Report it: https://github.com/ApolloResearch/watcher-bin/issues/new?title=Docs%20feedback%3A%20Supported%20agents&body=Page%3A%20Supported%20agents%0AURL%3A%20https%3A%2F%2Fwatcher-docs.apolloresearch.ai%2Fsupported-agents%2F%0A%0A

# Supported agents

Watcher supports local Claude Code and Codex sessions through the
[Watcher client](client/index.md). Remote Claude Code sessions run by Claude
Tag use a separate, repository-based integration described in
[Claude Tag](client/claude-tag.md).

## Local agents

`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.json` in the Codex home
  directory (`~/.codex` by default). Watcher also manages Codex's approval
  policy in its `config.toml`, and in enforce mode the sandbox and who answers
  an approval request as well; 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 and no call is
  gated. 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](concepts/blocking-and-trailing-review.md#enforcement-modes):
  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.
  Running `codex --approve-for-me` (alias `--not-so-yolo`) changes who answers
  escalations for that invocation, overriding what Watcher pinned: Codex's own
  auto-reviewer answers the ones Watcher would otherwise have put to a human.
  Watcher still reviews each request Codex raises, and the sandbox is
  unchanged.

  A Codex session can also run under an approval policy that asks about
  nothing at all, and then Watcher receives no requests: in enforce mode it
  reviews none of that session's calls before they run. `codex exec` forces
  such a policy for its run. Codex also stores the policy a thread ran under
  and restores it as a session-level setting that outranks the one Watcher
  configures, so resuming or forking a thread that ever ran that way brings
  it back. Either way the session is still recorded and graded afterwards,
  and each of its calls carries a decision saying it was not routed through
  Watcher because of the session's Codex approval policy. Starting a fresh
  interactive thread restores the gate.

With both local 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.

Installing, removing, repairing, and diagnosing local hooks is covered on the
[Client](client/index.md) page.
