> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kontext.security/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported agents

> Which agents Kontext covers, which hook events it receives, and where it can stop a tool call.

export const CoverageLevels = () => <div className="k-fig-wrap">
    <svg className="k-fig" viewBox="0 0 640 284" width="100%" style={{
  maxWidth: 640
}} role="img" aria-label="The diagram shows three nested levels of coverage. Kontext finds an agent in configuration, observes it through hooks and can stop its tool calls through a pre-tool hook.">
      <defs>
        <marker id="cov-arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
          <path className="arrowhead" d="M 1 1 L 8 5 L 1 9" />
        </marker>
      </defs>
      <rect className="box-soft" x="8" y="8" width="624" height="268" rx="12" />
      <text className="t-strong" x="28" y="38" textAnchor="start">Discovered</text>
      <text className="t-small" x="28" y="58" textAnchor="start">Kontext found the agent in its configuration on the endpoint.</text>
      <rect className="box" x="28" y="78" width="584" height="178" rx="10" />
      <text className="t-strong" x="48" y="108" textAnchor="start">Observed</text>
      <text className="t-small" x="48" y="128" textAnchor="start">Its hooks deliver session and tool call events to Kontext.</text>
      <rect className="box-ok" x="48" y="148" width="544" height="88" rx="8" />
      <text className="t-strong t-ok" x="68" y="178" textAnchor="start">Enforceable</text>
      <text className="t-small" x="68" y="198" textAnchor="start">A pre-tool hook can stop the call before it runs.</text>
      <text className="t-small" x="68" y="218" textAnchor="start">Blocking requires an enforced policy that covers this endpoint.</text>
    </svg>
  </div>;

Kontext installs hooks for Claude Code and Codex during setup. Claude Cowork uses Claude Code, so the same hooks cover Cowork when its agent runs on the endpoint.

<Frame caption="Kontext can find an agent without observing it, and observe an agent without enforcing policy on it.">
  <CoverageLevels />
</Frame>

## Hook coverage

| Agent         | Events Kontext receives                                                                  | Hook that can stop a call |
| ------------- | ---------------------------------------------------------------------------------------- | ------------------------- |
| Claude Code   | Session start and end, pre-tool-use, post-tool-use, failed tool use, stop, subagent stop | Pre-tool-use              |
| Codex         | Session start, pre-tool-use, post-tool-use, prompt submission, stop                      | Pre-tool-use              |
| Claude Cowork | The Claude Code events, when Cowork's agent runs on the endpoint                         | Pre-tool-use              |

Kontext stops tool calls only at the pre-tool-use hook. It records activity from the other events. Claude Code sends session and stop events in the background without delaying the agent.

### Codex

Kontext setup enables hooks in `~/.codex/config.toml`. Codex requires you to review new hooks before it runs them. Open `/hooks` in Codex and trust the Kontext hooks. Until then, Codex sends no events to Kontext.

### Claude Cowork

Kontext records Cowork sessions under the Cowork agent name. **Explore** lists them separately from Claude Code. Policies that target Claude Code also apply to Cowork.

Some accounts run Cowork sessions in Anthropic's cloud instead of on the endpoint. Kontext cannot observe those sessions. **Home** marks Cowork as **Unmanaged** on that endpoint and says the sessions run in Anthropic's cloud.

## Other agents on Home

Kontext also looks for about 20 other agents on each endpoint, such as Cursor, Gemini CLI, GitHub Copilot CLI, Windsurf, and OpenCode. **Home** lists each agent it finds with one of three states:

| State           | Caption               | Meaning                                                                         |
| --------------- | --------------------- | ------------------------------------------------------------------------------- |
| **Managed**     | **Hooks installed**   | Installed hooks or a session your workspace previously received from the agent. |
| **Unmanaged**   | **Hooks missing**     | A supported agent with missing hooks. No policy applies to it.                  |
| **Unsupported** | **Not supported yet** | An agent with no Kontext hooks available.                                       |

Confirm current coverage by finding a new tool call in Explore. Blocking also requires an enforced policy that covers the agent and endpoint.

## Check coverage on an endpoint

<Steps>
  <Step title="Check the hooks">
    Run `kontext doctor`. It checks the hook files and the Kontext daemon.
  </Step>

  <Step title="Make a tool call">
    Ask the agent to make a tool call, such as listing a directory.
  </Step>

  <Step title="Find it in Explore">
    Open the session in **Explore** and find the tool call. A decision confirms that Kontext covers the agent.
  </Step>
</Steps>

See [how decisions work](/guides/how-decisions-work) for policy behavior.
