Get started
Quickstart: plugin path
Install the engine, pick policies, and build one plugin for your agent.
One command builds a plugin from your picks for one agent. The steps after it are the agent's own, exactly as the engine prints them.
1. Install the engine
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.
2. Pick your policies
Pick policies on the builder. It gives you a share code and the command for your agent. The command takes this form (ask the user before running it):
chock install --selection <code> --client <agent> --apply
chock install --selection <code> --client <agent>
3. Run it for your agent
Each agent below shows its install steps exactly as the engine prints them. Tested means a person has seen chock's refusals fire in that agent through the plugin.
Claude Code (claude-code)
Tested Agent page
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
With --apply, chock runs these steps for Claude Code:
claude plugin marketplace add ~/.chock/marketplace/claude-codeclaude 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.
Cursor (cursor)
Tested Agent page
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
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.
Codex (codex)
Tested Agent page
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
With --apply, chock runs these steps for Codex:
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.
GitHub Copilot (copilot)
Tested Agent page
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
With --apply, chock runs these steps for GitHub Copilot:
copilot plugin marketplace add ~/.chock/marketplace/copilotcopilot 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
}
}
Devin (devin)
Tested Agent page
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
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".
devin plugins install --local ~/.chock/marketplace/devin/chock-guardrails
The plugin is linked in place: a rebuild applies from the next Devin session.
Grok (grok)
Tested Agent page
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
With --apply, chock runs these steps for Grok:
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.
goose (goose)
Tested Agent page
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
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.
Antigravity (antigravity)
Tested Agent page
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
With --apply, chock runs these steps for Antigravity:
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.
OpenHands (openhands)
Untested Agent page
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.
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
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.
Kimi Code (kimi-code)
Untested Agent page
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.
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
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.
Factory Droid (factory-droid)
Untested Agent page
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.
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
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.
droid plugin marketplace add ~/.chock/marketplace/factory-droid/chock-localdroid 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.
Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.