# Supported agents

Source: https://docs.synkro.sh/reference/supported-agents

Synkro is in public preview. If your agent isn't listed here, email [team@synkro.sh](mailto:team@synkro.sh) and we can enable it for you or build a custom integration.

| Agent | Installed files | Status key |
| --- | --- | --- |
| Claude Code | `~/.claude/skills/synkro/` | `configuredHarnesses.claude_code` |
| Codex | `~/.synkro/codex-marketplace/`, registered in `~/.codex/config.toml` | `configuredHarnesses.codex` |
| Google Antigravity | `~/.gemini/config/plugins/synkro/` | `configuredHarnesses.antigravity` |
| Cursor | `~/.cursor/plugins/local/synkro/` and a tagged prompt-dispatch entry in `~/.cursor/hooks.json` | `configuredHarnesses.cursor` |

Paths are defaults and can change with a custom home directory. If you install an agent later, rerun `synkro install` and start a new agent session.

Cursor CLI requires a user or project prompt hook before it dispatches plugin
prompt hooks. Synkro installs a pass-through entry that enables this dispatch;
the plugin forwards the prompt once. `synkro update` repairs a missing entry,
and uninstall removes only Synkro's entry. Existing hooks are preserved.
Cursor CLI `--print` does not emit prompt hooks; use an interactive session
for `allow it` consent under human credentials.

## Codex also uses Synkro MCP

Codex also uses Synkro's MCP server. The other agents use their native hooks.

`prepare_tool_call_consent` checks whether a planned action needs approval; it does not run it.

Use the [MCP approval commands](/reference/cli#synkro-approve-mcp-server-tool)
to manage access in the project's Rule package. Your agent asks you to approve
the exact server and tool before updating the package.
Older installed clients may still advertise `request_mcp_access` and
`check_mcp_access`; those tools are unavailable. Use the CLI commands instead.
Approving an MCP tool is separate from approving one action with `allow it`.

Manage Rule files with the `manage-synkro-rules` skill or CLI.

## Check activation

Run `synkro status --json`. Installed, enabled, and trusted are different states. `null` means unknown.

For Codex, also check `configuredMcp.codex` and `plugins.codex.toolBoundaryReady`, then review hook trust in Codex. The [agent setup guide](/onboarding/coding-agents) has the steps.

Antigravity has no Synkro startup notice. Check for a new decision instead.

## Which actions are checked

Synkro checks actions the agent exposes through its hooks, not all activity on your machine. Unsupported inputs can let an action continue with an error notice.

Commands you run yourself in a terminal, or through a provider's human-only shell escape such as Claude Code's `!` input, are outside Synkro's agent checks.

Some predicates need facts supplied by the agent:

- Reading a skill's Markdown file through a shell command is not a native skill invocation. A `skill_invocation` predicate does not match that file read.
- An agent task name is not an agent type. An `agent_invocation` predicate cannot match a type the provider did not report.
- Codex shell hooks report `Bash` and `tool_input.command`, even when the agent
  calls `exec_command` with `cmd`. Exact argument Rules use `command`.
- Codex subagent launches report `spawn_agent`. A `tool_name` predicate with
  `exact = "spawn_agent"` can match a launch without an agent profile. Use
  `agent_invocation` only for a profile the hook actually reports; `task_name`
  is not a substitute.
- `host_access_requested` reads an explicit sandbox-bypass request: Claude Code's boolean `dangerouslyDisableSandbox` on `Bash`, or Codex's `sandbox_permissions` when a shell hook includes it. A missing field means unknown and matches neither `requested = true` nor `requested = false`.

Codex CLI 0.160.1 was observed sending only `tool_input.command` for an
`exec_command` call that requested `sandbox_permissions = "require_escalated"`.
Synkro cannot enforce a host-access Rule against that omitted fact. The hook's
`permission_mode` describes the session and does not establish whether this
particular call requested host access. The [Codex hook reference](https://learn.chatgpt.com/docs/hooks#pretooluse)
documents the command input; the missing escalation metadata is tracked
[upstream](https://github.com/openai/codex/issues/40996). Check a recorded hook
when evaluating another Codex version or execution path.

Synkro also refuses to prepare host-specific Codex consent while the execution
hook cannot supply the matching fact. Passing a `host_access` example in
`synkro check` validates the Rule with the example's supplied value; it does not
confirm that Codex forwards that value during execution.

Test your examples with `synkro check`, then inspect a recorded agent action to
confirm the fields your agent supplies.

The [Rule authoring guide](/guides/rules#match-the-fields-synkro-receives) explains
how to check the recorded input before choosing a predicate.

An `ask` refuses the action until you use Synkro's [consent flow](/guides/consent). The agent's permission setting does not replace it.

For Codex, installation disables Code Mode so actions use execution paths that expose the required hooks. Keep that setting for Synkro checks. Uninstall restores the previous setting when Synkro's recorded change is still intact.
