Install and run HOL Guard, set approval and policy rules, check which AI tools it covers, and connect Guard Cloud. The plugin scanner and GitHub Action guides sit in the same list.
Use this guide when you run Cline in VS Code, JetBrains, or the cline CLI and want Guard to block tool actions before they run. Cline is the one harness where Guard chooses between two protection mechanisms, so the setup differs from the generic flow.
The harness id is cline. The ids cline-cli and cline-vscode are aliases for it.
What Guard detects
Guard detects three kinds of Cline host:
the cline CLI, with its version
Cline in VS Code, from the installed extension
Cline in JetBrains
It also reads:
hooks in ~/Documents/Cline/Hooks and ~/.cline/hooks
plugins in ~/Documents/Cline/Plugins and ~/.cline/plugins
MCP servers in cline_mcp_settings.json, under ~/.cline/data/settings and ~/.cline/settings, and in the VS Code extension's global storage
The CLINE_DATA_DIR and CLINE_DIR environment variables move the Cline data directory, but Guard honors them only when they point inside your home directory. CLINE_MCP_SETTINGS_PATH adds an MCP settings file.
How protection attaches
Guard enforces Cline's PreToolUse event through one of two transports, and keeps only one installed at a time.
Transport
What Guard installs
Notes
hooks
Native Cline hook files, one each for PreToolUse, PostToolUse, UserPromptSubmit, TaskStart, TaskError, and SessionShutdown
Default location is ~/Documents/Cline/Hooks. On Windows the hook files are PowerShell scripts. PostToolUse only observes, so it cannot replace a result the model has already received
plugin
A Guard-owned plugin at ~/.cline/plugins/hol-guard with index.js and package.json
Can mediate tool output before the model sees it
With the default surface, auto, Guard picks the plugin transport when the only host it finds is the CLI, and the hooks transport when VS Code or JetBrains is present. If the plugin install fails its syntax check, Guard falls back to hooks.
Guard does not overwrite a hook file or plugin file that you own. If a PreToolUse hook of your own already sits in the hooks directory, install stops with an error that names it.
The auto and all surfaces also route eligible stdio MCP servers in cline_mcp_settings.json through Guard proxies. The auto, cli, and all surfaces write the guard-cline launcher shim to ~/.hol-guard/bin and add that directory to your shell profile.
Surfaces
hol-guard install cline uses auto. Pass --surface to hol-guard apps connect, test, repair, or disconnect to work on one part.
Surface
Scope
auto
One transport chosen as above, MCP proxies, and the shim
hooks
The hooks transport only. editor is accepted as a synonym
plugin
The plugin transport only
cli
The guard-cline shim only
all
One transport, MCP proxies, and the shim
Approval model
Cline uses the approval-center tier:
Guard blocks a PreToolUse action synchronously and opens the local approval center in your browser for review
after you resolve the request, retry the same Cline tool action
hol-guard approvals resolves the same requests from the terminal
Guard reports protection as ready only after it has seen live proof from Cline. After install, run a safe tool action in Cline, then check:
hol-guard apps test cline --json
hol-guard doctor cline
Proof expires after seven days, after which apps test and doctor report that live proof is pending or stale. Run another safe Cline action and test again.
If Guard finds both transports installed, it warns you. Restore a single transport with:
hol-guard apps repair cline
To remove everything Guard manages for Cline, including the hooks, the plugin, the shim, and the MCP proxies:
hol-guard uninstall cline
Known limits
Cline in JetBrains is detected, but Guard reports its protection as unverified until it observes a live pre-tool block.
With the hooks transport, PostToolUse is observation-only. Use the plugin transport when you need Guard to replace tool output before the model sees it.
Guard does not overwrite hook or plugin files that you own.