# Install

Install chock, build a plugin for your agent from a selection code, and update or remove it.

## Install chock

```
pipx install chock
```

You need Python 3.11 or newer. The engine is the only thing you install, and it builds the plugin from the pinned catalog. Cannot install chock on this machine? Use the per-policy marketplace instead: it needs Python 3.11+, git and a bash but no chock, and the Agents page links each agent's repository. Install a policy from one place only, never both.

## Run the command

Pick your agent and your policies on the builder, copy the command and run it in your repo. `--client` names the agent. For an agent marked tested, `--apply` also runs that agent's own install steps. For an untested agent, the command only builds the plugin, and you run the steps yourself. Ask the user before running it: it builds a plugin of hooks that change how their agent behaves.

## Each agent

### Claude Code (`claude-code`, tested)

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client claude-code --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=claude-code).

With --apply, chock runs these steps for Claude Code:

1. (command)

   ```sh
   claude plugin marketplace add ~/.chock/marketplace/claude-code
   ```

2. (command)

   ```sh
   claude plugin install chock-guardrails@chock-local
   ```

Both commands are safe to repeat. The plugin loads in place from the directory: restart the Claude Code session, or run /reload-plugins in it, to pick up a rebuild.


To remove it:

- `claude plugin uninstall chock-guardrails@chock-local`
- Delete the build folder ~/.chock/marketplace/claude-code/claude/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.
- Only if no other chock build for this agent is still installed (every chock build made with the marketplace name chock-local shares it, so removing it takes their registration too): `claude plugin marketplace remove chock-local`. Otherwise leave it registered.

Cannot install chock? Use the per-policy marketplace, which needs Python 3.11+, git and a bash but no chock: https://github.com/open-coder-ai/chock-claude-plugins

Install a policy from one place only, never both: each copy runs its own hook.

### Cursor (`cursor`, tested)

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client cursor --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=cursor).

With --apply, chock runs these steps for Cursor:

Cursor loads ~/.cursor/plugins/local/chock-guardrails as a local plugin: run "Developer: Reload Window" (or restart Cursor), then check it under Customize. There is no command to run.


To remove it:

- Delete the build folder ~/.cursor/plugins/local/chock-guardrails (Cursor loads it from there), then run "Developer: Reload Window" (or restart Cursor). `chock bundle status` lists a build for as long as its folder exists.

Cannot install chock? Use the per-policy marketplace, which needs Python 3.11+, git and a bash but no chock: https://github.com/open-coder-ai/chock-cursor-plugins

Install a policy from one place only, never both: each copy runs its own hook.

Not offered for Cursor. With Include Third-Party Plugins on, Cursor imports an enabled Claude Code plugin and calls its hooks. But in the live test, chock never ran and nothing was refused. Do not rely on that import to enforce chock's policies.

### Codex (`codex`, tested)

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client codex --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=codex).

With --apply, chock runs these steps for Codex:

1. (command)

   ```sh
   codex plugin marketplace add ~/.chock/marketplace/codex
   ```

Then install chock-guardrails from the chock-local marketplace in /plugins, and review and trust its hooks in /hooks: until you do, they do not run.


To remove it:

- Uninstall chock-guardrails in /plugins, then delete the folder ~/.chock/marketplace/codex/codex/chock-guardrails.

Cannot install chock? Use the per-policy marketplace, which needs Python 3.11+, git and a bash but no chock: https://github.com/open-coder-ai/chock-codex-plugins

Install a policy from one place only, never both: each copy runs its own hook.

#### Use the Claude Code plugin

This agent can also run the Claude Code plugin (agentseam loads_claude_plugins, seen in a live run):

Codex: guard and gate refused

Build it: chock install --selection `<code>` --client claude-code (then, in Codex:) (ask the user before running it)

1. (command)

   ```sh
   codex plugin marketplace add ~/.chock/marketplace/claude-code
   ```

2. (command)

   ```sh
   codex plugin add chock-guardrails@chock-local
   ```

Warning: Install one build per agent. If you install both the agent's own chock plugin and the Claude Code plugin, each one checks every action.

Warning: When another agent runs the Claude Code plugin, chock logs its events as claude_code (~/.chock/log/claude_code/), not under that agent.


### GitHub Copilot (`copilot`, tested)

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client copilot --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=copilot).

With --apply, chock runs these steps for GitHub Copilot:

1. (command)

   ```sh
   copilot plugin marketplace add ~/.chock/marketplace/copilot
   ```

2. (command)

   ```sh
   copilot plugin install chock-guardrails@chock-local
   ```

VS Code finds plugins the Copilot CLI installed. Without the CLI, add the plugin folder to your VS Code user settings yourself:

    {
      "chat.pluginLocations": {
        "~/.chock/marketplace/copilot/claude/chock-guardrails": true
      }
    }


To remove it:

- `copilot plugin uninstall` only disables the plugin (seen in a live run): it removes nothing from disk and leaves the marketplace registered.
- `copilot plugin uninstall chock-guardrails@chock-local`
- Delete the build folder ~/.chock/marketplace/copilot/claude/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.
- Only if no other chock build for this agent is still installed (every chock build made with the marketplace name chock-local shares it, so removing it takes their registration too): `copilot plugin marketplace remove chock-local`. Otherwise leave it registered.
- In VS Code, remove the "~/.chock/marketplace/copilot/claude/chock-guardrails" entry from chat.pluginLocations in your user settings (chock does not edit them).

Cannot install chock? Use the per-policy marketplace, which needs Python 3.11+, git and a bash but no chock: https://github.com/open-coder-ai/chock-copilot-plugins

Install a policy from one place only, never both: each copy runs its own hook.

#### Use the Claude Code plugin

This agent can also run the Claude Code plugin (agentseam loads_claude_plugins, seen in a live run):

Copilot CLI: guard and gate refused

Build it: chock install --selection `<code>` --client claude-code (then, in Copilot CLI:) (ask the user before running it)

If `copilot plugin marketplace add` says Marketplace "chock-local" already registered, that is chock's Copilot build (this build's local marketplace is named chock-local, and every chock build made with that name shares it): keep one build and run `copilot plugin marketplace remove chock-local` first.

1. (command)

   ```sh
   copilot plugin marketplace add ~/.chock/marketplace/claude-code
   ```

2. (command)

   ```sh
   copilot plugin install chock-guardrails@chock-local
   ```

It loads live from ~/.chock/marketplace/claude-code/claude/chock-guardrails (nothing is copied); `copilot plugin uninstall` only disables it.

VS Code: Chat panel only. An Agents-window repo session ran no hooks

Build it: chock install --selection `<code>` --client claude-code (then, in VS Code:) (ask the user before running it)

Add to your VS Code user settings (chock does not edit them), then use the Chat panel with the folder open:

    {
      "chat.plugins.enabled": true,
      "chat.pluginLocations": {
        "~/.chock/marketplace/claude-code/claude/chock-guardrails": true
      }
    }

Warning: Install one build per agent. If you install both the agent's own chock plugin and the Claude Code plugin, each one checks every action.

Warning: When another agent runs the Claude Code plugin, chock logs its events as claude_code (~/.chock/log/claude_code/), not under that agent.


### Devin (`devin`, tested)

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client devin --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=devin).

With --apply, chock runs these steps for Devin:

On Windows, `devin plugins install --local` creates a symbolic link, so it needs Developer Mode (Settings > System > For developers) or an elevated shell; otherwise it fails with "os error 1314: A required privilege is not held by the client".

1. (command)

   ```sh
   devin plugins install --local ~/.chock/marketplace/devin/chock-guardrails
   ```

The plugin is linked in place: a rebuild applies from the next Devin session.


To remove it:

- `devin plugins remove chock-guardrails --local`
- Delete the build folder ~/.chock/marketplace/devin/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.

Cannot install chock? Use the per-policy marketplace, which needs Python 3.11+, git and a bash but no chock: https://github.com/open-coder-ai/chock-devin-plugins

Install a policy from one place only, never both: each copy runs its own hook.

#### Use the Claude Code plugin

This agent can also run the Claude Code plugin (agentseam loads_claude_plugins, seen in a live run):

Devin: turn end only. The shell guard and the write gate did not run

Devin's own chock plugin (chock install --client devin) is the better install here (ask the user before running it).

Build it: chock install --selection `<code>` --client claude-code (then, in Devin:) (ask the user before running it)

On Windows, `devin plugins install --local` creates a symbolic link, so it needs Developer Mode (Settings > System > For developers) or an elevated shell.

1. (command)

   ```sh
   devin plugins install --local ~/.chock/marketplace/claude-code/claude/chock-guardrails
   ```

Warning: Install one build per agent. If you install both the agent's own chock plugin and the Claude Code plugin, each one checks every action.

Warning: When another agent runs the Claude Code plugin, chock logs its events as claude_code (~/.chock/log/claude_code/), not under that agent.


### Grok (`grok`, tested)

The pinned catalog has no grades for Grok yet. A policy with no grade there says "Not graded yet".

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client grok --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=grok).

With --apply, chock runs these steps for Grok:

1. (command)

   ```sh
   grok plugin install ~/.chock/marketplace/grok/chock-guardrails --trust
   ```

Plugins are off in grok until enabled, and chock does not edit grok's config: run `grok plugin list` for the name grok gave this plugin (chock expects chock-guardrails, its folder name; the docs do not say how a plugin with no plugin.json is named), then `grok plugin enable <name>`, or add it to `enabled` under [plugins] in ~/.grok/config.toml, or press Space on it in the Plugins tab. Re-run the install command after a rebuild.


To remove it:

- Run `grok plugin list` for the name grok gave this plugin, then `grok plugin uninstall <name>`.
- Delete the build folder ~/.chock/marketplace/grok/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.

#### Use the Claude Code plugin

This agent can also run the Claude Code plugin (agentseam loads_claude_plugins, seen in a live run):

Grok: guard and gate refused

Build it: chock install --selection `<code>` --client claude-code (then, in Grok:) (ask the user before running it)

1. (command)

   ```sh
   grok plugin install ~/.chock/marketplace/claude-code/claude/chock-guardrails --trust
   ```

Plugins are off in grok until enabled: run `grok plugin list` for the id grok gave it, then `grok plugin enable <id>`.

Warning: Install one build per agent. If you install both the agent's own chock plugin and the Claude Code plugin, each one checks every action.

Warning: When another agent runs the Claude Code plugin, chock logs its events as claude_code (~/.chock/log/claude_code/), not under that agent.


### goose (`goose`, tested)

The pinned catalog has no grades for goose yet. A policy with no grade there says "Not graded yet".

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client goose --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=goose).

With --apply, chock runs these steps for goose:

goose discovers ~/.agents/plugins/chock-guardrails as a user plugin, in every project: start a new goose session. There is no command to run (`goose plugin install` takes a git URL only). To turn it off, add chock-guardrails to disabledPlugins in ~/.config/goose/settings.json.


To remove it:

- Delete the build folder ~/.agents/plugins/chock-guardrails (goose discovers it there), then start a new goose session. `chock bundle status` lists a build for as long as its folder exists.
- Optional tidy-up: delete the chock-guardrails entry in the plugins list of goose's config.yaml. goose works without this step.

### Antigravity (`antigravity`, tested)

The pinned catalog has no grades for Antigravity yet. A policy with no grade there says "Not graded yet".

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client antigravity --apply

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=antigravity).

With --apply, chock runs these steps for Antigravity:

1. (command)

   ```sh
   agy plugin install ~/.chock/marketplace/antigravity/chock-guardrails
   ```

Antigravity 2.0 and the IDE read plugin folders from ~/.gemini/config/plugins/ instead: copy ~/.chock/marketplace/antigravity/chock-guardrails there. Its hooks name ~/.chock/marketplace/antigravity/chock-guardrails by absolute path (Antigravity documents no plugin-root variable), so keep that folder where it is; re-run the install command after a rebuild.


To remove it:

- Close Antigravity, delete the folder ~/.gemini/config/plugins/chock-guardrails, then reopen Antigravity. Checked on Windows.
- Optional tidy-up: delete the build copy ~/.chock/marketplace/antigravity/chock-guardrails. Antigravity does not read it.

### OpenHands (`openhands`, untested)

The pinned catalog has no grades for OpenHands yet. A policy with no grade there says "Not graded yet".

Untested in OpenHands. Nobody has seen these policies fire in OpenHands yet, so the command builds the plugin without --apply. Apply the steps below yourself, check that a refusal fires, and [help test it](https://github.com/open-coder-ai/chock/issues/new?title=Witness%20report:%20openhands).

Evidence wanted for OpenHands. Chock has not seen OpenHands run the plugin yet. The command still builds the plugin. If you use OpenHands, you can help: run it and share what happens in [agentseam issue #181](https://github.com/open-coder-ai/agentseam/issues/181).

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client openhands

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=openhands).

Then, in OpenHands:

OpenHands loads a local plugin when it starts: run `openhands --plugin ~/.chock/marketplace/openhands/chock-guardrails`, or add "~/.chock/marketplace/openhands/chock-guardrails" to sources under [plugins] in ~/.openhands/config.toml (chock does not edit it). Its hooks name ~/.chock/marketplace/openhands/chock-guardrails by absolute path (OpenHands documents no plugin-root variable), so keep that folder where it is; a rebuild applies from the next start.


To remove it:

- Removal steps not verified for OpenHands yet. What you see when you remove it is wanted in [agentseam issue #181](https://github.com/open-coder-ai/agentseam/issues/181).
- Stop passing `--plugin ~/.chock/marketplace/openhands/chock-guardrails`, and remove "~/.chock/marketplace/openhands/chock-guardrails" from sources under [plugins] in ~/.openhands/config.toml if you added it (chock does not edit it).
- Delete the build folder ~/.chock/marketplace/openhands/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.

### Kimi Code (`kimi-code`, untested)

The pinned catalog has no grades for Kimi Code yet. A policy with no grade there says "Not graded yet".

Untested in Kimi Code. Nobody has seen these policies fire in Kimi Code yet, so the command builds the plugin without --apply. Apply the steps below yourself, check that a refusal fires, and [help test it](https://github.com/open-coder-ai/chock/issues/new?title=Witness%20report:%20kimi-code).

Evidence wanted for Kimi Code. Chock has not seen Kimi Code run the plugin yet. The command still builds the plugin. If you use Kimi Code, you can help: run it and share what happens in [agentseam issue #135](https://github.com/open-coder-ai/agentseam/issues/135).

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client kimi-code

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=kimi-code).

Then, in Kimi Code:

Kimi Code installs plugins from its TUI only, and chock does not drive it: in Kimi Code run `/plugins install ~/.chock/marketplace/kimi-code/chock-guardrails`, then `/reload` (or `/new`). Kimi copies the plugin to $KIMI_CODE_HOME/plugins/managed/chock-guardrails/ and runs that copy, so after a rebuild install it again. The plugin applies to every project you open (Kimi has no project-level plugin scope); `/plugins disable chock-guardrails` turns it off.


To remove it:

- Removal steps not verified for Kimi Code yet. What you see when you remove it is wanted in [agentseam issue #135](https://github.com/open-coder-ai/agentseam/issues/135).

### Factory Droid (`factory-droid`, untested)

The pinned catalog has no grades for Factory Droid yet. A policy with no grade there says "Not graded yet".

Untested in Factory Droid. Nobody has seen these policies fire in Factory Droid yet, so the command builds the plugin without --apply. Apply the steps below yourself, check that a refusal fires, and [help test it](https://github.com/open-coder-ai/chock/issues/new?title=Witness%20report:%20factory-droid).

Evidence wanted for Factory Droid. Chock has not seen Factory Droid run the plugin yet. The command still builds the plugin. If you use Factory Droid, you can help: run it and share what happens in [agentseam issue #184](https://github.com/open-coder-ai/agentseam/issues/184).

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client factory-droid

Replace `<code>` with your selection code. [Get it from the builder](/coding/builder/#client=factory-droid).

Then, in Factory Droid:

Run these from the root of the project the plugin is for: `--scope project` records it in that project's Droid settings. The marketplace is local to this machine; chock publishes nothing.

1. (command)

   ```sh
   droid plugin marketplace add ~/.chock/marketplace/factory-droid/chock-local
   ```

2. (command)

   ```sh
   droid plugin install chock-guardrails@chock-local --scope project
   ```

Droid names a local marketplace from its source; if `droid plugin marketplace list` shows a name other than chock-local (a --dest folder named otherwise), install chock-guardrails@<that name>. Droid copies the plugin into its cache: after a rebuild run `droid plugin marketplace update` and `droid plugin update chock-guardrails@chock-local --scope project`, then start a new session.


To remove it:

- Removal steps not verified for Factory Droid yet. What you see when you remove it is wanted in [agentseam issue #184](https://github.com/open-coder-ai/agentseam/issues/184).
- Run these from the root of the project the plugin was installed for.
- `droid plugin uninstall chock-guardrails@chock-local --scope project`
- Delete the build folder ~/.chock/marketplace/factory-droid/chock-local/droid/chock-guardrails: `chock bundle status` lists a build for as long as its folder exists.
- Only if no other chock build for this agent is still installed (every chock build made with the marketplace name chock-local shares it, so removing it takes their registration too): `droid plugin marketplace remove chock-local`. Otherwise leave it registered.


## Every agent

Every agent agentseam records, and how chock reaches it: a plugin, repo hooks, or neither, with the reason. Tested means a person has seen chock refuse actions with that install method. A test of the plugin tells you nothing about repo hooks.

### Aider (`aider`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records no hook in this agent that can stop an action, so chock has nothing to wire.
- Agentseam: Pre-tool: none, none, fail mode n/a (vendor-docs, 2026-08-26)

### Amp (`amp`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #182](https://github.com/open-coder-ai/agentseam/issues/182)

### Antigravity (`antigravity`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client antigravity`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents antigravity`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (vendor-docs, 2026-08-26)

### Claude Code (`claude_code`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client claude-code`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents claude`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (live-run, 2026-09-07)

### Cline (`cline`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired by chock sync: this agent runs one executable per hook event from a hooks folder, and chock sync writes JSON or TOML hook files, so it needs a dispatcher chock does not ship yet.
- Agentseam: Pre-tool: block, best-effort, fail mode open (vendor-docs, 2026-10-11)
- [Agentseam issue #178](https://github.com/open-coder-ai/agentseam/issues/178)

### OpenAI Codex CLI (`codex_cli`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client codex`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents codex`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (live-run-partial, 2026-08-28)

### GitHub Copilot (Agent Plugins 1.0 marketplace bundle) (`copilot`)

Install method: plugin.

- Plugin (ask the user before running a command): `chock install --client copilot`, tested.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-08-29)
- This is the Copilot plugin. Copilot's repo hooks are the GitHub Copilot (VS Code agent mode / CLI) row. (Source: Agentseam matrix notes for copilot)

### Cursor (`cursor`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client cursor`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents cursor`, untested.
- Agentseam: Pre-tool: block+rewrite, enforceable, fail mode configurable (live-run-partial, 2026-09-23)

### DeepSeek Harness (dsh) (`deepseek_harness`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #189](https://github.com/open-coder-ai/agentseam/issues/189)

### Devin (`devin`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client devin`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents devin`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (vendor-docs, 2026-08-26)

### Factory Droid (`factory_droid`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client factory-droid`, untested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents factory-droid`, untested.
- Agentseam: Pre-tool: block, best-effort, fail mode open (vendor-docs, 2026-10-11)
- [Agentseam issue #184](https://github.com/open-coder-ai/agentseam/issues/184)

### Gemini CLI (`gemini_cli`)

Install method: repo hooks.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents gemini`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (vendor-source, 2026-08-28)
- Gemini CLI is not an install target of chock: Antigravity CLI replaces Gemini CLI for unpaid users, so chock builds no Gemini CLI plugin. Use the Antigravity plugin. (Source: Chock's install command (`src/chock/install/cli.py`, `--client gemini-cli`) and agentseam's matrix notes for `gemini_cli`)

### goose (`goose`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client goose`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents goose`, untested.
- Agentseam: Pre-tool: block, best-effort, fail mode configurable (vendor-docs, 2026-10-11)

### Grok CLI (`grok`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client grok`, tested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents grok`, untested.
- Agentseam: Pre-tool: block, best-effort, fail mode open (vendor-docs, 2026-08-26)

### Junie CLI (`junie`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired by chock sync: this agent reads its hooks from a config in your home folder, and chock sync writes only inside the repository.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (vendor-docs, 2026-08-26)

### Kilo Code (`kilo_code`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #175](https://github.com/open-coder-ai/agentseam/issues/175)

### Kimi Code CLI (`kimi_code`)

Install method: plugin.

- Plugin (ask the user before running a command): `chock install --client kimi-code`, untested.
- Repo hooks (ask the user before running a command): Not wired by chock sync: this agent reads its hooks from a config in your home folder, and chock sync writes only inside the repository.
- Agentseam: Pre-tool: block, best-effort, fail mode open (vendor-docs, 2026-08-26)
- [Agentseam issue #135](https://github.com/open-coder-ai/agentseam/issues/135)

### Kiro (`kiro`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #183](https://github.com/open-coder-ai/agentseam/issues/183)

### Mistral Vibe (`mistral_vibe`)

Install method: repo hooks.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents mistral-vibe`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode configurable (vendor-docs, 2026-10-11)
- [Agentseam issue #187](https://github.com/open-coder-ai/agentseam/issues/187)

### OpenCode (`opencode`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #174](https://github.com/open-coder-ai/agentseam/issues/174)

### OpenHands (`openhands`)

Install methods: plugin and repo hooks.

- Plugin (ask the user before running a command): `chock install --client openhands`, untested.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents openhands`, untested.
- Agentseam: Pre-tool: block, best-effort, fail mode open (vendor-docs, 2026-10-11)
- [Agentseam issue #181](https://github.com/open-coder-ai/agentseam/issues/181)
- Chock's Claude Code plugin does not protect OpenHands, even though OpenHands reads .claude-plugin/: its matchers never match OpenHands' terminal or file_editor tools. Use the OpenHands plugin. (Source: `docs/enforcement-surfaces.md` in chock)

### Replit Agent (`replit`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-08-26)

### Roo Code (`roo_code`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records this agent but has no adapter for its hooks, so chock has nothing to wire.
- Agentseam: Pre-tool: unadapted, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #179](https://github.com/open-coder-ai/agentseam/issues/179)

### Tabnine CLI (`tabnine`)

Install method: repo hooks.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents tabnine`, untested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (vendor-docs, 2026-08-26)

### GitHub Copilot (VS Code agent mode / CLI) (`vscode_copilot`)

Install method: repo hooks.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents copilot`, tested.
- Agentseam: Pre-tool: block+rewrite, best-effort, fail mode open (live-run-partial, 2026-09-28)

### Windsurf (Cascade) (`windsurf`)

Install method: repo hooks.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): `chock sync --repo . --agents windsurf`, untested.
- Agentseam: Pre-tool: block, best-effort, fail mode open (third-party-install, 2026-08-26)

### Zed (`zed`)

No install method yet.

- Plugin (ask the user before running a command): No plugin format.
- Repo hooks (ask the user before running a command): Not wired: agentseam records no hook in this agent that can stop an action, so chock has nothing to wire.
- Agentseam: Pre-tool: none, none, fail mode n/a (vendor-docs, 2026-10-11)
- [Agentseam issue #186](https://github.com/open-coder-ai/agentseam/issues/186)

## Update

Change your picks in the builder and re-run the command. Each agent's last step above says how it picks up a rebuild.

## Remove

Each agent's section above ends with its remove steps.

## The selection file

A selection is a small JSON or YAML file naming the agent, the pinned catalog commit and the policies you picked. The builder writes one for you. The install command reads the same file. These are the fields it checks:

- `schema`: 2, the selection format version.
- `client`: The agent the plugin is built for: claude-code, cursor, codex, copilot, devin, grok, goose, antigravity, openhands, kimi-code, factory-droid. The --client option on the command line overrides it.
- `bundle.version`: The plugin's version, 1.0.0 from this site.
- `catalog.source`: The chock-catalog repository.
- `catalog.ref`: The pinned catalog commit. The plugin builds only from it.
- `catalog.release`: Optional. A named catalog release over the commit.
- `preset`: Optional. The preset the picks started from.
- `policies`: One entry per picked policy: from (catalog), id, version and sha256.

